最快速度写出一个识别效果——OpenCV模板匹配(含代码)

简介: 最快速度写出一个识别效果——OpenCV模板匹配(含代码)

当我们需要在图像中查找特定的目标时,模板匹配(Template Matching)是一种常用的方法。通过比较模板图像(即目标图像)和原图像中各个位置的像素值,找到最相似的位置,即可定位目标区域。

在Python中,OpenCV提供了cv2.matchTemplate()函数来实现模板匹配。下面是简单的使用示例:

import cv2
import numpy as np
# 读取原图像和模板图像
img = cv2.imread('test.jpg')
template = cv2.imread('template.jpg')
# 获取模板图像的尺寸
h, w = template.shape[:2]
# 进行模板匹配
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] + w, top_left[1] + h)
# 在原图像中标记目标区域
cv2.rectangle(img, top_left, bottom_right, (0,0,255), 2)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,我们首先读取原图像和模板图像,并使用cv2.matchTemplate()函数进行模板匹配。然后使用cv2.minMaxLoc()函数寻找匹配程度最高的位置,并根据模板图像的尺寸计算出目标区域的左上角和右下角坐标。最后,在原图像中使用cv2.rectangle()函数标记目标区域。

需要注意的是,模板匹配有时可能会出现误判或漏判的情况,需要根据具体应用场景进行调整和优化。

相关文章
|
3月前
|
传感器 C++ 计算机视觉
【opencv3】详述PnP测距完整流程(附C++代码)
【opencv3】详述PnP测距完整流程(附C++代码)
|
6月前
|
监控 计算机视觉 Python
用Python和OpenCV库实现识别人物出现并锁定
用Python和OpenCV库实现识别人物出现并锁定
135 0
|
4月前
|
算法 计算机视觉 开发者
OpenCV中使用Eigenfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中使用Eigenfaces人脸识别器识别人脸实战(附Python源码)
76 0
|
4月前
|
计算机视觉 Python
OpenCV多模板匹配讲解与匹配汽车实战(附Python源码)
OpenCV多模板匹配讲解与匹配汽车实战(附Python源码)
63 0
OpenCV多模板匹配讲解与匹配汽车实战(附Python源码)
|
2月前
|
机器学习/深度学习 算法 数据可视化
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-2
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
99 0
|
2月前
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
56 1
|
4月前
|
计算机视觉 开发者 Python
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
67 0
|
1月前
|
存储 计算机视觉 C++
Opencv (C++)系列学习---模板匹配
Opencv (C++)系列学习---模板匹配
|
2月前
|
算法 API 计算机视觉
基于opencv的大米计数统计(详细处理流程+代码)
基于opencv的大米计数统计(详细处理流程+代码)
58 1
基于opencv的大米计数统计(详细处理流程+代码)
|
2月前
|
算法 计算机视觉
基于opencv的指针式仪表的识别与读数
基于opencv的指针式仪表的识别与读数
43 0