程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Pytesseract 没有检测到我的数字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Pytesseract 没有检测到我的数字?

开发过程中遇到Pytesseract 没有检测到我的数字的问题如何解决?下面主要结合日常开发的经验,给出你关于Pytesseract 没有检测到我的数字的解决方法建议,希望对你解决Pytesseract 没有检测到我的数字有所启发或帮助;

我正在使用python和PyTesseract制作一个简单的程序来检测图像中的数字,但情况是它总是返回我♀,我正在分析这样的图像:

@H_177_2@my image

我读取数字的代码如下:

import PyTesseract
from PyTesseract import (
    Output,TesseractError,TesseractNotFoundError,TSVNotSupported,get_tesseract_version,image_to_Boxes,image_to_data,image_to_osd,image_to_pdf_or_hocr,image_to_String,run_and_get_output
)

def analizar_resultado(path): 
    image = cv2.imread(path,1)
    
    text = PyTesseract.image_to_String(image,config = 'digits')
    print('texto detectado:',text)

我无法让它为我工作,我尝试了更多此类质量更高的图像和其他图像,但我无法取回任何数字,我该如何解决这个问题?非常感谢

解决方法

我有一个三步解决方案


    1. 分别获取每个数字
    1. 应用阈值
    1. 读取输出

第 1 部分:分别获取每个数字

  • 您可以使用索引变量获取每个数字。例如:

    • s_idx = 0  # start index
      e_idx = int(w/5) - 10  # end index
      
  • 首先获取图片的高度和宽度,然后为每个数字增加索引

    • for _ in range(0,6):
          gry_crp = grY[0:h,s_idx:e_idx]
          s_idx = e_idx
          e_idx = s_idx + int(w/5) - 20
      
  • 结果

    • 0 0 9 9 7 6

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      @H_674_118@

  • 第 2 部分:应用阈值

    • 0 0 9 9 7 6

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

      Pytesseract 没有检测到我的数字

  • 第 3 部分:阅读

    • 0.9976
      

不幸的是,由于伪影,第二个零不能被识别为数字。

如果您看不懂图片,请尝试使用不同的 psm configurations

@R_801_11346@


import cv2
from pytesseract import image_to_String

img = cv2.imread("A3QRw.png")
gry = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
(h,w) = gry.shape[:2]
s_idx = 0  # start index
e_idx = int(w/5) - 10  # end index

result = []

for i,_ in enumerate(range(0,6)):
    gry_crp = grY[0:h,s_idx:e_idx]
    (h_crp,w_crp) = gry_crp.shape[:2]
    gry_crp = cv2.resize(gry_crp,(w_crp*3,h_crp*3))
    thr = cv2.threshold(gry_crp,255,cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
    txt = image_to_String(thr,config="--psm 6 digits")
    result.append(txt[0])
    s_idx = e_idx
    e_idx = s_idx + int(w/5) - 20
    cv2.imshow("thr",thr)
    cv2.waitKey(0)

print("".join([digit for digit in result]))
@H_489_215@

大佬总结

以上是大佬教程为你收集整理的Pytesseract 没有检测到我的数字全部内容,希望文章能够帮你解决Pytesseract 没有检测到我的数字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Pytesseract