Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击相关的知识,希望对你有一定的参考价值。

要找的图为计算机,也就是icon.png,对应的图标为:

 需要安装的依赖:

pip install cv2
pip install PIL
pip install pyautogui

代码如下:

import cv2
from PIL import ImageGrab
import numpy as np
import pyautogui

if __name__ == '__main__':

    im = ImageGrab.grab()
    im.save('./res/screen.png', 'png')

    img_rgb = cv2.imread('./res/screen.png')

    # 所有操作在灰度版中进行
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    template = cv2.imread('./res/icon.png', 0)

    res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
    threshold = 0.7
    loc = np.where(res >= threshold)

    for pt in zip(*loc[::-1]):
        print(pt[0], pt[1])
        # pyautogui.moveTo(pt[0] + template.shape[0] / 2, pt[1] + template.shape[1] / 2)
        pyautogui.doubleClick(pt[0] + template.shape[0] / 2, pt[1] + template.shape[1] / 2)

        pass


    print('over')
    pass

 

以上是关于Python笔记-利用OpenCV的matchTemplate屏幕找图并使用pyautogui点击的主要内容,如果未能解决你的问题,请参考以下文章

利用Anaconda安装python后,如何安装opencv-python

OpenCV学习笔记02:OpenCV基本图片处理

在python下利用opencv如何找出最大的圆

树莓派上利用python+opencv+dlib实现嘴唇检测

OpenCV-Python实战(番外篇)——OpenCV中利用鼠标事件动态绘制图形

python opencv 学习笔记