pytesseract 提高印刷体数字识别率走的弯路 白底黑字

屏幕截图里识别数字, 非常正规的白色字体,图片背景略微复杂, 但是识别率不高, 实在无法相信知名软件包居然是这个效果, 反复找资料实验后发现: 图像要 白底黑字  白底黑字  白底黑字  重要的事情说三遍, 凡是没有白底黑字的也能识别,但是效果惨不忍睹,正确率低于40%.

        height, width, deep = cropImg.shape                 # cropImg是从图片里截取的,只包含一行数字
        gray = cv.cvtColor(cropImg, cv.COLOR_BGR2GRAY)      # 转灰度图
        dst = np.zeros((height, width, 1), np.uint8)        
        for i in range(0, height):                          # 反相 转白底黑字
            for j in range(0, width):
                grayPixel = gray[i, j]
                dst[i, j] = 255 - grayPixel
        ret, canny = cv.threshold(dst, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)   # 二值化
        # psm 7表示单行文字,单个字符psm 10, tessedit_char_whitelist 限定只有数字
        text = pytesseract.image_to_string( canny , config='--psm 7 --oem 3 -c tessedit_char_whitelist=0123456789')
        print ("文字识别",text)

感谢原作者 https://blog.csdn.net/m0_38008027/article/details/105264877

不过他的代码里有一行错误, 导致依然没有白底黑字效果不佳. 网上其他的膨胀腐蚀算法我都尝试了, 真正解决问题的就是白底黑字 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值