Python Tesseract ocr输出,在检测到的文本之间包含单个字符
我正在尝试使用Tesseract从下图中提取 这是tesseract 4 ocr的结果Python Tesseract ocr输出,在检测到的文本之间包含单个字符,python,python-3.x,ocr,tesseract,python-tesseract,Python,Python 3.x,Ocr,Tesseract,Python Tesseract,我正在尝试使用Tesseract从下图中提取 这是tesseract 4 ocr的结果 print(text) Wrote Datastream application e Used Kafka to get the accounts 如果您看到图像中的项目符号被转换为e,我在文档中发现了几个这样的点,它们被转换为ascii中的单个字符 如果有人熟悉此类问题并有解决方案,请告诉我。我有一个建议,也许最好删除要点 消除要点的一个解决方案是应用自适应阈值 如果我们对当前图像应用自适应阈值
print(text)
Wrote Datastream application
e Used Kafka to get the accounts
如果您看到图像中的项目符号被转换为e
,我在文档中发现了几个这样的点,它们被转换为ascii中的单个字符
如果有人熟悉此类问题并有解决方案,请告诉我。我有一个建议,也许最好删除要点
- 消除要点的一个解决方案是应用
自适应阈值
- 如果我们对当前图像应用自适应阈值:
- 现在如果我们读到它:
导入cv2
导入pytesseract
img=cv2.imread(“4XMue.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
thr=cv2.自适应阈值(gry,255,cv2.自适应阈值平均值,
cv2.THRESH_二进制,11131)
txt=pytesseract.image\u to\u字符串(thr)
打印(txt)
请允许我告诉您,我的示例代码可能不适用于所有图像。因为图像可能有不同的伪影或需要额外的处理。您可能需要更改
自适应阈值的块大小
和C
参数。因此,请从阅读开始,但我认为tesseract已经使用大津算法对图像进行了二值化了?所以,当我们两次这样做时,不会在大型和密集的文档上降低质量。Seract OCR内部采用大津二值化方法。然而,该方法根据图像直方图选择一个最优的全局阈值。如果图像上有阴影,tesseract将无法提取字符。但是如果我们做两次,会不会降低图像的质量?你是说应用大津阈值两次?如果是这样,我没有对图像应用大津阈值。如果你看一下我的adaptivethrehshell
方法,我只使用了cv2.THRESH\u BINARY
。我们正在预处理图像以去除图像中的瑕疵。因此,多次预处理不应降低图像质量。否则,我们无法从图像中收集特征。
print(text)
Wrote Datastream application
e Used Kafka to get the accounts
Wrote Datastream application |
Used Kafka to get the accounts