func detectPromtTextCodes(in image: UIImage, completion: @escaping ([String]?) -> Void) {
guard let ciImage = CIImage(image: image) else {
completion(nil)
return
}
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results as? [VNRecognizedTextObservation] else {
completion(nil)
return
}
let codes = observations.compactMap { observation in
return observation.topCandidates(1).first?.string
}
completion(codes)
}
request.recognitionLevel = .accurate
let handler = VNImageRequestHandler(ciImage: ciImage)
do {
try handler.perform([request])
} catch {
completion(nil)
}
}