我有非常高分辨率的工程图纸/电路图,其中包含许多不同区域的文本。其目的是从这些图像中提取文本。在
我正在使用pytesseract执行此任务。直接应用pytesseract是不可能的,因为在这种情况下,来自不同区域的文本在输出中会变得混乱。因此,我识别包含文本的不同边界框,然后迭代地将这些区域传递给pytesseract。边界框逻辑工作正常,但有时我没有从裁剪图像或部分文本只得到文本。我可以理解,如果裁剪的图像是低分辨率或模糊的,但事实并非如此。请看所附的几个例子。在
图片1
图像2
以下是我获取文本的代码:
source_img_simple = cv2.imread('image_name.tif')
source_img_simple_gray = cv2.cvtColor(source_img_simple, cv2.COLOR_BGR2GRAY)
img_text = pytesseract.image_to_string(source_img_simple_gray)
# Export the text file
with open('Output_OCR.txt', 'w') as text:
text.write(img_text)
第一个图像的实际结果-无输出(空白文本文件) 其他尺寸(所有第二个管道连接) 我想知道如何提高OCR的质量。如果需要的话,我也愿意使用任何其他工具(除了pytesseract)。但不能使用API(Google,AWS等),因为这是一个限制。注:我已经看过下面的帖子,它不是我的案件的副本,因为我有白底黑字:
因为你的图像看起来已经很干净了,所以不需要进行预处理。一种简单的方法是在将图像放入Pytesseract之前先对图像进行阈值和高斯模糊平滑处理。下面是简单处理后的结果和Pytesseract的输出
对于第二张图片
我们使用
psm 6
config标志,因为我们希望将图像视为单个统一的文本块。这里有一些附加的configuration flags可能有用代码
相关问题 更多 >
编程相关推荐