当前位置: 首页 > news >正文

基于 HM-TM32 红外摄像头:棉花燃烧+起火自动录制 30 秒视频

在棉花仓储、纺织原料监测等实际场景中,利用 HM-TM32 微型红外测温机芯实现非接触式火情监测具备极高的实用价值,本文基于 Windows 笔记本环境,实现红外摄像头实时画面显示,并在检测到棉花起火或高温异常时自动录制 30 秒视频留存证据。

一、方案说明与硬件适配

本方案基于 HM-TM32-3RG/ST 红外测温机芯开发,该机芯分辨率为 256×192,支持 YUYV 视频格式输出,在 Windows 系统下需使用专用参数才能稳定读取图像,避免出现花屏、黑屏、闪跳等问题,代码采用分离式图像读取方式,先抓取帧再解析帧,大幅提升红外摄像头的兼容性与稳定性,同时通过画面平均亮度判断是否出现火情,检测到异常后自动触发视频录制,全程无需人工干预。

二、核心代码

import cv2 import time # 配置 CAM_ID = 1 VIDEO_DURATION = 30 # 录制30秒 RECORD_FLAG = False START_TIME = 0 # Windows 专用打开方式(你已验证可用) cap = cv2.VideoCapture(CAM_ID, cv2.CAP_DSHOW) # 【HM-TM32 原厂参数】你已验证可用 cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'YUYV')) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 256) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 192) cap.set(cv2.CAP_PROP_FPS, 8) cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # 检查是否打开 if not cap.isOpened(): print(f"摄像头 {CAM_ID} 打开失败!") exit() print(f"✅ 摄像头 {CAM_ID} 已打开,正在显示画面...") # 预热(解决启动花屏) for i in range(15): cap.grab() time.sleep(0.08) # 视频保存设置 fps = 8 fourcc = cv2.VideoWriter_fourcc(*'XVID') out = None # 主循环 while True: cap.grab() ret, frame = cap.retrieve() if not ret: print("⚠️ 读取失败,重试中...") continue # ---------------------- 起火检测(高温高亮)---------------------- gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) fire_detected = gray.mean() > 65 # 温度/亮度阈值 # ---------------------- 自动录制30秒 ---------------------- if fire_detected and not RECORD_FLAG: RECORD_FLAG = True START_TIME = time.time() out = cv2.VideoWriter("fire_record.avi", fourcc, fps, (256, 192)) print("🔥 检测到棉花起火,开始录制 30 秒视频") if RECORD_FLAG: out.write(frame) # 显示录制状态 cv2.putText(frame, "RECORDING...", (5, 25), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) # 到时间停止 if time.time() - START_TIME >= VIDEO_DURATION: RECORD_FLAG = False out.release() out = None print("✅ 30秒视频录制完成,已保存为 fire_record.avi") # 显示状态 if fire_detected: cv2.putText(frame, "FIRE", (5, 15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) else: cv2.putText(frame, "NORMAL", (5, 15), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 1) # 显示画面 cv2.imshow("HM-TM32 Infrared Test", frame) # 按 Q 退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放资源 cap.release() if out is not None: out.release() cv2.destroyAllWindows()

以下为录制的视频和棉花燃烧的图像集

三、常见问题解决

  1. 摄像头打开成功但画面黑屏、花屏:已在代码中使用 HM-TM32 专用格式 YUYV、分辨率 256×192 和预热处理,可直接解决该问题。
  2. 报错无法读取帧:降低帧率至 8fps、减小缓冲区,Windows 平台固定使用 CAP_DSHOW 模式打开摄像头。
  3. 无法触发录制:可适当调整火情判断阈值gray.mean() > 65,数值越小灵敏度越高,适配棉花阴燃等低热目标。
http://www.jsqmd.com/news/799941/

相关文章:

  • 自定义标签切换动画
  • 新公司也能报高企?申报全攻略
  • 从‘对表’到‘心跳’:用Wireshark抓包带你读懂IEEE1588(PTP)协议报文交互全过程
  • 树莓派无显示器?三种方法搞定WiFi配置,新手也能5分钟连上网
  • AI撕掉了我们的“岗位说明书”,然后呢?
  • 别再想当然!用AD628做单电源信号调理,你必须先算清楚这两个公式(附计算工具)
  • BAETYL v2 边缘计算框架:云原生架构、核心组件与生产部署实战
  • OpenClaw运行时热修复指南:解决插件分类、消息重复与线程绑定问题
  • 从HEX到芯片:使用J-Flash实现高效固件烧录与生产级加密
  • LLMReady框架:快速构建大语言模型应用的轻量级脚手架指南
  • 【C语言】生成随机数(rand\srand\time)
  • 创意工作者AI实战指南:Claude与Cursor提升45倍效率
  • Msfvenom深度解析:从MSF分离出的后门生成器,Linux计划任务持久化实战
  • 哔咔漫画下载器完整指南:告别网络卡顿,打造个人离线漫画图书馆
  • FPGA实现UART与电力线通信的高效桥接方案
  • 终极Blender 3MF插件:如何快速实现3D打印文件的无缝转换
  • 基于MCP协议构建垂直领域AI知识服务:猴头菇茶MCP服务器实战
  • 雾计算在物联网中的架构革新与实践
  • 告别手动画图!用Ultra Librarian+OrCAD Capture CIS 5分钟搞定Cadence原理图库
  • GPU需求曲线重塑:从季节性疲软到持续高烧的产业变革
  • Windows光标定制工具开发:从Win32 API到Delphi桌面应用实践
  • 3步快速上手RobotHelper:安卓自动化脚本框架新手指南
  • ENVI 5.3保姆级教程:手把手搞定Landsat 7影像从辐射定标到FLAASH大气校正的全流程
  • AI相册搜索效率提升300%?Gemini驱动的Google Photos智能检索全解析,含实测对比数据与隐私边界警告
  • 深度解析VinXiangQi:基于深度学习的中国象棋AI连线工具终极指南
  • ltx2.3 最强开源视频生成模型,支持图生视频、文生视频、消费级显卡可本地部署,一键整合包
  • ViGEmBus终极指南:3步掌握Windows游戏手柄模拟核心技术
  • 大型机场U型机坪推出等待点运行优化【附案例】
  • NotebookLM Drive整合失效诊断图谱(含HTTP 403/401错误码映射表、OAuth2作用域校验清单)
  • Sora 2生成素材在AE中频繁掉帧?20年合成老炮儿用CUDA Graph重构图层管线,性能提升3.8倍(含Profile对比图)