繁体   English   中英

Python Tesseract 找出文本方向/转换

[英]Python Tesseract figuring out text orientation/transformation

# Tesseract Win-Installer https://github.com/UB-Mannheim/tesseract/wiki

import pytesseract
import cv2

image = cv2.imread("img.png")
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
text = pytesseract.image_to_string(image)
print(text)

输出甚至没有关闭“WX017”,而不是“MX011A”

但是,如果我手动重新排列它可以工作的字符。 我可以转换输入图像并定义 ROI,但方向可以是任何东西。 它也可能是颠倒的。

我想识别圆形周围的弯曲文本

1:

1

2:

2

3:

3

这非常困难,因为tesseract期望文本失真最小。

一种(当然是牵强的)可能性是尝试检测圆,然后将其映射到矩形上。

为此,您可以使用模糊过滤器将每个字母减少为未连接的 blob,并丢弃低于阈值的灰度值; 迭代直到你得到更多或更少的圆形斑点,然后得到它们的中心。 随机取三个三个中的几个,并为每个三元组计算包含所有三个的圆的中心 这些中心的平均值应该或多或少是刻字圈的中心。

有了中心和近似半径,将适当高度的圆形冠映射到矩形相对容易(例如,使用极坐标到笛卡尔变换)。

然后,您将tesseract应用于转换后的矩形。

应该可以使用自相关来平均和锐化沿所述矩形的多个相同文本(即“MX011A MXOI1A MX017A”->“MX011A”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM