Opencv Pyteseract不';无法检测图像中的数字

Opencv Pyteseract不';无法检测图像中的数字,opencv,ocr,python-tesseract,Opencv,Ocr,Python Tesseract,我有两张图片,用opencv阅读,并试图用pytesseract识别里面的数字。其中一个图像检测到正确的数字。另一个根本检测不到数字。这两张图片都是从同一部手机截取的截图,取自同一个应用程序。因此,字体和同音同音词是相同的。下面是我用于此目的的代码 import cv2 import pytesseract import os pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.e

我有两张图片,用opencv阅读,并试图用pytesseract识别里面的数字。其中一个图像检测到正确的数字。另一个根本检测不到数字。这两张图片都是从同一部手机截取的截图,取自同一个应用程序。因此,字体和同音同音词是相同的。下面是我用于此目的的代码

import cv2
import pytesseract
import os

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
xconfig='--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789'

plist = [x for x in os.listdir() if x.endswith(".png")]
for pt in plist:
    img = cv2.imread(pt)
    pytesseract.image_to_string(img,config=xconfig)
这是第一张图像,数字在这里被正确检测到

在下面的一个中没有检测到这些数字。


在上面的一个示例中,如果我们在没有任何自定义配置的情况下使用,则会检测到以下字符:
'lO R Ly Reb yL\n\x0c'

您应该获取图像的阈值:

thr=cv2.threshold(src=gry,thresh=0,maxval=255,type=cv2.thresh\u OTSU+cv2.thresh\u BINARY\u INV)[1]

现在读

txt=pytesseract.image\u to\u字符串(thr)
打印(txt)
结果:

66215715578
代码:

导入cv2
导入pytesseract
img=cv2.imread(“v0cUq.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
thr=cv2.阈值(src=gry,thresh=0,maxval=255,type=cv2.thresh\u OTSU+cv2.thresh\u BINARY\u INV)[1]
txt=pytesseract.image\u to\u字符串(thr)
打印(txt)

您应该获取图像的阈值:

thr=cv2.threshold(src=gry,thresh=0,maxval=255,type=cv2.thresh\u OTSU+cv2.thresh\u BINARY\u INV)[1]

现在读

txt=pytesseract.image\u to\u字符串(thr)
打印(txt)
结果:

66215715578
代码:

导入cv2
导入pytesseract
img=cv2.imread(“v0cUq.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
thr=cv2.阈值(src=gry,thresh=0,maxval=255,type=cv2.thresh\u OTSU+cv2.thresh\u BINARY\u INV)[1]
txt=pytesseract.image\u to\u字符串(thr)
打印(txt)