安装虚拟环境

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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐