写一个 python和opencv的火焰识别训练集
时间: 2024-03-05 16:50:58 浏览: 81
好的,下面是一个简单的 Python 和 OpenCV 的火焰识别训练集代码示例:
```
import cv2
import os
# 定义训练集保存路径
train_path = 'fire/train'
if not os.path.exists(train_path):
os.makedirs(train_path)
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置窗口大小
cap.set(3, 640)
cap.set(4, 480)
# 初始化帧计数器
num_frames = 0
while True:
# 读取每一帧
ret, frame = cap.read()
# 如果不能读取,则退出循环
if not ret:
break
# 增加帧计数器
num_frames += 1
# 显示每一帧
cv2.imshow('frame', frame)
# 进行火焰检测
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (21, 21), 0)
_, thresh = cv2.threshold(blur, 200, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 如果检测到火焰,则保存在训练集中
if len(contours) > 0:
cv2.imwrite('{}/{}.jpg'.format(train_path, num_frames), frame)
print('Fire detected! Saving frame {} to train set.'.format(num_frames))
# 按下“q”键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头和窗口
cap.release()
cv2.destroyAllWindows()
```
上述代码会打开摄像头并读取每一帧图像。然后,它会使用 OpenCV 进行火焰检测,如果检测到火焰,则将该帧保存在训练集中。最后,按下“q”键退出循环。保存的训练集图片将保存在 `fire/train` 目录下。
阅读全文