skimage.template_matching举例
时间: 2023-08-06 12:09:16 浏览: 57
下面是使用 scikit-image 的 `skimage.template_matching` 模块进行模板匹配的示例代码:
```python
import matplotlib.pyplot as plt
from skimage import data
from skimage.feature import match_template
# 加载原始图像和模板图像
image = data.camera()
template = image[320:420, 140:240]
# 进行模板匹配
result = match_template(image, template)
# 获取匹配结果的位置
ij = np.unravel_index(np.argmax(result), result.shape)
x, y = ij[::-1]
# 显示原始图像、模板图像和匹配结果
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(8, 3))
ax1.imshow(image, cmap=plt.cm.gray)
ax1.set_axis_off()
ax1.set_title('Input image')
ax2.imshow(template, cmap=plt.cm.gray)
ax2.set_axis_off()
ax2.set_title('Template')
ax3.imshow(image, cmap=plt.cm.gray)
ax3.set_axis_off()
ax3.set_title('Matched result')
# 绘制矩形框显示匹配位置
h, w = template.shape
rect = plt.Rectangle((x, y), w, h, edgecolor='r', facecolor='none')
ax3.add_patch(rect)
plt.show()
```
在上面的示例中,我们使用 `data.camera()` 加载了一个示例图像作为原始图像,并从原始图像中提取了一个区域作为模板图像。然后,我们使用 `match_template` 函数进行模板匹配,得到匹配结果。接下来,我们找到匹配结果中最大值的位置,并将其显示在原始图像上,同时绘制一个红色的矩形框来表示匹配位置。
请确保先安装 scikit-image 库,可以使用以下命令进行安装:
```
pip install scikit-image
```
这只是 scikit-image 的模板匹配的基本用法示例,更多高级功能和用法可以参考 scikit-image 的文档或示例代码。