确定屏幕截图中是否有较小的图像



我已经开始用Python制作一个机器人了。机器人的目标是从屏幕上读取简单的一位数,然后将它们相加。目前我知道我将如何获得屏幕截图。我被困在图像识别上。我已经研究了OpenCV模板匹配。

几天来,我一直试图弄清楚如何做到这一点。我唯一能写的代码是在问题的底部。

例如,我要做的是:(按顺序)

  1. 它将抓取屏幕截图
  2. 它将通过将我的数字图像与屏幕截图进行比较来运行
  3. 找到匹配的图像后,它将向变量记录一个值。
  4. 然后它将移动到下一个数字。
  5. 它将重复步骤 1 - 3
  6. 它将把数字加在一起。

目前这是我的代码的样子:

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, "images1.png", "images2.png", "images3.png", "images4.png", "images5.png", "images6.png", "images7.png", "images8.png", "images9.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/

相关内容

  • 没有找到相关文章

最新更新