OpenCV自学笔记十八:模板匹配

模板匹配是一种在图像中寻找指定模式的方法。OpenCV库提供了用于模板匹配的函数,可以帮助我们在图像中定位和识别特定的模式。下面是模板匹配的基础原理和一个示例:

模板匹配通过在待匹配图像上滑动一个固定大小的模板图像,并计算模板与图像之间的相似度来寻找匹配位置。相似度通常使用相关性或差异度量来衡量。在滑动过程中,当相似度达到最大值或阈值时,认为找到了一个匹配。

下面是一个使用OpenCV进行模板匹配的示例代码:

复制代码
​
import cv2

import numpy as np

import matplotlib.pyplot as plt

# 读取主图像和模板图像

img = cv2.imread('main_image.jpg', 0)

template = cv2.imread('template_image.jpg', 0)

# 进行模板匹配

result = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)

# 获取匹配位置

top_left = max_loc

bottom_right = (top_left[0] + template.shape[1], top_left[1] + template.shape[0])

# 在主图像上绘制矩形框

cv2.rectangle(img, top_left, bottom_right, 255, 2)

# 显示结果

plt.subplot(131), plt.imshow(img, cmap='gray')

plt.title('Original Image'), plt.xticks([]), plt.yticks([])

plt.subplot(132), plt.imshow(template, cmap='gray')

plt.title('Template Image'), plt.xticks([]), plt.yticks([])

plt.subplot(133), plt.imshow(result, cmap='gray')

plt.title('Matching Result'), plt.xticks([]), plt.yticks([])

plt.show()

​

在上述示例中,我们首先使用`cv2.imread()`函数读取主图像和模板图像,并将它们转换为灰度图像。

然后,使用`cv2.matchTemplate()`函数进行模板匹配。该函数接受三个参数:待匹配的主图像、模板图像和匹配方法。在本例中,我们使用了`cv2.TM_CCOEFF_NORMED`作为匹配方法。

接下来,使用`cv2.minMaxLoc()`函数获取匹配结果中的最大值位置。这对应于找到的最佳匹配位置。

然后,我们使用找到的匹配位置,在主图像上绘制矩形框。

最后,使用Matplotlib库的`plt.subplot()`和`plt.imshow()`函数显示原始图像、模板图像和匹配结果图像。

运行上述代码,你将看到显示了原始图像、模板图像和匹配结果的窗口。匹配结果中的矩形框表示找到的最佳匹配位置。

相关推荐
ywyy67988 分钟前
微小店推客系统开发:构建全民营销矩阵,解锁流量增长密码
人工智能·搜索引擎·微信小程序·系统·短剧·推客系统·微小店
郜太素9 分钟前
深度学习中的正则化方法与卷积神经网络基础
人工智能·pytorch·python·深度学习·神经网络·机器学习·cnn
Him__13 分钟前
AI能源危机:人工智能发展与环境可持续性的矛盾与解决之道
人工智能·ai·chatgpt·aigc·llama
pen-ai13 分钟前
【NLP】34. 数据专题:如何打造高质量训练数据集
人工智能·自然语言处理
蹦蹦跳跳真可爱58919 分钟前
Python----目标检测(labelimg和labelme的安装与使用,Pycharm配置教程)
人工智能·python·目标检测·计算机视觉·pycharm
英码科技20 分钟前
AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型
人工智能·科技·华为
新加坡内哥谈技术28 分钟前
Jules 从私有预览阶段推向全球公测
人工智能·语言模型
范桂飓33 分钟前
GPU 超级节点:AWS Trainium2 UltraServer
人工智能·云计算·aws
m0_5405077841 分钟前
人工智能的“歧视”:“她数据”在算法运行中隐形
人工智能
清醒的兰1 小时前
OpenCV 图像色彩空间转换
人工智能·opencv·计算机视觉