0

我正在使用 VisionKit 构建一个带有 OCR 的文档扫描应用程序。但是,当我使用我的任何文档扫描作为输入时,文本只是乱码。我尝试将输入图像转换为 jpeg 和 png,但仍然产生相同的结果。在调试时,我尝试截取我的一个扫描的屏幕截图,然后使用该图像作为输入图像。OCR 完美地解决了令我困惑的问题。对此问题的任何见解将不胜感激。

let origImage = UIImage(data: scan.originalscan!)! // in jpeg

guard let cgImage = origImage?.cgImage else {
   fatalError("could not get cgimage")
}

let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
    
var textString = ""
    
    let request = VNRecognizeTextRequest { [weak self] request, error in
        guard let observations = request.results as? [VNRecognizedTextObservation],
            error == nil else {
            print("Failed!")
            //self?.copyTV.text = "Failed"
            return
        }
        for observation in observations {
            guard let topCandidate = observation.topCandidates(1).first else {
                print("no candidate");
                continue
            }
            textString += "\n\(topCandidate.string)"   
        }
        
        DispatchQueue.main.async {
            self?.copyTV.text = textString
        }
    }
    
    request.customWords = ["custOm"]
    request.recognitionLevel = .accurate
    request.recognitionLanguages = ["en_US"]
    request.usesLanguageCorrection = true
    
    do {
        try handler.perform([request])
    } catch {
        print(error)
    }
4

0 回答 0