
Teoría
El Reocnocimiento óptico de Caracteres (OCR) es una tecnología
utilizada para convertir diferentes tipos de documentos, como imágenes,
documetnos impresos escaneados, fotografías de texto, archivos PDF, o
imágenes capturadas con una cámara, en datos editables y buscables.
Instalar paquetes y llamar librerías
#install.packages("tesseract") #OCR
library(tesseract)
#install.packages("magick") #PNG
library(magick)
## Linking to ImageMagick 6.9.12.98
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
#install.packages("officer") #word
library(officer)
#install.packages("pdftools") #pdf
library(pdftools)
## Using poppler version 23.08.0
#install.packages("purrr") #map: apply a function to each element of a vector
library(purrr)
Separar en páginas (imágenes) un PDF
#file.choose()
pdf1 <- pdf_convert("C:\\Users\\naila\\OneDrive\\Documentos\\1 TEC\\7MO SEMESTRE\\M2\\eso3.pdf", dpi=600)%>%map(ocr)
## Converting page 1 to eso3_1.png... done!
## Converting page 2 to eso3_2.png... done!
## Converting page 3 to eso3_3.png... done!
Imágenes en texto
imagen1 <- image_read("C:\\Users\\naila\\OneDrive\\Documentos\\eso3_1.png")
texto1 <- ocr(imagen1)
imagen2 <- image_read("C:\\Users\\naila\\OneDrive\\Documentos\\eso3_2.png")
texto2 <- ocr(imagen2)
imagen3 <- image_read("C:\\Users\\naila\\OneDrive\\Documentos\\eso3_3.png")
texto3 <- ocr(imagen3)
Guardar texto en WORD
doc1 <- read_docx()
doc1 <- doc1 %>% body_add_par(texto1, style = "Normal")
doc1 <- doc1 %>% body_add_par(texto2, style = "Normal")
doc1 <- doc1 %>% body_add_par(texto3, style = "Normal")
print(doc1, target = "esoenpdf.docx")
Conclusiones
El OCR es una tecnología que nos permite hacer más
eficiente las operaciones de la empresa, ahorrando costos en la captura
de información.
LS0tDQp0aXRsZTogIk9DUiBFc28iDQphdXRob3I6ICJOYWlsYSBTYWxpbmFzIC0gQTAwODMyNzAyIg0KZGF0ZTogIjIwMjQtMDgtMTQiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiBkYXJrDQotLS0NCg0KIVtdKEM6XFxVc2Vyc1xcbmFpbGFcXE9uZURyaXZlXFxEb2N1bWVudG9zXFwxIFRFQ1xcN01PIFNFTUVTVFJFXFxNMlxcZXNvLmdpZikNCg0KIyBUZW9yw61hDQpFbCBSZW9jbm9jaW1pZW50byDDs3B0aWNvIGRlIENhcmFjdGVyZXMgKE9DUikgZXMgdW5hIHRlY25vbG9nw61hIHV0aWxpemFkYSBwYXJhIGNvbnZlcnRpciBkaWZlcmVudGVzIHRpcG9zIGRlIGRvY3VtZW50b3MsIGNvbW8gaW3DoWdlbmVzLCBkb2N1bWV0bm9zIGltcHJlc29zIGVzY2FuZWFkb3MsIGZvdG9ncmFmw61hcyBkZSB0ZXh0bywgYXJjaGl2b3MgUERGLCBvIGltw6FnZW5lcyBjYXB0dXJhZGFzIGNvbiB1bmEgY8OhbWFyYSwgZW4gZGF0b3MgZWRpdGFibGVzIHkgYnVzY2FibGVzLg0KDQojIEluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXMNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQojaW5zdGFsbC5wYWNrYWdlcygidGVzc2VyYWN0IikgI09DUg0KbGlicmFyeSh0ZXNzZXJhY3QpDQojaW5zdGFsbC5wYWNrYWdlcygibWFnaWNrIikgI1BORw0KbGlicmFyeShtYWdpY2spDQojaW5zdGFsbC5wYWNrYWdlcygib2ZmaWNlciIpICN3b3JkDQpsaWJyYXJ5KG9mZmljZXIpDQojaW5zdGFsbC5wYWNrYWdlcygicGRmdG9vbHMiKSAjcGRmDQpsaWJyYXJ5KHBkZnRvb2xzKQ0KI2luc3RhbGwucGFja2FnZXMoInB1cnJyIikgI21hcDogYXBwbHkgYSBmdW5jdGlvbiB0byBlYWNoIGVsZW1lbnQgb2YgYSB2ZWN0b3INCmxpYnJhcnkocHVycnIpDQpgYGANCg0KIyBTZXBhcmFyIGVuIHDDoWdpbmFzIChpbcOhZ2VuZXMpIHVuIFBERg0KYGBge3J9DQojZmlsZS5jaG9vc2UoKQ0KcGRmMSA8LSBwZGZfY29udmVydCgiQzpcXFVzZXJzXFxuYWlsYVxcT25lRHJpdmVcXERvY3VtZW50b3NcXDEgVEVDXFw3TU8gU0VNRVNUUkVcXE0yXFxlc28zLnBkZiIsIGRwaT02MDApJT4lbWFwKG9jcikNCmBgYA0KIyBJbcOhZ2VuZXMgZW4gdGV4dG8NCmBgYHtyfQ0KaW1hZ2VuMSA8LSBpbWFnZV9yZWFkKCJDOlxcVXNlcnNcXG5haWxhXFxPbmVEcml2ZVxcRG9jdW1lbnRvc1xcZXNvM18xLnBuZyIpDQp0ZXh0bzEgPC0gb2NyKGltYWdlbjEpDQppbWFnZW4yIDwtIGltYWdlX3JlYWQoIkM6XFxVc2Vyc1xcbmFpbGFcXE9uZURyaXZlXFxEb2N1bWVudG9zXFxlc28zXzIucG5nIikNCnRleHRvMiA8LSBvY3IoaW1hZ2VuMikNCmltYWdlbjMgPC0gaW1hZ2VfcmVhZCgiQzpcXFVzZXJzXFxuYWlsYVxcT25lRHJpdmVcXERvY3VtZW50b3NcXGVzbzNfMy5wbmciKQ0KdGV4dG8zIDwtIG9jcihpbWFnZW4zKQ0KYGBgDQoNCg0KIyBHdWFyZGFyIHRleHRvIGVuIFdPUkQNCmBgYHtyfQ0KZG9jMSA8LSByZWFkX2RvY3goKQ0KZG9jMSA8LSBkb2MxICU+JSBib2R5X2FkZF9wYXIodGV4dG8xLCBzdHlsZSA9ICJOb3JtYWwiKQ0KZG9jMSA8LSBkb2MxICU+JSBib2R5X2FkZF9wYXIodGV4dG8yLCBzdHlsZSA9ICJOb3JtYWwiKQ0KZG9jMSA8LSBkb2MxICU+JSBib2R5X2FkZF9wYXIodGV4dG8zLCBzdHlsZSA9ICJOb3JtYWwiKQ0KcHJpbnQoZG9jMSwgdGFyZ2V0ID0gImVzb2VucGRmLmRvY3giKQ0KYGBgDQoNCiMgQ29uY2x1c2lvbmVzDQpFbCAqKk9DUioqIGVzIHVuYSB0ZWNub2xvZ8OtYSBxdWUgbm9zIHBlcm1pdGUgaGFjZXIgbcOhcyBlZmljaWVudGUgbGFzIG9wZXJhY2lvbmVzIGRlIGxhIGVtcHJlc2EsIGFob3JyYW5kbyBjb3N0b3MgZW4gbGEgY2FwdHVyYSBkZSBpbmZvcm1hY2nDs24uDQoNCg==