ios - 如何使用 iOS swift 将图像转换为文本?

标签 ios swift ocr tesseract swiftocr

如何使用 iOS swift 将图像转换为文本?

步骤 01:使用 iOS 相机拍照。 (在 iOS swift 中使用 UIImagePickerController 完成)

第02步:我得到了图像。

步骤03:我必须将这些图像(UIImage)转换为文本格式。

使用 iOS swift 。

我引用了许多链接,因为我们已经有 VNDetectTextRectanglesRequest 用于识别字符框。

但我的目的是如何从图像转换为文本。不像使用 iOS swift 的矩形框

最佳答案

使用 CoreML 的 VNDetectTextRectanglesRequest,您只能找到图像中可见文本的区域。而且,这还不足以快速从图像中获取文本。

第一步是裁剪图像,您需要裁剪 VNTextObservation 中每个图像的图像。喜欢

    for textObservation in textObservations {
        guard let rects = textObservation.characterBoxes else {
            continue
        }
        var xMin = CGFloat.greatestFiniteMagnitude
        var xMax: CGFloat = 0
        var yMin = CGFloat.greatestFiniteMagnitude
        var yMax: CGFloat = 0
        for rect in rects {

            xMin = min(xMin, rect.bottomLeft.x)
            xMax = max(xMax, rect.bottomRight.x)
            yMin = min(yMin, rect.bottomRight.y)
            yMax = max(yMax, rect.topRight.y)
        }
       let imageRect = CGRect(x: xMin * size.width, y: yMin * size.height, width: (xMax - xMin) * size.width, height: (yMax - yMin) * size.height)

第二步是将图像发送到图像处理工具,如Opencv等。网上有一些关于如何与iOS集成的教程,如果你想与swift一起使用,你可以使用objective-c header。 https://medium.com/pharos-production/using-opencv-in-a-swift-project-679868e1b798

一旦获得处理后的图像,第三步就是尼克提到的,
然后使用 tesseract 或 ABBYY SDK。

Tesseract是免费使用的,您可以找到tesseract 3.03-rc1的iOS框架here 。关于 OCR 工具,您需要了解的最重要的事情是语言。您尝试转换什么语言?检测到的图像有什么语言?大多数情况下,您在超正方中获得了多种语言的训练数据 repository 。总之,工作流程将是,

图像捕获 -> 图像处理 -> OCR 处理

关于ios - 如何使用 iOS swift 将图像转换为文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49146546/

相关文章:

matlab - 用于照片的光学字符识别程序

objective-c - 处理 View Controller 或 subview 中的通知

ios - 当屏幕旋转不同步时旋转 UIView

ios - 如何在 iOS 10 中根据设备旋转布局 subview

ios - 在 iOS 12 中设置 WKWebView cookie 接受策略

objective-c - Objective-C 与 Swift 自定义初始化器

swift - UserDefaults 的多个设置导致显示速度变慢

ios - 在推送通知中显示消息正文

opencv - 构建 block 和隔离字符 OpenCV

swift - 使用 Swift 4 将 Base64 图像发布到 Web API