火焰检测python代码
时间: 2024-03-08 08:44:11 浏览: 76
火焰检测代码(python)
4星 · 用户满意度95%
当然,我可以为您介绍一下火焰检测的Python代码。火焰检测是一种常见的计算机视觉任务,可以用于监测和识别图像或视频中的火焰。以下是一个简单的火焰检测Python代码示例:
```python
import cv2
# 加载火焰检测模型
net = cv2.dnn.readNetFromDarknet('fire_detection.cfg', 'fire_detection.weights')
# 加载类别标签
with open('fire_detection.names', 'r') as f:
classes = [line.strip() for line in f.readlines()]
# 加载输入图像
image = cv2.imread('fire_image.jpg')
# 创建输入图像的blob
blob = cv2.dnn.blobFromImage(image, 1/255.0, (416, 416), swapRB=True, crop=False)
# 设置网络的输入
net.setInput(blob)
# 前向传播获取输出层
layer_names = net.getLayerNames()
output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
outputs = net.forward(output_layers)
# 解析输出并进行火焰检测
for output in outputs:
for detection in output:
scores = detection[5:]
class_id = np.argmax(scores)
confidence = scores[class_id]
if confidence > 0.5 and classes[class_id] == 'fire':
# 检测到火焰,绘制边界框
x, y, w, h = detection[0:4] * np.array([image.shape[1], image.shape[0], image.shape[1], image.shape[0]])
cv2.rectangle(image, (int(x), int(y)), (int(x+w), int(y+h)), (0, 0, 255), 2)
cv2.putText(image, 'Fire', (int(x), int(y)-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)
# 显示检测结果
cv2.imshow('Fire Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码使用了OpenCV库和YOLOv3模型来进行火焰检测。首先,它加载了预训练的模型和类别标签。然后,它读取输入图像并创建一个blob对象。接下来,通过前向传播获取输出层,并解析输出以进行火焰检测。最后,它在图像上绘制边界框来标记检测到的火焰,并显示检测结果。
阅读全文