gpt4 book ai didi

python - Pytesseract 有时无法在完全清晰的图像上工作

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:27 24 4
gpt4 key购买 nike

我有非常高分辨率的工程图/电路图,其中包含许多不同区域的文本。目的是从此类图像中提取文本。

我正在使用 pytesseract 来完成此任务。直接应用 pytesseract 是不可能的,因为在这种情况下,来自不同区域的文本会在输出中变得困惑。因此,我识别包含文本的不同边界框,然后迭代地将这些区域传递给 pytesseract。边界框逻辑工作正常,但有时我没有从裁剪图像或仅得到部分文本中得到任何文本。如果裁剪后的图像分辨率低或模糊,我会理解,但事实并非如此。请查看随附的几个示例。

图片 1

enter image description here

图片2

enter image description here

这是我获取文本的代码:

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 dont reconize a very clear image

最佳答案

由于您的图像看起来已经很干净,因此不需要进行预处理。一种简单的方法是在将图像放入 Pytesseract 之前对其进行阈值和高斯模糊以平滑图像。这是简单处理后的结果以及 Pytesseract 的输出

enter image description here

  1. SYSTEM CODE IS 3CAB, EXCEPT AS INDICATED.

对于第二张图片

enter image description here

  1. ALL MISCELLANEOUS PIPING AND CONNECTION SIZES SHALL BE 1 INCH. EXCEPT AS INDICATED.

我们使用 --psm 6 配置标志,因为我们希望将图像视为单个统一的文本 block 。这里有一些额外的 configuration flags这可能有用

代码

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

image = cv2.imread('2.jpg',0)
thresh = cv2.threshold(image, 150, 255, cv2.THRESH_BINARY_INV)[1]

result = cv2.GaussianBlur(thresh, (5,5), 0)
result = 255 - result

data = pytesseract.image_to_string(result, lang='eng',config='--psm 6')
print(data)

cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey()

关于python - Pytesseract 有时无法在完全清晰的图像上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57719983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com