opencv模板匹配怎么用
时间: 2023-06-30 15:24:50 浏览: 79
OpenCV 模板匹配
OpenCV中的模板匹配是一种在图像中寻找给定模板的技术。它可以用来寻找图像中的特定模式,比如在一组图像中找到某个物体的位置。
下面是一些基本的代码示例,演示如何使用opencv进行模板匹配:
1.导入必要的库和图像文件
```python
import cv2
import numpy as np
# 读入原图和模板
img = cv2.imread('image.jpg', 0)
template = cv2.imread('template.jpg', 0)
```
2.选择匹配算法
OpenCV中提供了多种模板匹配算法,包括平方差匹配、归一化平方差匹配、相关性匹配和归一化相关性匹配。选择合适的算法取决于你的具体应用场景。
```python
# 选择匹配算法
method = cv2.TM_CCOEFF_NORMED
```
3.执行模板匹配
```python
# 执行模板匹配
res = cv2.matchTemplate(img, template, method)
# 找到最大值和最小值的坐标
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# 根据选择的算法,选择对应的坐标作为匹配结果
if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:
top_left = min_loc
else:
top_left = max_loc
# 右下角坐标
bottom_right = (top_left[0] + w, top_left[1] + h)
# 画出矩形框
cv2.rectangle(img, top_left, bottom_right, 255, 2)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这样就可以在原图中找到匹配模板的位置,并用矩形框标注出来。当然,这只是基本的使用方法,你还可以根据具体需要对算法参数进行调整,以达到更好的匹配效果。
阅读全文