Обнаруживать числа и обрабатывать их? - PullRequest
2 голосов
/ 07 июня 2010

Я пытаюсь определить числа, записанные на сетке, а затем обработать их с помощью камеры iPhone. До сих пор я нашел несколько хороших примеров:

http://blog.damiles.com/?p=93

http://cmgresearch.blogspot.com/2010/01/augmented-reality-on-iphone-how-to_01.html

Хотя я могу в достаточной степени нарисовать цифры на оверлейном виде, но все равно не могу определить, что это за цифры.

Редактировать

Привет, ребята. Я нашел ссылку на http://github.com/nolanbrown/Tesseract-iPhone-Demo, откуда я скачал код и начал тестирование, но он запускался только один раз, но не дал никакого вывода, и с тех пор его сбой дает мне следующие журналы ошибок:

#0  0x0007b718 in TessBaseAPI::HistogramRect ()
#1  0x0007bc04 in TessBaseAPI::OtsuThreshold ()
#2  0x0007c4a8 in TessBaseAPI::CopyImageToTesseract ()
#3  0x0007cd8c in TessBaseAPI::TesseractRect ()
#4  0x0006cdb4 in -[OCRDemoViewController ocrImage:] (self=0x31ec40, _cmd=0x201ba7, uiImage=0x34ed00) at /Users/madhup/Tesseract-iPhone-Demo/OCRDemo/Classes/OCRDemoViewController.mm:131
#5  0x0006c6d0 in -[OCRDemoViewController imagePickerController:didFinishPickingImage:editingInfo:] (self=0x31ec40, _cmd=0x334fcf80, picker=0x348ba0, image=0x35c470, editingInfo=0x0) at /Users/ngamacbook/Tesseract-iPhone-Demo/OCRDemo/Classes/OCRDemoViewController.mm:213
#6  0x32d103ec in -[UIImagePickerController _imagePickerDidCompleteWithInfo:] ()
#7  0x3296ceac in PLNotifyImagePickerOfImageAvailability ()
#8  0x3297e49e in -[PLUICameraViewController cameraView:photoSaved:] ()
#9  0x3294d134 in -[PLCameraView cropOverlay:didFinishSaving:] ()
#10 0x3294d344 in -[PLCameraView cropOverlayWasOKed:] ()
#11 0x3295dfb2 in -[PLCropOverlay cropOverlayBottomBarDoneButtonClicked:] ()
#12 0x329801e0 in -[PLCropOverlayBottomBar doneButtonClicked:] ()
#13 0x32569ee4 in -[NSObject performSelector:withObject:withObject:] ()
#14 0x32ba2064 in -[UIApplication sendAction:to:from:forEvent:] ()
#15 0x32ba2004 in -[UIApplication sendAction:toTarget:fromSender:forEvent:] ()
#16 0x32ba1fd6 in -[UIControl sendAction:to:forEvent:] ()
#17 0x32ba1d30 in -[UIControl(Internal) _sendActionsForEvents:withEvent:] ()
#18 0x32ba2644 in -[UIControl touchesEnded:withEvent:] ()
#19 0x32ba165c in -[UIWindow _sendTouchesForEvent:] ()
#20 0x32ba1038 in -[UIWindow sendEvent:] ()
#21 0x32b9d92e in -[UIApplication sendEvent:] ()
#22 0x32b9d3a6 in _UIApplicationHandleEvent ()
#23 0x32913b78 in PurpleEventCallback ()
#24 0x32567c2c in CFRunLoopRunSpecific ()
#25 0x3256735c in CFRunLoopRunInMode ()
#26 0x32912cbe in GSEventRunModal ()
#27 0x32912d6a in GSEventRun ()
#28 0x32b6276e in -[UIApplication _run] ()
#29 0x32b61472 in UIApplicationMain ()
#30 0x0006c2cc in main (argc=1, argv=0x2ffff5dc) at /Users/madhup/Tesseract-iPhone-Demo/OCRDemo/main.mm:14

Теперь, перейдя по линии 131, я нахожу

char* text = tess->TesseractRect(imageData,(int)bytes_per_pixel,(int)bytes_per_line, 0, 0,(int) imageSize.height,(int) imageSize.width);

но я не могу вмешаться или найти какой-либо способ решить проблему, любой орган знает, что это, пожалуйста, помогите. Я занимаюсь этим последние 4 дня и не продвинулся ни на шаг.

Спасибо, Madhup

1 Ответ

1 голос
/ 08 июня 2010

Вы можете использовать очень хороший OCR-движок с открытым исходным кодом. Просто выполняйте обработку изображений, извлекая что-то, что вы считаете цифрами, и передавайте их в тессеракт. Tesseract должен компилироваться на iPhone, но уже должны быть некоторые предварительно скомпилированные двоичные файлы. Я не знаю, как это работает на рукописных материалах, но цифры могут быть в порядке. Тем не менее, я предполагаю, что у вас всегда будут проблемы, например 2 и 7 ...

...