如何使用 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/