Я использую Firebase MLKit
для textDetection
.Когда я загружаю изображение из библиотеки, мне удается обнаружить текст как CloudTextRecognizer()
, так и onDeviceTextRecognizer()
.Когда я делаю фотографию, я не могу обнаружить текст из onDeviceTextRecognizer()
.
Вот мой код
import UIKit
import Firebase
class ViewController: UIViewController {
//MARK: Properties
var imagePickerController : UIImagePickerController!
lazy var vision = Vision.vision()
var textRecognizer : VisionTextRecognizer!
//MARK: Outlets
@IBOutlet weak var detectButton: UIButton!
@IBOutlet weak var imageView: UIImageView!
//MARK: Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
imagePickerController = UIImagePickerController()
textRecognizer = vision.onDeviceTextRecognizer()
detectButton.isEnabled = false
}
//MARK: -Actions
@IBAction func LibraryButton(_ sender: UIButton) {
detectButton.isEnabled = false
imagePickerController.allowsEditing = false
imagePickerController.sourceType = .camera
imagePickerController.delegate = self
present(imagePickerController, animated: true, completion: nil)
}
@IBAction func detectTextButton(_ sender: UIButton) {
let visionImage = VisionImage(image: imageView.image!)
textRecognizer.process(visionImage) { (result, error) in
guard error == nil else{
print("Error : \(error!.localizedDescription)")
return
}
guard let result = result else {
print("Error on Results ")
return
}
print(result.text)
}
}
}
extension ViewController : UINavigationControllerDelegate, UIImagePickerControllerDelegate {
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
detectButton.isEnabled = true
dismiss(animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
DispatchQueue.main.async {
self.imageView.image = pickedImage
self.detectButton.isEnabled = true
}
}
dismiss(animated: true, completion: nil)
}
}
Вывод textRecognizer
, если что-то вроде этого, он 0z Z
Есть идеи?
Спасибо