iOS 11 Vision框架 - 从图像中提取文本

时间:2017-06-15 11:25:31

标签: ios11 apple-vision

我正在使用iOS 11的Vision框架来检测图像上的文本。成功检测到文本,但我们如何获取检测到的文本。

3 个答案:

答案 0 :(得分:1)

在Apple Vision中,您可以使用VNRecognizeTextRequest类轻松地从图像中提取文本,从而使您可以发出图像分析请求,以查找和识别图像中的文本。

VNRecognizeTextRequest从iOS 13.0和macOS 10.15起开始工作

下面是一个代码片段,向您展示如何实现:

let requestHandler = VNImageRequestHandler(url: imageURL, options: [:])

let request = VNRecognizeTextRequest { (request, error) in

    guard let observations = request.results as? [VNRecognizedTextObservation] 
    else { return }

    for observation in observations {

        let topCandidate: [VNRecognizedText] = observation.topCandidates(1)

        if let recognizedText: VNRecognizedText = topCandidate.first {
            label.text = recognizedText.string
        }
    }
}

然后,您必须为recognitionLevel实例属性分配一个值:

// non-realtime asynchronous but accurate text recognition
request.recognitionLevel = VNRequestTextRecognitionLevel.accurate

// nearly realtime but not-accurate text recognition
request.recognitionLevel = VNRequestTextRecognitionLevel.fast

try? requestHandler.perform([request])

答案 1 :(得分:0)

不完全是一种欺骗,但类似于:Converting a Vision VNTextObservation to a String

您需要使用CoreML或其他库来执行OCR(SwiftOCR等)

答案 2 :(得分:-4)

这将在检测到的文本上返回带有矩形框的叠加图像

这是完整的xcode项目 https://github.com/cyruslok/iOS11-Vision-Framework-Demo

希望它有用

MobileServiceClient client = new MobileServiceClient("https://{your-app-name}.azure-mobile.net/") 
{ 
   LoginUriPrefix = "/login" 
};
var user=await client.LoginAsync(MobileServiceAuthenticationProvider.Facebook,false);