Skip to main content

🎬 FSAE測試影片數據儀表板 (FSAE-Test-Video-Data-Dashboard)

🎬 FSAE測試影片數據儀表板 (FSAE-Test-Video-Data-Dashboard)

這是一個 Python 腳本,旨在使用 OpenCV 和 Pandas 將數據(例如來自車輛的遙測數據)疊加到影片上。

它可以讀取一個 Excel 檔案中的數據(如速度、RPM、溫度等),並將這些數據動態地繪製成一個半透明的儀表板,同步顯示在影片的右下角,最後輸出一支新的影片。

📊 效果預覽

image

✨ 功能特色

  • 數據同步: 自動將 Excel 中的數據列與影片幀進行彈性對齊。
  • 動態儀表板: 在影片右下角繪製一個可自訂的半透明儀表板。
  • 客製化顯示: 可自由設定要從 Excel 讀取並顯示的欄位。
  • 視覺化元件: 包含一個水平速度條 (Gauge) 和多行文字數據。
  • 高效能: 使用 OpenCV 進行高效的影片讀寫與圖形繪製。

🔧 環境需求

  • Python 3.5+
  • opencv-python
  • pandas
  • numpy
  • openpyxl (Pandas 讀取 .xlsx 檔案所需)

檔案說明

  1. overlay_speed_robust_v2.py :主程式
  2. create_dashboard_excel_v2.py :產生範例.xlsx
  3. speed_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 檔案。