我正在try 为特定用途制作一个快速的OCR,我知道我应该为普通的OCR编写一个预处理器,这会更快,但我首先想到了这个 idea ,我想我应该试试它,哈哈.这个程序会在屏幕的某个区域拍摄一张照片,并识别其中的数字,到目前为止,它只有0和1,但我一直在努力,遇到了一些问题.这是我的密码
while True:
if keyboard.is_pressed('`'):
Firstlist = list(pyautogui.locateAllOnScreen(image[0], confidence = 0.95,region=( 1570 , 990 , 230 , 70 )))
print(len(Firstlist))
Firstlist1 = list(pyautogui.locateAllOnScreen(image1, confidence = 0.95,region=( 1570 , 990 , 230 , 70 ))) + Firstlist
print(len(Firstlist1))
print(Firstlist)
if len(Firstlist) > 0:
print(Firstlist[0][0])
#compare all first instance of that number and eliminate all duplicated with in a different of 5 x pixel
break
这会在屏幕上识别出一组预先确定的数字,比如this,现在,它会给我一组屏幕上数字0的坐标,这是result,请忽略其他部分,这只是我在玩.问题是,如果不正确设置置信度,pyautogui.locateAllOnScreen
有时会在约0-5像素的坐标范围内生成同一图片的重复值.
例子:
值应该是[ (1655,1024,20,26),(1675,1024,20,26) ]
,但会产生第三个值,如[ (1655,1024,20,26), (1658,1024,20,26), (1675,1024,20,26) ]
.
这就是为什么我要纠正这一点.第二个重复坐标的x值是否在第一个坐标的0-5个像素范围内,是否需要确定,然后将其删除,将其余坐标向上移动,使数字正确且有序地出现?非常感谢.
注意:我仍在自学列表删除过程,用lambda阅读删除列表对我来说就像胡言乱语.如果有什么不对劲,请原谅我.祝大家过得愉快!