iOS:实时摄像机上的实时OCR(类似于iTunes兑换礼品卡)

前端之家收集整理的这篇文章主要介绍了iOS:实时摄像机上的实时OCR(类似于iTunes兑换礼品卡)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法完成类似于iTunes和App Store应用程序在使用设备相机赎回礼品卡时所做的工作,在实时摄像机供稿之上实时识别短字符串?

我知道在iOS 7中现在有AVMetadataMachineReadableCodeObject类,AFAIK只代表条形码.我更感兴趣的是检测和阅读一个短串的内容.这可能使用公开的API方法,或者您可能知道的其他第三方SDK?

还有一个视频的进程:

https://www.youtube.com/watch?v=c7swRRLlYEo

最好,

解决方法

我正在开发一个类似于苹果应用商店的照相机兑换的项目.

处理直播视频的最佳起点是a project I found on GitHub.这是使用AVFoundation框架,并实现AVCaptureVideoDataOutputSampleBufferDelegate方法.

一旦拥有图像流(视频),您可以使用OpenCV来处理视频.在通过Tesseract运行之前,您需要确定您想要的OCR图像中的区域.您必须使用过滤功能,但您采用OpenCV的广泛步骤如下:

>使用cv :: cvtColor(inputMat,outputMat,CV_RGBA2GRAY)将图像转换为B& W;
>阈值图像以消除不必要的元素.您指定要消除的阈值,然后将其他所有内容设置为黑色(或白色).
>确定形成框的边界(或任何正在处理的)的线.如果您已经删除了除所需区域之外的所有内容,或使用HoughLines算法(或概率版本,HoughLinesP),则可以创建“边框”.使用它,您可以确定线路交叉点以查找拐角,并使用拐角来扭曲所需区域,以将其拉直成一个正确的矩形(如果您的应用程序中需要此步骤)之前的OCR.
>使用Tesseract OCR库处理图像的部分以获得结果文本.可以为OpenCV中的字母创建训练文件,以便您可以在没有Tesseract的情况下阅读文本.这可能更快,但也可能是更多的工作.在App Store的情况下,他们正在做类似的操作,以便在原始图像上显示被覆盖的文本.这增加了很酷的因素,所以它只取决于你需要什么.

其他一些提示

>我用这本书“Instant OpenCV”快速入门.这是非常有帮助的
>从OpenCV.org/downloads.html下载OpenCV for iOS
>我发现自适应阈值非常有用,您可以通过搜索“OpenCV adaptiveThreshold”来阅读所有关于它的内容.另外,如果您的光和暗元素之间的图像很少,您可以使用Otsu’s Binarization.这可以根据灰度图像的直方图自动确定阈值.

猜你在找的iOS相关文章