如果图像使用Python显示相同,则返回True

时间:2016-03-24 18:46:57

标签: python image opencv numpy pillow

我目前正在使用OpenCV和Python来解析网站的屏幕截图,以确定我的数据库中的任何徽标是否出现在屏幕截图中。基本上只是在较大的图像中找到一个小图像。像OpenCV这样的大多数库都可以做到这一点,但他们通过概述找到较小图像的位置或其他内容来实现。我只需要返回True或False来指示是否在图像中找到了徽标。任何帮助,将不胜感激!我现在正在使用OpenCV,Pillow和Numpy,但如果有人知道有更好的库可供使用,我愿意接受建议。这是我目前的职能:

def check_image(screenshot_template, logo_template):

    try:
        img_rgb = cv2.imread(screenshot_template)
        img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
        template = cv2.imread(logo_template,0)
        w, h = template.shape[::-1]

        res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
        threshold = 0.7
        loc = np.where( res >= threshold)
        for pt in zip(*loc[::-1]):
            cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)

        cv2.imwrite('res.jpg',img_rgb)
        check = equal(screenshot_template, '/home/ubuntu/cerberus/res.jpg')
        return check
    except Exception as e:
        print e
        return True

0 个答案:

没有答案