基于Python图像处理—模板匹配 代码
时间: 2023-11-19 14:08:59 浏览: 65
以下是基于Python的模板匹配代码示例:
```python
import cv2
import numpy as np
# 读取原始图像和模板图像
img = cv2.imread('original_img.jpg')
template = cv2.imread('template_img.jpg')
# 获取模板图像的宽度和高度
w, h = template.shape[:-1]
# 使用cv2.matchTemplate()函数进行模板匹配
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('Matched Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先使用`cv2.imread()`函数读取原始图像和模板图像。然后,我们使用`cv2.matchTemplate()`函数对原始图像进行模板匹配,该函数返回一个匹配结果矩阵。接着,我们使用`cv2.minMaxLoc()`函数获取匹配结果中最大值的位置,即为模板匹配的位置。最后,我们在原始图像中绘制矩形框标记匹配位置,并使用`cv2.imshow()`函数显示匹配结果。
需要注意的是,模板匹配算法对图像的光照变化和旋转变化比较敏感,因此在实际应用中需要进行预处理或使用其他更加稳健的算法。