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)

大图:

小图:

最后结果:

相关推荐
海绵波波10712 小时前
opencv、torch、torchvision、tensorflow的区别
人工智能·opencv·tensorflow
顾随17 小时前
(三)OpenCV——图像形态学
图像处理·人工智能·python·opencv·计算机视觉
jndingxin1 天前
OpenCV直线段检测算法类cv::line_descriptor::LSDDetector
人工智能·opencv·算法
Mikowoo0072 天前
03_opencv_imwrite()函数
opencv·计算机视觉
ddfa12342 天前
opencv 值类型 引用类型
人工智能·opencv·计算机视觉
金山几座2 天前
揭开图像的秘密:OpenCV直方图入门详解
opencv·计算机视觉
批量小王子2 天前
2025-07-15通过边缘线检测图像里的主体有没有出血
人工智能·opencv·计算机视觉
Java与Android技术栈3 天前
macOS 为 Compose Desktop 构建跨平台图像库:OpenCV + libraw + libheif 实践
人工智能·opencv·macos·计算机视觉
阿_旭3 天前
【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【3】使用OpenCV读取分割后的压力表读数
人工智能·深度学习·opencv·压力表读数读取
AI technophile3 天前
OpenCV计算机视觉实战(15)——霍夫变换详解
人工智能·opencv·计算机视觉