Pytesseract无法识别二进制图像中的字符

时间:2018-05-06 13:01:12

标签: python opencv image-processing cv2

使用各种方法我将图像验证码改为看起来像这样

First Captcha Image

然而,在使用Pytesseract OCR时,包无法识别任何字符,我认为这是由于字母上方的行。

script.py

 cv2.imwrite(filename, imgOP)
 text = pytesseract.image_to_string(Image.open(filename))

控制台中图像的输出为无

然而,当尝试使用另一个图像(如下所示)时,我得到了输出

Second Image Captcha

PGKQKf

由于字母T

上面的行,这又错了

我使用各种技术来清理图像,例如侵蚀,扩张以及概率霍夫变换(下面给出的结果)

#Hough Line Transform
img = cv2.imread('Output1.png')
edges = cv2.Canny(img, 1000, 1500)
minLineLength = 0
maxLineGap = 10000000000
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 15, minLineLength, maxLineGap)
for x in range(0, len(lines)):
    for x1, y1, x2, y2 in lines[x]:
        cv2.line(img, (x1, y1), (x2, y2), (255, 255, 255), 2)

cv2.imwrite('houghlines3.jpg', img)

转换后的图像看起来有点像

enter image description here

minLineLength和maxLineGap的任何其他值组合都不起作用。

如何继续前进?我已经检查了各种技术,以使Tesseract更准确,但我对我应该使用哪一种感到困惑。

除了Tesseract之外,还有其他任何可用于获得所需结果的技术。

我曾想过创建一个蒙版,使用在线工具我将图像转换为0和1,如下所示。但是如何去做并用它来识别角色?

Binary Text

0 个答案:

没有答案