ios - 视觉 - 文字识别
问题描述
我一直在努力解决这个问题一段时间。我想使用 Vision 框架来识别照片中的文字。
一切正常。识别的文本被传递到文本视图等附加 - 我添加了一个可以在图片中看到的边界框
例子
他要执行的下一步是从 tex "CRU007" 中识别出元素 ex 并将其传递给
我不知道该怎么做
这是我的代码:
func setupVision() {
guard let image = UIImage(named: "example.card.04" ) else {return}
imageView = UIImageView(image: image)
imageView.contentMode = .scaleAspectFit
let scaledHeight = view.frame.width / image.size.width * image.size.height
imageView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: scaledHeight)
view.addSubview(imageView)
guard let cgImage = image.cgImage else {return}
let myRequestHandler = VNImageRequestHandler(cgImage: cgImage, options: [:])
let request = VNRecognizeTextRequest { (request, error) in
guard let results = request.results as? [VNRecognizedTextObservation] else {return}
for visionResult in results {
let maximumCandidate = 1
guard let candidate = visionResult.topCandidates(maximumCandidate).first else {
continue
}
self.textView.text += candidate.string
self.textView.text += "\n"
if let range = candidate.string.range(of: "CRU007") {
let boxObservation = try? candidate.boundingBox(for: range)
print(boxObservation?.boundingBox)
let x = self.view.frame.width * visionResult.boundingBox.origin.x
let height = scaledHeight * visionResult.boundingBox.height
let y = scaledHeight * ( 1 - visionResult.boundingBox.origin.y) - height
let widht = self.view.frame.width * visionResult.boundingBox.width
let greenView = UIView()
greenView.layer.borderWidth = 3
greenView.layer.borderColor = UIColor.green.cgColor
greenView.frame = CGRect(x: x, y: y, width: widht, height: height)
self.view.addSubview(greenView)
}
}
}
request.recognitionLevel = .accurate
try? myRequestHandler.perform([request])
}
解决方案
推荐阅读
- javascript - javascript中的隐式强制
- java - 如何将数据从片段传递到适配器
- reactjs - 使用 Promise 时 API 调用被拒绝
- c# - 生成的对象未销毁问题
- google-chrome-extension - 管理员管理的 Chrome 扩展需要什么才能接受上传到控制台的配置 JSON?
- grafana - 按度量值对重复的面板进行排序
- python - 写类似 groupby 的更好方法?
- excel - 图表宏调整大小
- flutter - 如何使 Flutter 应用程序响应所有类型的屏幕?
- sql-server - 为 .net 4.5.2 安装包 Microsoft.EntityFrameworkCore.SqlServer