我正在开发一个可以打开相机并拍照的应用程序,如果相机检测到纸张。我搜索了一段时间,但不确定在2018年哪种方法最好:)
第一个PS:我需要从iOS 9.0开始支持,因此我无法使用仅在iOS 11.0之后才能运行的Vision Framework。 我发现了什么
Tesseract OCR: 在我搜索时,这是Vision Framework之后最常用的库。如我所见,该库有两个常见问题。一个是无法检测是否是纸,另一个是不能检测到少量文本。 (将被扫描的纸张只有一张数字,就像信用卡中一样)
OCR match frame´s position to field in credit card
您的第一个问题是,大多数OCR并非针对占用大部分“页面”的少量文本进行了优化
https://github.com/gali8/Tesseract-OCR-iOS
OpenCV:这是我发现的第二个用于文本识别的库,但是据我所知,这是一种古老的实现方法。因此,我不确定它是否快速可靠。
https://medium.com/@yiweini/opencv-with-swift-step-by-step-c3cc1d1ee5f1
示例应用程序,可以很好地进行纸张识别: https://itunes.apple.com/us/app/evernote-scannable/id883338188?mt=8
答案 0 :(得分:1)
答案 1 :(得分:1)
要进行纸张检测,您可以使用Core Image的CIDetector
iOS 8.0 +
https://developer.apple.com/documentation/coreimage/cirectanglefeature
检测到的矩形特征不一定在图像平面中是矩形;相反,此功能标识的形状在空间上可能是矩形,但在图像中以透视图的形式出现-例如,桌上的纸或书。 CIRectangleFeature对象的属性标识其在图像坐标中的角。
例如,您可以将矩形特征检测与CIPerspectiveCorrection过滤器一起使用,以检测图像或视频中的矩形对象并将其转换为原始方向。