python调用OpenCV进行找图并返回坐标示例

import threading
import cv2  # opencv库
import numpy as np  # 将图片转换成数组,opencv无法直接处理mss的截图,用它进行转换
import mss  # 截屏库
from concurrent.futures import ThreadPoolExecutor
import os


def findpic(x1, y1, x2, y2, lujin, xiangsidu):
    chang = x2 - x1
    kuan = y2 - y1
    quyu = {"left": x1, "top": y1, "width": chang, "height": kuan}
    with mss.mss() as sct:
        # 获取大图片
        quyujieping = sct.grab(quyu)  # 对屏幕的左上角800*600进行截图
        quyujieping = np.array(quyujieping)  # 调用numpy库将mss库的截屏转换一下,并赋值给变量quyujieping
        datupian_huidu = cv2.cvtColor(quyujieping, cv2.COLOR_BGR2GRAY)

        xiaotupian = cv2.imread(lujin)
        xiaotupian_huidu = cv2.cvtColor(xiaotupian, cv2.COLOR_BGR2GRAY)

        # 在大图片中查找小图片
        result = cv2.matchTemplate(datupian_huidu, xiaotupian_huidu, cv2.TM_CCOEFF_NORMED)

        # 筛选结果
        locations = np.where(result >= xiangsidu)  # 用numpy筛选一下结果高于0.85的
        locations = list(zip(*locations[::-1]))  # 将结果再次处理一下
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值