安装虚拟环境

conda create -p E:\Python\envs\cvstu  python=3.8
conda activate E:\Python\envs\cvstu

安装所需要的包

pip install opencv-python
pip install matplotlib

编写代码

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 找图 返回最近似的点
def search_returnPoint(img, template, template_size):
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    template_ = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)
    result = cv2.matchTemplate(img_gray, template_, cv2.TM_CCOEFF_NORMED)
    threshold = 0.9
    # res大于70%
    loc = np.where(result >= threshold)
    # 使用灰度图像中的坐标对原始RGB图像进行标记
    point = ()
    for pt in zip(*loc[::-1]):
        cv2.rectangle(img, pt, (pt[0] + template_size[1], pt[1] + + template_size[0]), (7, 249, 151), 2)
        point = pt
    if point == ():
        return None, None, None
    return img, point[0] + template_size[1] / 2, point[1]

if __name__ == '__main__':
    scale = 1
    img = cv2.imread('./big.png')  # 要找的大图
    img = cv2.resize(img, (0, 0), fx=scale, fy=scale)

    template = cv2.imread('./small.png')  # 图中的小图
    template = cv2.resize(template, (0, 0), fx=scale, fy=scale)
    template_size = template.shape[:2]

    img, x_, y_ = search_returnPoint(img, template, template_size)
    if (img is None):
        print("没找到图片")
    else:
        print("找到图片 位置:" + str(x_) + " " + str(y_))
        plt.figure()
        plt.imshow(img, animated=True)
        plt.show()
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐