python opencv二值化后带入matchTemplate进行模版匹配的具体代码
时间: 2024-05-12 14:16:38 浏览: 190
以下是Python OpenCV使用二值化后进行模板匹配的示例代码:
```python
import cv2
# 读取图像和模板
img = cv2.imread("image.jpg")
temp = cv2.imread("template.jpg", cv2.IMREAD_GRAYSCALE)
# 将图像和模板二值化
retval, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
retval, temp = cv2.threshold(temp, 127, 255, cv2.THRESH_BINARY)
# 获取模板的宽和高
height, width = temp.shape[:2]
# 进行模板匹配
result = cv2.matchTemplate(img, temp, cv2.TM_CCOEFF_NORMED)
# 获取匹配结果中的最大值以及最大值的位置
max_val, max_loc = cv2.minMaxLoc(result)
# 在图像中绘制矩形框标识匹配位置
top_left = max_loc
bottom_right = (top_left[0] + width, top_left[1] + height)
cv2.rectangle(img, top_left, bottom_right, (0, 255, 0), 2)
# 显示图像
cv2.imshow("Matching Result", img)
cv2.waitKey()
```
这段代码首先读取图像和模板,然后对其进行二值化处理。之后,利用OpenCV提供的matchTemplate函数进行模板匹配,并获取匹配结果中的最大值以及最大值的位置。最后,在图像中绘制矩形框来标识匹配位置。
阅读全文