🎬 FSAE測試影片數據儀表板 (FSAE-Test-Video-Data-Dashboard)
🎬 FSAE測試影片數據儀表板 (FSAE-Test-Video-Data-Dashboard)
這是一個 Python 腳本,旨在使用 OpenCV 和 Pandas 將數據(例如來自車輛的遙測數據)疊加到影片上。
它可以讀取一個 Excel 檔案中的數據(如速度、RPM、溫度等),並將這些數據動態地繪製成一個半透明的儀表板,同步顯示在影片的右下角,最後輸出一支新的影片。
📊 效果預覽

✨ 功能特色
- 數據同步: 自動將 Excel 中的數據列與影片幀進行彈性對齊。
- 動態儀表板: 在影片右下角繪製一個可自訂的半透明儀表板。
- 客製化顯示: 可自由設定要從 Excel 讀取並顯示的欄位。
- 視覺化元件: 包含一個水平速度條 (Gauge) 和多行文字數據。
- 高效能: 使用 OpenCV 進行高效的影片讀寫與圖形繪製。
🔧 環境需求
- Python 3.5+
opencv-pythonpandasnumpyopenpyxl(Pandas 讀取.xlsx檔案所需)
檔案說明
overlay_speed_robust_v2.py:主程式create_dashboard_excel_v2.py:產生範例.xlsxspeed_data.xlsx:影片數據參考 .xlsx
🚀 如何使用
1. 安裝依賴套件
使用 pip 安裝所有必要的函式庫:
pip install opencv-python pandas numpy openpyxl
2. 準備檔案
將您的檔案放入與 Python 腳本相同的資料夾中:
input_video.mp4: 您的原始影片檔案。
speed_data.xlsx: 包含遙測數據的 Excel 檔案。
3. 客製化設定 (重要)
打開您的 Python 腳本 (例如 main.py) 並修改頂部的設定區塊。
A. 檔案路徑
VIDEO_INPUT_PATH = 'input_video.mp4'
EXCEL_INPUT_PATH = 'speed_data.xlsx'
VIDEO_OUTPUT_PATH = 'output_video_dashboard.mp4'
B. 顯示欄位 (最重要)
您必須設定 DATA_COLUMNS_TO_DISPLAY 字典,使其完全符合您的 Excel 欄位名稱。
- Key (字典的鍵): 是腳本內部使用的名稱 (例如
"speed","rpm")。 - Value (字典的值): 是您 Excel 檔案中實際的欄位標題 (例如
"Speed","Motor Temp")。
"speed" 鍵是必需的,它用於繪製主要時速和速度條。
# 格式: "腳本內部名稱": "您 Excel 檔案中的實際欄位名稱"
DATA_COLUMNS_TO_DISPLAY = {
"speed": "Speed", # 用於時速表和主要速度顯示
"rpm": "rpm",
"motor_temp": "Motor Temp",
"soc": "SOC"
# 您可以自行新增:
# "pedal": "Pedal",
}
C. 儀表板外觀
您可以調整儀表板的外觀,例如最大速度、顏色和字體大小。
# --- 時速表外觀設定 ---
MAX_SPEED = 120
GAUGE_WIDTH = 300
GAUGE_HEIGHT = 20
TEXT_COLOR = (255, 255, 255) # (白)
BAR_BG_COLOR = (50, 50, 50) # (灰)
BAR_FG_COLOR = (0, 255, 0) # (綠)
# --- 優化設定 ---
SPEED_FONT_SCALE = 1.8
SPEED_FONT_THICK = 3
DATA_FONT_SCALE = 1.0
DATA_FONT_THICK = 2
4. 執行腳本
完成設定後,執行 Python 腳本:
python your_script_name.py
腳本將開始處理影片。完成後,您會在資料夾中找到 output_video_dashboard.mp4 檔案。