opencv定位图片中的图案?

使用opencv模板匹配方式。

这种方式针对从原始图片中直接扣小图情况比较好。

python 复制代码
import cv2 as cv2

def find_positions(image_path, small_image_path):
    # 读取大图和小图
    large_image = cv2.imread(image_path)
    small_image = cv2.imread(small_image_path)

    # 小图规格
    small_image_h, small_image_w = small_image.shape[:2]

    # 对比大图与小图
    # 匹配模板
    res = cv2.matchTemplate(large_image, small_image, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
    # 计算矩形左边
    top_left = max_loc

    # 适用于小图长度>高度情况
    # bottom_right = (max_loc[0] + small_image_h, max_loc[1] + small_image_w)

    # 适用于小图长度<高度情况
    bottom_right = (max_loc[0] + small_image_w, max_loc[1] + small_image_h)
    # 画矩形
    cv2.rectangle(large_image, top_left, bottom_right, (0, 0, 255), 3)

    # 展示结果
    cv2.imshow('large_image', large_image)
    cv2.waitKey(0)
    pass


image_path = "D:/Desktop/big.png"
small_image_path = "D:/Desktop/small.png"
find_positions(image_path, small_image_path)

大图:

小图:

最后结果:

相关推荐
__基本操作__20 分钟前
边缘提取函数 [OPENCV--2]
人工智能·opencv·计算机视觉
这是一个图像22 分钟前
从opencv-python入门opencv--图像处理之图像滤波
图像处理·opencv·计算机视觉·中值滤波·高斯滤波·双边滤波·图像滤波
阿_旭8 小时前
如何使用OpenCV和Python进行相机校准
python·opencv·相机校准·畸变校准
Seeklike12 小时前
OpenCV图像预处理
人工智能·opencv·计算机视觉
爱写代码的小朋友12 小时前
使用 Python 和 OpenCV 实现摄像头人脸检测并截图
人工智能·python·opencv
Jack黄从零学c++14 小时前
opencv(c++)----图像的读取以及显示
c++·人工智能·opencv
Jack黄从零学c++21 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv
青龙摄影1 天前
【监控】如何调出电脑的中摄像头,从摄像头获取视频流
人工智能·opencv·计算机视觉
CP-DD1 天前
OpenCV DNN
人工智能·opencv·dnn
慕容复之巅1 天前
基于MATLAB+opencv人脸疲劳检测
开发语言·opencv·matlab