Я пытаюсь обнаружить текст на изображении, полученном с камеры устройства, а также изображение, полученное из галереи. (Для камеры я использую коды камеры Apple-AVFoundation -)
Я могу обнаружить текст на изображении, выбранном из галереи. Но, тем не менее, когда я делаю снимок с камеры, одни и те же коды не работают одинаково. Я предсказываю, что облачное зрение хорошо распознается на изображениях, которые редактируются (сохраняются). Или у меня нет другой идеи.
Когда я делаю снимок и пытаюсь определить этот код, он не работает. Но когда я сохраняю ту же картинку и выбираю ее из галереи, она работает отлично. Здесь я делюсь кодами, надеюсь, вы можете мне помочь.
Коды ImagePicker, которые работают отлично:
@objc internal func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
imageView.image = editedImage
let vision = Vision.vision()
let textRecognizer = vision.onDeviceTextRecognizer()
let visionImage = VisionImage(image: editedImage)
textRecognizer.process(visionImage) { (features, error) in
features?.blocks.forEach({ (block) in
print(block.text)
})
}
dismiss(animated: true, completion: {
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
})
}
Съемка кодов кнопок изображения, которые не работают хорошо:
@IBAction func takePicture(_ sender: Any) {
cameraController.captureImage {(image, error) in
guard let image = image else {
print(error ?? "Image capture error")
return
}
self.imageView.image = image
let vision = Vision.vision()
let textRecognizer = vision.onDeviceTextRecognizer()
let visionImage = VisionImage(image: image)
textRecognizer.process(visionImage) { (features, error) in
features?.blocks.forEach({ (block) in
print(block.text)
})
}
}
}