检测数字并处理它们?

时间:2010-06-07 10:58:51

标签: iphone image-processing ocr augmented-reality number-recognition

我正在尝试检测写在网格上的数字,然后使用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找到了一个链接,我从那里下载了代码并开始测试,但它只运行了一次,但没有给出任何输出,从那时它的崩溃给了我以下错误日志:< / p>

#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 个答案:

答案 0 :(得分:1)

您可以使用非常好的tesseract开源OCR引擎。只需将您的图像处理视为提取您猜测为数字的内容并将其提供给tesseract。 Tesseract应该在iPhone上编译,但是应该已经有一些预编译的二进制文件了。我不知道它在手写的东西上表现如何,但数字可能没问题。但是,我认为你总是会遇到麻烦,例如: 2和7 ...