精神残废 2022-03-22 20:06 采纳率: 70.8%
浏览 288
已结题

tesseract验证码识别,四位数字或英文,反回结果是小方块或者空,Linux、win系统都这样

python3.7 3.9 3.10 pytesseract0.3.4 0.3.5 0.3.6 0.3.9 64/32 tesseract 3 4 5
换电脑,换系统,换软件版本,换库版本,换语言包,换图片,不处理和处理图片都试过了,全都是小方块

img

img

img

img


终端运行

img

识别结果写入TXT

img

import pytesseract
import numpy as np
import cv2.cv2 as cv2
img=cv2.imread('photo2051001204417.png')
img=img[2: 39, 3: 128]
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
thresh,yzm = cv2.threshold(gray,200,255,cv2.THRESH_BINARY)
# yzm:表示需要操作的数组
# 160:表示阈值
# 255 表示最大值
# 降噪
yzm = cv2.morphologyEx(yzm,cv2.MORPH_CLOSE,np.ones(shape=(2,2)))
# 先膨胀 让黑色遭点消失,再侵蚀让黑色加粗
# dilate = cv2.dilate(yzm,np.ones(shape=(2,2)))
# yzm = cv2.erode(dilate,np.ones(shape=(3,3)))
cv2.imwrite('new_img.png',yzm)

cv2.imshow('window1',yzm)
cv2.waitKey(1000)
cv2.destroyWindow('window1')
result=pytesseract.image_to_string(yzm)
print(result)



用了很多方法处理图片都不行,是不是tesseract本身有问题?

  • 写回答

8条回答 默认 最新

  • 冰履踏青云 2022-03-22 21:16
    关注

    我也有遇到过有识别不出结果的,如果不确定是不是tesseract本身有问题,可以参考一下我这篇博客:https://blog.csdn.net/weixin_44327634/article/details/117887612 ,看一下我那图片能识别出来吗?(我的电脑重装系统了,不然还可以直接帮你测试一下)如果试了不行,那就是没有对应的语言包识别不出来,这种情况要么自己找人家的开源代码,要么自己用opencv训练,实在不行没办法的办法就是用第三方打码平台了。充钱才能更强😂

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月25日
  • 修改了问题 3月25日
  • 修改了问题 3月22日
  • 创建了问题 3月22日