From a353c60de269764c6d061adf1d05b31428b2e8e2 Mon Sep 17 00:00:00 2001 From: Pedro Vazquez Date: Fri, 31 Jan 2020 16:01:57 -0600 Subject: [PATCH 1/4] upload vision md --- .DS_Store | Bin 8196 -> 8196 bytes index.md | 1 + posts/vision.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 posts/vision.md diff --git a/.DS_Store b/.DS_Store index 282c20962257d41da5728985c290dce20571b427..cbb1a3c891f56d3ab4fc99d1b00b8621251e8de9 100644 GIT binary patch delta 277 zcmZp1XmOa}&nU1lU^hRbz+@hQ%+2!!6qtogEKGD1EDUOO6spb54RjRD%#0^j37Sr3 z7ZGFJJXuaenL|`eTvS3*QhKtdNWN^m0Dp0EQGQNNKz?y%NoIatWORB_W{Q7WT5)R0 z6V8Fx( ip&4YLG?ZeD-h4+?n`vT$>1K9`Z!DA5MeV6>v=IQj*E;wB delta 293 zcmZp1XmOa}&nUPtU^hRb;A9?wOlekzc!pwzOokGMRL`9J Date: Fri, 31 Jan 2020 16:25:44 -0600 Subject: [PATCH 2/4] upload images --- posts/vision.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/posts/vision.md b/posts/vision.md index f7acab9..a759797 100644 --- a/posts/vision.md +++ b/posts/vision.md @@ -28,13 +28,14 @@ Esta construido sobre CoreML y Core Image, Vision nos da las herramientas necesa Vision también permite el uso de modelos Core ML personalizados para tareas como clasificación o detección de objetos. -## Ejemplo de detección de texto con Vision +## Ejemplo de detección de texto con Vision +![](https://i.ibb.co/fn08r7V/app.png) En este ejemplo utilizaremos el framework Vision para detectar un párrafo en una imágen y convertirlo a texto. Primero debemos de crear un nuevo proyecto en Xcode como Single View App y en el **Main.storyboard** crea la siguente pantalla. -**imagen de la pantalla** +![](https://i.ibb.co/yXrDp9W/pantalla.png) Después ligaremos el TextView y el Botón al ViewController.swift. From 33cd805ca9d1ac112d19c0d2224b78c5cefecee6 Mon Sep 17 00:00:00 2001 From: Pedro Vazquez Date: Fri, 31 Jan 2020 16:58:51 -0600 Subject: [PATCH 3/4] minor isuses --- posts/vision.md | 51 ++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/posts/vision.md b/posts/vision.md index a759797..4d027e8 100644 --- a/posts/vision.md +++ b/posts/vision.md @@ -78,34 +78,37 @@ Seguido a eso crearemos esta función, la cual nos permitirá obtener una imáge ``` func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) { - let image = scan.imageOfPage(at: 0) - let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:]) - do { - try handler.perform([textRecognitionRequest]) - } catch { - print(error) - } - controller.dismiss(animated: true) - } + + let image = scan.imageOfPage(at: 0) + let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:]) + do { + try handler.perform([textRecognitionRequest]) + } catch { + print(error) + } + controller.dismiss(animated: true) +} ``` Por último dentro de la función ViewDidLoad( ), debajo de super.viewDidLoad() pondremos el siguente código, el cual al obtener la imágen aplicará los algorítmos del kit Vision para poder reconocer el texto y presentarlo en el TextView. ``` textRecognitionRequest = VNRecognizeTextRequest(completionHandler: { (request, error) in - if let results = request.results, !results.isEmpty { - if let requestResults = request.results as? [VNRecognizedTextObservation] { - self.recognizedText = "" - for observation in requestResults { - guard let candidiate = observation.topCandidates(1).first else { return } - self.recognizedText += candidiate.string - self.recognizedText += "\n" - } - self.scannedText.text = self.recognizedText - } - } - }) - textRecognitionRequest.recognitionLevel = .accurate - textRecognitionRequest.usesLanguageCorrection = false - textRecognitionRequest.customWords = ["@gmail.com", "@outlook.com", "@yahoo.com", "@icloud.com"] + if let results = request.results, !results.isEmpty { + if let requestResults = request.results as? [VNRecognizedTextObservation] { + self.recognizedText = "" + for observation in requestResults { + guard let candidiate = observation.topCandidates(1).first else { return } + + self.recognizedText += candidiate.string + + self.recognizedText += "\n" + } + self.scannedText.text = self.recognizedText + } + } +}) +textRecognitionRequest.recognitionLevel = .accurate +textRecognitionRequest.usesLanguageCorrection = false +textRecognitionRequest.customWords = ["@gmail.com", "@outlook.com", "@yahoo.com", "@icloud.com"] ``` \ No newline at end of file From b122aeadc82b4450ee8a90fa261f79e84ca628a5 Mon Sep 17 00:00:00 2001 From: Pedro Vazquez Date: Fri, 31 Jan 2020 17:09:11 -0600 Subject: [PATCH 4/4] ok --- posts/vision.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/posts/vision.md b/posts/vision.md index 4d027e8..ac6c171 100644 --- a/posts/vision.md +++ b/posts/vision.md @@ -66,11 +66,11 @@ var recognizedText = "" Dentro de la funcion scanButton creada al ligar el botón y el controlador, meteremos el siguente codigo: ``` - @IBAction func scanButton(_ sender: Any) { - let documentCameraViewController = VNDocumentCameraViewController() - documentCameraViewController.delegate = self - self.present(documentCameraViewController, animated: true, completion: nil) - } + @IBAction func scanButton(_ sender: Any) { + let documentCameraViewController = VNDocumentCameraViewController() + documentCameraViewController.delegate = self + self.present(documentCameraViewController, animated: true, completion: nil) +} ``` Este código nos ayudará a poder prender la camara en el modo escáner de documentos .