函数实现opencv导入模板匹配多个模板,其中模板在一个文件夹下,并将模板图像转化为灰度图
时间: 2024-05-09 16:14:57 浏览: 68
图象的检测,模板匹配算法代码.rar_匹配检测_匹配算法_图像 匹配算法_图像 模板_模板匹配C
以下是一个实现该功能的示例代码:
```python
import cv2
import os
# 定义模板文件夹路径和模板列表
template_folder = "path/to/templates"
template_list = os.listdir(template_folder)
# 定义匹配方法和阈值
method = cv2.TM_CCOEFF_NORMED
threshold = 0.8
# 循环读取模板并进行匹配
for template_name in template_list:
# 读取模板并将其转化为灰度图
template_path = os.path.join(template_folder, template_name)
template = cv2.imread(template_path, cv2.IMREAD_GRAYSCALE)
# 读取待匹配图像
image = cv2.imread("path/to/image")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 进行模板匹配
result = cv2.matchTemplate(gray, template, method)
locations = cv2.findNonZero(result > threshold)
# 在原图上标记匹配位置
for loc in locations:
pt = (loc[0], loc[1])
cv2.rectangle(image, pt, (pt[0] + template.shape[1], pt[1] + template.shape[0]), (0, 255, 0), 2)
# 显示结果
cv2.imshow("Match result for " + template_name, image)
cv2.waitKey(0)
```
需要注意的是,该代码中的模板文件夹中应该只包含模板图像文件,否则可能会出现读取错误的情况。同时,阈值的选择也需要根据具体情况进行调整。
阅读全文