加载头像模板图片,并创建一个视频捕捉对象。然后,在每一帧图像中,使用模板匹配函数对其进行匹配,将匹配到的帧图片保存下来
时间: 2024-04-07 21:30:07 浏览: 93
摄像头视频图像采集,以图片形式存到本地
4星 · 用户满意度95%
好的,以下是根据您的要求修改后的代码示例,将匹配到的帧图片保存下来:
```python
import cv2
def match_template(image, template):
result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)
_, max_val, _, max_loc = cv2.minMaxLoc(result)
return max_val, max_loc
# 加载头像模板图片
template = cv2.imread('template.png', cv2.IMREAD_GRAYSCALE)
# 创建视频捕捉对象
cap = cv2.VideoCapture(0)
count = 0 # 计数器,用于保存匹配到的帧图片
while True:
# 读取当前帧
ret, frame = cap.read()
if not ret:
break
# 转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 对当前帧进行模板匹配
max_val, max_loc = match_template(gray, template)
# 如果匹配值超过阈值(根据实际情况调整),则认为找到了头像模板
if max_val > 0.8:
# 在图像上绘制矩形框
top_left = max_loc
bottom_right = (top_left[0] + template.shape[1], top_left[1] + template.shape[0])
cv2.rectangle(frame, top_left, bottom_right, (0, 255, 0), 3)
# 保存匹配到的帧图片
cv2.imwrite(f'matched_frame_{count}.jpg', frame)
count += 1
# 显示当前帧
cv2.imshow('Video', frame)
# 按下Esc键退出
if cv2.waitKey(1) == 27:
break
# 释放视频捕捉对象和窗口
cap.release()
cv2.destroyAllWindows()
```
在这个修改后的示例中,我们添加了一个计数器 `count` 用于保存匹配到的帧图片,并在匹配到头像模板时使用 `cv2.imwrite` 函数将帧图片保存为文件。保存的图片文件名为 `matched_frame_0.jpg`、`matched_frame_1.jpg`、`matched_frame_2.jpg`,以此类推。
您可以根据需要调整保存图片的命名方式和路径。请确保在运行代码之前已经创建好保存图片的目录。
阅读全文