我已经开始用Python制作一个机器人。该机器人的目标是从屏幕上读取简单的一位数字,然后将它们加在一起。目前,我知道如何获取屏幕截图。我被困在图像识别上。我已经研究过OpenCV模板匹配。
数天来,我一直在努力寻求解决方法。
我唯一能够编写的代码位于问题的底部。
例如,我想做的是:
(为了)
目前,我的代码如下所示:
import sys
import cv2
import numpy
from cv2 import cv
import PIL
from PIL import ImageGrab
print("Authentication")
print("Enter Password:")
entered = raw_input()
if entered == "hello":
print("************Menu************")
print("1: Quit")
print("2: Start Bot")
print("3: Settings")
print("*" * 28)
mode = input("")
if mode == 1:
print("Closing Answer Quick")
import time
time.sleep(3)
quit
elif mode == 2:
import time
print("Bot Initialize")
time.sleep(1)
print("Getting Screen")
time.sleep(3)
screenimage = ImageGrab.grab()
x = [1, "images\1.png", "images\2.png", "images\3.png", "images\4.png", "images\5.png", "images\6.png", "images\7.png", "images\8.png", "images\9.png"]
##Here is where the screen recognition code goes
elif mode == 3:
print("Settings")
else:
import time
print("Incorrect Password")
time.sleep(3)
quit
最佳答案
如果您不只是出于学术目的使用OpenCV,我建议使用OCR作为解决号码识别任务的更简单方法。这是一个基于Tesseract的python库,由Google维护,它是一种领先的OCR技术。它还具有仅数字检测设置。
http://code.google.com/p/pytesser/
关于python - 确定屏幕截图中是否包含较小的图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14572497/