【发布时间】:2018-11-07 17:32:16
【问题描述】:
我在 R 中使用最新的 Tesseract OCR 引擎从几个图像中提取文本。它工作得很好,我对结果很满意。问题是我不想要整个文本,只想要一部分,但我不知道如何提取它。
代码是这样的:
library("tesseract")
library("pdftools")
library("magick")
mypdfFile<-"C:/Users/.../fileName.pdf"
mypngFile<-pdf_convert(mypdfFile, format="png", pages=1, dpi=600)
myImage<-image_read("fileName_1.png")
textFile<-ocr(myImage,engine = tesseract("spa"), HOCR = FALSE) # Text is in spanish
cat(textFile)
现在,最终结果是这样的
bla bla bla bla bla bla
bla text that I want to
extract bla bla bla bla
bla bla bla bla bla bla
我怎样才能获得我想要提取的文本?
我尝试在应用 ocr() 函数之前裁剪图像,但仅裁剪该部分是不可行或非常准确的。 ocr() 返回纯文本。
下面的完整示例
图片(最初为 pdf 文件)是电费单。由于隐私问题,我无法完整提供,但看起来像 sample image。在NOMBRE Y DIRECCION(名称和地址)下,应该有两行(一行带有名称,另一行带有地址),后跟“GALEANA CENTRO LERDO. C.P.”(城市名称)和“35150 LERDO,DGO”。 (邮政编码和州)。我的代码是这样的
myImage<-image_read("sampleImage.png")
myImage<-image_crop(myImage, new dimensions) #crop the right half and some from the top
textFile<-ocr(myImage,engine = tesseract("spa"), HOCR = FALSE)
cat(textFile)
我明白了
Nombre y Domicilio
NAME REDACTED
ADDRESS REDACTED
GALEANA CENTRO LERDO. C.P.
35150 LERDO, DGO.
Cuenta E Tarifa
30DC27B011164660 General < 25kW 02
AE A MA E
Num. de Lectura Lectura Mult. C
Medidor actual anterior
BD6687 40994 40539 1 ¿
Apoyo gubernamental
我只想从中提取“名称已编辑”和“35150 LERDO,DGO”之间的所有内容。包括的。
【问题讨论】:
-
我们不知道您的文本是否有潜在的结构,答案会根据结构和内容而改变。因此,其他人可以复制的示例将有所帮助。
-
添加了一个完整的例子。希望这就足够了。如果没有,我可以提供更多详细信息或更改所需的任何内容。