Просмотр изображений не конвертировать в текст в iOS - PullRequest
0 голосов
/ 21 февраля 2019

Я встроил оптическое распознавание текста в мое демонстрационное приложение. Я нажимаю одну кнопку, и пользователь выбирает изображение из галереи или камеры, выбирает отображение изображения при просмотре изображения и нажимает кнопку «Преобразовать в текст». Когда я выбираю «Изображение из галереи» и нажимаю на процессчем получить идеальный текст с изображения, но когда я снимаю изображение с камеры и нажимаю на кнопку обработки, чем текст не идеальный. Отобразить из изображения. Пожалуйста, проверьте ниже код 2, выберите I-: камера и II-: галерея

   @IBAction func browse(_ sender: UIButton) {
    let imagePickerController = UIImagePickerController()
    imagePickerController.delegate = self
    let actionSheet = UIAlertController(title:"Photo Source",message: "choose source",preferredStyle: .actionSheet)
    actionSheet.addAction(UIAlertAction(title: "camera",style: .default,handler: {(action:UIAlertAction) in
        if UIImagePickerController.isSourceTypeAvailable(.camera){
            imagePickerController.sourceType = .camera
            self.present(imagePickerController,animated: true,completion: nil)
        }
        else{
            print("camera not available")
        }
        } ))


    actionSheet.addAction(UIAlertAction(title: "photo lib",style: .default,handler: {(action:UIAlertAction) in
        imagePickerController.sourceType = .photoLibrary
        self.present(imagePickerController,animated: true,completion: nil)

    } ))
    actionSheet.addAction(UIAlertAction(title: "cancel",style: .cancel,handler: nil ))
    self.present(actionSheet,animated: true,completion: nil)
       }

после выбора изображения и отображения при просмотре изображения используйте код ниже

  func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    attachment_image_view.image = image
    picker.dismiss(animated: true, completion: nil)
    }

для выполнения ocr. Я создаю метод runTextRecognition и передаю изображение в этот метод

@IBAction func process_btn(_ sender: UIButton) {

runTextRecognition(with: attachment_image_view.image!)
}
func runTextRecognition(with image: UIImage){

    let visionImage = VisionImage(image: image)
    textRecognizer.process(visionImage) {(features,error) in
        self.processResult(from: features, error: error)
    }
}   
func processResult(from text: VisionText?,error: Error?){
    var lineBunch: String = ""
    removeFromParentViewController()
    guard let features = text,let image = attachment_image_view.image else { return }
    for block in features.blocks {
        for line in block.lines{
            print("lines==>",line.text)
            lineBunch = lineBunch + "\(line.text) \n"

            for element in line.elements{

                //print("element ==>",element.text)
                //self.addFrameView(featureFrame: element.frame,imageSize: image.size,viewFrame: self.attachment_image_view.frame,text: element.text)
            }
        }
    }
    print("lineBunch",lineBunch)
    ocrText.text = lineBunch
}`

, также добавляю модульфайлы:

pod 'Firebase/Core'
pod 'Firebase/MLVision'
pod 'Firebase/MLVisionTextModel'
pod 'Firebase/MLVision'

так как интегрировать ocr из изображения с камеры. Выше кода, работающего с изображением галереи, но не с изображения с камеры, отметьте

...