Wpis z mikrobloga

Witam, potrzebuję pomocy,
Robię program na zaliczeni, jest to kalkulator binarny w C#, który ma odczytywać wartości zapisane odręcznie na kartce papieru.
Udaje mi się wartości odczytać z kartki, ale nie wiem jak teraz sprawdzać, jaką te obiekty reprezentują wartość ( 1 0 + - *)

#emgucv #csharp
  • 14
@Qvally: @budyn: Wiem mindfuck, chodzi o to, że mam na kartce zapisane coś takiego odręcznie, 101 + 101
Jestem w stanie odczytać tą wartość na zasadzie, że wyświetli mi się to na ekranie w już w kolorze czarno białym.
Nie wiem tylko jak zamienić te obiekty na wartości, żeby policzyć to dodawanie.
@smashgoor: czyli masz zdjecie na kompie? no to teraz OCR czyli png -> string.
potem parser który zamieni "101 + 101" na jakaś strukturę ObiektLibcza ObiektOperator ObiektLiczba
potem albo sam to policzysz binarnie albo skonwertujesz na system dziesietny policzysz gotowym i znów do binarnego
@IJarzi: Tutaj chyba trzeba samemu zrobić taki kalkulaor bo te gotowe 101+101 zwróca 202
@smashgoor: jesli zczytuje ci juz do stringa jako np "101 + 101" to po prostu robisz splita i leci pokolei - int.TryParse jesli zwroci true to jest liczba i masz wartosc, jesli nie to jest operator i prostu jakims if/switchem sprawdzasz np czy wartosc jest równa "+" i wykonujesz operacje dodawania.
@smashgoor: Widzę, że wątek trwa. Rozwiązanie, które podlinkowałem bazuje na algorytmie k-najbliższych sąsiadów. Jeśli chcesz prostszą metodę i bardziej "chałupniczą" to możesz pobawić się ze szkieletyzacją, cross-correlation i skanowanie obrazu w oknie o określonym rozmiarze. Ale to byłoby lepsze gdybyś robił rozpoznawanie konkretnych czcionek. Są tutaj problemy z segmentacją obrazu, skalą, obrotem itp. Ale może to będzie jakiś punkt startowy do dalszego researchu ;)