|
|
||
|---|---|---|
| actuator | ||
| static | ||
| .gitignore | ||
| README.md | ||
| main.py | ||
| requirements.txt | ||
README.md
制动器角度读取工具
读取视频中的制动器弯曲角度。手动点击标记点,计算 ∠M2-O-M(偏离角)。
安装
conda create -n actuator python=3.10 -y
conda activate actuator
pip install opencv-python PyQt6
运行
python main.py static/test.mp4
Wayland 环境需加:
QT_QPA_PLATFORM=xcb python main.py static/test.mp4光标变小可尝试:QT_SCALE_FACTOR=1 python main.py static/test.mp4
使用流程
手动模式
- 文件 → 打开视频
- 在首帧依次点击 O(圆心)、M(初始尾端参考)
- 拖动滑块到目标帧,点击 M2(当前尾端),右侧显示角度
测量模式
- 首帧选好 O 和 M
- 点击 「开始测量」
- 逐帧点击 M2,每点完一帧自动进下一帧
- 点击 「停止测量」 或跑完全部帧后自动停止
- 「导出测量数据 (CSV)」 保存角度 + 每帧标注截图
方向矫正
勾选「翻转角度符号」切换角度正负号。
项目结构
Actuator/
├── main.py # PyQt6 GUI 主程序
├── requirements.txt # 依赖
├── actuator/
│ ├── __init__.py
│ ├── angle_calc.py # 角度 & 曲率计算
│ ├── automation.py # 自动化接口(手动/自动检测器)
│ └── video_reader.py # 视频逐帧读取
└── static/
└── test.mp4 # 测试视频
自动化接口
actuator/automation.py 提供可扩展的检测器:
PointDetector— 抽象基类,实现detect(frame) -> [(x,y), ...]即可接入ColorBlobDetector— 基于 HSV 颜色范围的自动检测(已实现)ActuatorAnalyzer— 批量分析全视频的封装类
from actuator import ActuatorAnalyzer, ColorBlobDetector
analyzer = ActuatorAnalyzer("video.mp4")
analyzer.set_reference(o=(100, 200), m=(100, 100))
analyzer.set_detector(ColorBlobDetector())
results = analyzer.analyze_all_frames()
角度定义
∠M2-O-M:以 O(圆心)为顶点,M(初始尾端)为参考方向, M2(当前尾端)为移动方向,两者之间的夹角。
正角度 = 屏幕顺时针方向。