在一个图像找到对应模板模板图像块的位置python代码,结果显示在jupyter中
时间: 2023-11-27 15:53:00 浏览: 57
可以使用OpenCV库中的模板匹配功能来实现这个任务。下面是一个简单的Python代码示例:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取原图和模板图像
img = cv2.imread('original_image.jpg', 0)
template = cv2.imread('template_image.jpg', 0)
# 获取模板图像的大小
w, h = template.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)
# 显示结果
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
```
这个示例假设原图和模板图像都是灰度图像,如果是彩色图像需要先进行灰度化处理。同时,模板匹配功能有多种算法可供选择,这里使用的是`cv2.TM_CCOEFF_NORMED`算法,适用于模板和原图像的亮度变化不大的情况。如果亮度变化较大,可以试试其他算法。还可以调整`threshold`参数来控制匹配结果的精度。
阅读全文