Python opencv阈值化与pytesseract

Python opencv阈值化与pytesseract,python,opencv,python-tesseract,Python,Opencv,Python Tesseract,目前,我正在尝试开发一些简单的计算机视觉代码来读取我在任务召唤游戏中的死亡数量,并将其作为整数保存到数组中。代码是每秒截屏一次,使用opencv对图像进行阈值分割,并将其输入PyteseRact。虽然数字保持不变,但背景噪声会使图像发生很大变化,并强制执行许多空输入。如果它遗漏了一些输入,但遗漏了所有数字的%50或更多,我可以。如果有人对不同背景的一位数图像的阈值设置有任何建议,这将是一个巨大的帮助 ''' ''' 注意:这些图像显示了一个“NULL”结果,我不知道为什么在您阅读图像后,i

目前,我正在尝试开发一些简单的计算机视觉代码来读取我在任务召唤游戏中的死亡数量,并将其作为整数保存到数组中。代码是每秒截屏一次,使用opencv对图像进行阈值分割,并将其输入PyteseRact。虽然数字保持不变,但背景噪声会使图像发生很大变化,并强制执行许多空输入。如果它遗漏了一些输入,但遗漏了所有数字的%50或更多,我可以。如果有人对不同背景的一位数图像的阈值设置有任何建议,这将是一个巨大的帮助

'''

'''


注意:这些图像显示了一个“NULL”结果,我不知道为什么在您阅读图像后,
img=cv2.imread('pictures/Kill.png')

在原始pyautogui屏幕截图上应用自适应阈值:

现在改为:

txt=pytesseract.image_to_字符串(thr,config=“--psm 7”)
打印(txt)
结果:

3
代码:


导入cv2
导入pytesseract
img=cv2.imread(“0wHAy.png”)
gry=cv2.CVT颜色(img,cv2.COLOR\u BGR2GRAY)
thr=cv2.自适应阈值(gry,255,cv2.自适应阈值平均值,
cv2.THRESH_二进制_INV,21,9)
txt=pytesseract.image_to_字符串(thr,config=“--psm 7”)
打印(txt)

显示一些失败的输入字符图像。你试过大津阈值法吗?
pytesseract.pytesseract.tesseract_cmd = r'C:/Program Files/Tesseract-OCR/tesseract'

pyautogui.screenshot('pictures/Kill.png', region = (1822, 48, 30, 23))

img = cv2.imread('pictures/Kill.png')

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

ret, thresh1 = cv2.threshold(img, 255, 255, cv2.THRESH_TRUNC)

cv2.imwrite('pictures/killthresh1.png',thresh1)

ret, thresh1 = cv2.threshold(img, 180, 255, cv2.THRESH_BINARY)

thresh1 = cv2.bitwise_not(thresh1)

cv2.imwrite('pictures/Killthresh2.png', thresh1)

custom_config = r'-l eng --oem 3 --psm 7 -c 

tessedit_char_whitelist="1234567890" '

killnumber = pytesseract.image_to_string(thresh1, config = custom_config)