# temperature-analyzer **Repository Path**: warom-org/temperature-analyzer ## Basic Information - **Project Name**: temperature-analyzer - **Description**: 温度估算分析 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-01 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 红外热成像温度分析系统 (TSDK集成版) 基于PyQt5的红外热成像图片温度分析工具,支持温度估算、多点标定、视频流处理和REST API接口。**v2.1.0新增DJI Thermal SDK集成,支持R-JPEG文件的精确温度分析。** ## 🚀 功能特性 ### 🆕 TSDK集成功能 - 🔬 **精确温度提取**: 支持DJI R-JPEG文件的真实温度数据提取 - ⚖️ **混合处理模式**: 智能选择最佳温度分析方法(TSDK/HSV/混合) - 📊 **方法对比分析**: 同时使用多种方法并提供精度对比 - 🔄 **模拟模式支持**: 无需安装TSDK即可体验完整功能 - 📈 **高精度分析**: TSDK模式可达±1-2°C精度 ### 核心功能 - 🔥 **温度估算**: 基于HSV颜色映射算法估算每个像素温度 - 🎯 **多点标定**: 支持用户添加已知温度点进行精度校准 - 📊 **可视化展示**: 生成专业级matplotlib温度分布热力图 - 🔍 **精确定位**: 自动检测并标记最高温和最低温位置 - 📐 **区域分析**: 支持多区域温度统计和极值点定位 ### 数据功能 - 💾 **数据持久化**: 标定点和分析结果自动保存到txt文件 - 📤 **数据导出**: 支持CSV、JSON、NumPy格式温度矩阵导出 - 📁 **文件管理**: 结构化的数据存储和历史记录 - 🔍 **格式检测**: 自动识别R-JPEG文件并选择最佳处理方法 ### 流媒体支持 - 🎥 **多协议支持**: RTSP和RTMP视频流实时接收和分析 - ⚡ **实时处理**: 可调节帧率和实时温度分析 - 🎬 **帧捕获**: 流媒体帧保存为静态图片进行详细分析 ### API接口 - 🌐 **REST API**: 完整的HTTP接口支持远程调用 - 🔧 **独立服务**: API服务器可独立于GUI运行 - 📋 **标准化**: RESTful API设计,支持JSON格式 - 🆕 **TSDK API**: 专用R-JPEG处理和混合模式分析接口 ## 📁 项目结构 ``` Infrared-temperature-sensor/ ├── main.py # GUI应用主入口 ├── start_api.py # API服务器启动脚本 ├── requirements.txt # 项目依赖 ├── run_tests.py # 测试运行器 │ ├── src/ # 源代码目录 │ ├── core/ # 核心功能模块 │ │ ├── temperature_mapper.py # 温度映射算法 │ │ ├── tsdk_processor.py # DJI TSDK处理器 🆕 │ │ ├── hybrid_temperature_processor.py # 混合温度处理器 🆕 │ │ ├── data_storage.py # 数据持久化 │ │ ├── video_stream.py # 视频流处理 │ │ └── rtmp_stream.py # RTMP兼容模块 │ │ │ ├── gui/ # 图形界面模块 │ │ ├── thermal_analyzer.py # 主界面控制器 │ │ └── image_widget.py # 图像显示组件 │ │ │ ├── api/ # API接口模块 │ │ ├── api_server.py # REST API服务器 │ │ └── thermal_service.py # 后端分析服务 │ │ │ └── utils/ # 工具模块 │ └── utils.py # 系统工具函数 │ ├── tests/ # 测试文件 │ ├── test_tsdk_integration.py # TSDK集成测试 🆕 │ └── ... # 其他测试文件 ├── config/ # 配置文件 ├── docs/ # 文档目录 │ ├── TSDK_INTEGRATION.md # TSDK集成文档 🆕 │ └── ... # 其他文档 ├── examples/ # 示例代码 │ ├── tsdk_api_client_example.py # TSDK API客户端示例 🆕 │ └── ... # 其他示例 ├── tsdk/ # TSDK SDK目录 (可选) ├── data/ # 数据存储目录 └── snapshot/ # 截图和样本图片 ``` ## 🛠️ 安装与使用 ### 1. 基础安装 ```bash # 克隆项目 git clone cd Infrared-temperature-sensor # 安装Python依赖 pip install -r requirements.txt ``` ### 2. DJI Thermal SDK 安装 (可选) **如需精确R-JPEG处理,请安装DJI Thermal SDK:** 1. 下载 [DJI Thermal SDK](https://www.dji.com/cn/downloads/softwares/dji-thermal-sdk) 2. 将SDK文件放置在以下任一位置: ``` 项目根目录/tsdk/ ../tsdk/ C:/Program Files/DJI/TSDK/ (Windows) /usr/local/tsdk/ (Linux) ``` **注意**: 即使不安装TSDK,系统也会自动启用模拟模式,提供完整的功能体验。 ### 3. 启动方式 #### GUI应用程序 ```bash python main.py ``` #### API服务器 ```bash python start_api.py --host 0.0.0.0 --port 5000 ``` #### 运行测试 ```bash # 运行所有测试 python run_tests.py # 运行TSDK集成测试 python -m pytest tests/test_tsdk_integration.py -v # 运行TSDK API示例 python examples/tsdk_api_client_example.py ``` ### 4. 处理模式说明 | 模式 | 适用文件 | 精度 | 说明 | |------|----------|------|------| | **自动选择** | 所有格式 | 自适应 | 自动检测文件类型并选择最佳处理方法 | | **HSV映射** | 所有图片 | ±3-5°C | 基于颜色映射的温度估算,支持标定 | | **TSDK精确** | R-JPEG | ±1-2°C | 使用DJI SDK提取真实温度数据 | | **混合模式** | R-JPEG | 最高 | 同时使用TSDK和HSV并提供对比分析 | ### 5. API使用示例 #### 传统API ```python import requests # 启动视频流分析 response = requests.post('http://localhost:5000/api/start_stream', json={'stream_url': 'rtsp://example.com/stream'}) # 分析区域温度 response = requests.post('http://localhost:5000/api/analyze_regions', json={'regions': [{'x1': 100, 'y1': 100, 'x2': 200, 'y2': 200}]}) ``` #### 🆕 TSDK API ```python import requests # 检查TSDK能力 response = requests.get('http://localhost:5000/api/tsdk/capabilities') # 处理R-JPEG文件 with open('thermal.r.jpg', 'rb') as f: files = {'rjpeg_file': f} response = requests.post('http://localhost:5000/api/tsdk/process_rjpeg', files=files) # 混合模式处理 with open('image.jpg', 'rb') as f: files = {'image_file': f} data = {'mode': 'auto'} # auto, hsv, tsdk, hybrid response = requests.post('http://localhost:5000/api/hybrid/process_image', files=files, data=data) ``` # 获取分析结果示例 result = response.json() for region in result['regions']: stats = region['temperature_stats'] print(f"最高温: {stats['max_temp']}°C at ({stats['max_position']['x']}, {stats['max_position']['y']})") ``` ## 📖 详细文档 - [🆕 TSDK集成文档](docs/TSDK_INTEGRATION.md) - DJI Thermal SDK集成指南 - [API接口文档](docs/README_API.md) - REST API参考 - [目录结构说明](docs/DIRECTORY_STRUCTURE.md) - 项目结构详解 - [项目指导文档](docs/CLAUDE.md) - 开发指导 ## 🎯 温度精度 ### 处理模式精度对比 | 处理模式 | 温度精度 | 适用场景 | 说明 | |----------|----------|----------|------| | **TSDK精确模式** | ±1-2°C | R-JPEG文件 | 使用真实SDK时的最高精度 | | **TSDK模拟模式** | ±3-5°C | 所有文件 | 无SDK时的模拟处理 | | **HSV映射** | ±5-8°C | 普通图片 | 默认颜色映射算法 | | **HSV+标定** | ±3-5°C | 普通图片 | 使用多点标定校准后 | | **混合模式** | 最优 | R-JPEG文件 | 提供多种方法对比 | ### 精度影响因素 - **图像质量**: 分辨率和清晰度 - **环境因素**: 环境温度和湿度 - **标定点分布**: 标定点数量和分布范围 - **文件格式**: R-JPEG > 普通图片 ## 🔧 系统要求 - **Python**: 3.7+ - **操作系统**: Windows/Linux/macOS - **内存**: 最低2GB,推荐4GB+ - **依赖**: PyQt5, OpenCV, NumPy, Matplotlib, Flask ## 🌟 主要特点 ### 技术架构 - **模块化设计**: 核心功能、GUI、API三层分离 - **算法优化**: HSV颜色空间温度映射,反距离权重插值 - **并发处理**: 多线程视频流处理和API请求处理 - **数据安全**: 本地文件存储,支持数据备份 ### 用户体验 - **专业可视化**: matplotlib生成的科学级热力图 - **实时交互**: 鼠标点击查看温度,拖拽选择分析区域 - **中文支持**: 完整的中文界面和文档 - **跨平台**: 支持主流操作系统 ### 扩展性 - **插件架构**: 易于添加新的温度映射算法 - **API标准**: RESTful接口便于集成 - **配置管理**: JSON配置文件支持自定义设置 - **测试完备**: 完整的单元测试和集成测试 ## 📊 应用场景 - 🏭 **工业检测**: 设备温度监控和故障诊断 - 🏥 **医疗应用**: 体温检测和医学成像分析 - 🔧 **科研教学**: 热传导实验和温度场分析 - 🏠 **建筑检测**: 建筑物热损失检测 - 🔥 **消防安全**: 火灾隐患早期发现 ## 🤝 开发规范 - **代码风格**: PEP 8标准,类型提示 - **文档完整**: 详细的docstring和使用说明 - **模块分离**: 清晰的模块边界和依赖关系 - **错误处理**: 统一的异常处理机制 - **测试驱动**: 完整的测试覆盖 ## 📝 更新日志 ### 🆕 v2.1.0 (Latest - TSDK集成版) - 🔬 **DJI Thermal SDK集成**: 支持R-JPEG文件精确温度提取 - ⚖️ **混合处理架构**: 智能选择最佳温度分析方法 - 🎯 **处理模式选择**: 自动/HSV/TSDK/混合四种模式 - 📊 **方法对比分析**: 同时使用多种方法并提供精度对比 - 🔄 **模拟模式支持**: 无需安装SDK即可体验TSDK功能 - 🌐 **API接口扩展**: 新增TSDK专用API端点 - 🖥️ **GUI界面升级**: 添加处理模式控制和状态显示 - 📤 **数据导出增强**: 支持CSV、JSON、NumPy格式导出 - 🧪 **完整测试套件**: TSDK集成功能测试覆盖 - 📚 **文档完善**: TSDK集成指南和API文档 ### v2.0.0 - ✨ 新增REST API接口支持 - ✨ 添加数据持久化存储功能 - 🏗️ 重构项目目录结构 - 📚 完善文档和示例代码 - 🧪 添加完整测试套件 ### v1.0.0 - 🎉 初始版本发布 - 🖥️ GUI界面和基础温度分析功能 - 🎥 视频流支持(RTMP/RTSP) - 📊 温度可视化和区域分析 --- **开发团队**: 红外温度识别器项目组 **技术支持**: 详见项目文档和示例代码