快速的多列文字识别

问题描述

在多于一列的图像上使用文本识别时遇到一些麻烦。例如:

cars:
1 red car       1 blue car
2 red car       2 blue car
3 red car       3 blue car

将返回:

cars:
1 red car 
1 blue car
2 red car
2 blue car
3 red car
3 blue car

我需要它退货的是

cars:
1 red car
2 red car
3 red car
1 blue car
2 blue car
3 blue car

并非我需要分析的每张图像都有2列,但有很多列。

我当前使用的代码如下:

let requestHandler = VNImageRequestHandler(ciImage: image)
let textRecognitionRequest = VNRecognizeTextRequest(completionHandler: recognizeTextHandler)
 
textRecognitionRequest.recognitionLevel = VNRequestTextRecognitionLevel.accurate

do {
     try requestHandler.perform([textRecognitionRequest])
}
catch {
      print(error)
}
func recognizeTextHandler(request: VNRequest,error: Error?) {
          
      let text = ""
      guard let results =
                request.results as? [VNRecognizedTextObservation] else {
            fatalError("Could Not Detect Text")
        }
        
        for visionResult in results {
            let maximumCandidates = 1
            guard let candidate = visionResult.topCandidates(maximumCandidates).first else {
                continue
            }
            let string = candidate.string
            text += "\n"
            text += candidate.string
        }
        print(text)
}

任何帮助将不胜感激。预先感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)