4

I'm using VNDocumentCameraViewController to scan document and VNRecognizeTextRequest to detect the text. It works only if the document is scanned in portrait mode. It landscape mode it fails. I could pass the orientation in VNImageRequestHandler but that would fail for portrait scans. Again, if I try to check the scanned image orientation it's always .up. So I can't even manipulate the image. Anybody has any idea how to fix this orientation issue? I'm using below code.

@IBAction func scanTapped(_ sender: UIButton) {
    allComponents = [Component]()
    let documentCameraViewController = VNDocumentCameraViewController()

    documentCameraViewController.delegate = self
    self.present(documentCameraViewController, animated: true, completion: nil)
}

func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
    let image = scan.imageOfPage(at: scan.pageCount-1)


    let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:])
    do {
        try handler.perform([textRecognitionRequest])
    } catch {
        print(error)
    }
    controller.dismiss(animated: true)
}
Ranadhir
  • 107
  • 1
  • 9

1 Answers1

0

I had the same problem. It was solved when I've enabled landscape device orientation.

Paki
  • 63
  • 7