python opencv 模板匹配
时间: 2023-06-27 22:05:39 浏览: 98
Python OpenCV 中的模板匹配是一种用于查找图像中指定模板的技术。它可以检测和定位处于大图像中指定位置上的目标。您可以使用 OpenCV 库中的 cv2.matchTemplate() 函数实现模板匹配。该函数将图像和模板作为输入,并返回一个输出数组,其中包含与模板匹配的区域。您可以在输出数组中找到最大值的位置,以获取匹配的位置。
相关问题
python opencv模板匹配
以下是使用OpenCV实现图片模板匹配的Python代码示例:
```python
import cv2
import numpy as np
# 读取模板和待匹配图像
template = cv2.imread('template.jpg', 0)
img = cv2.imread('test.jpg', 0)
# 获取模板和待匹配图像的尺寸
w, h = template.shape[::-1]
W, H = img.shape[::-1]
# 使用相关系数匹配方法进行模板匹配
res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
# 设置匹配阈值
threshold = 0.8
# 获取匹配结果中大于阈值的位置
loc = np.where(res >= threshold)
# 在原图上标记匹配位置
for pt in zip(*loc[::-1]):
cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
# 显示匹配结果
cv2.imshow('Match Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们首先读取了模板和待匹配图像,并获取了它们的尺寸。然后使用OpenCV中的matchTemplate函数进行模板匹配,得到了匹配结果res。接着,我们设置了匹配阈值threshold,并使用np.where函数获取了匹配结果中大于阈值的位置loc。最后,我们在原图上标记了匹配位置,并显示了匹配结果。
Python opencv模板匹配
好的,下面是Python OpenCV模板匹配的代码示例:
```python
import cv2
import numpy as np
# 读取原始图像和模板图像
img = cv2.imread('image.jpg')
template = cv2.imread('template.jpg')
# 获取模板图像的宽度和高度
w, h = template.shape[:-1]
# 使用模板匹配算法,计算匹配结果
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('Match Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.imread` 函数用于读取图片,`cv2.matchTemplate` 函数用于进行模板匹配,`cv2.rectangle` 函数用于在原始图像中画出匹配到的区域。需要注意的是,这里使用的是归一化的相关系数匹配算法,即 `cv2.TM_CCOEFF_NORMED`。如果需要使用其他的算法,可以将这个参数替换成其他值。
阅读全文