這是使用 OpenCV 做直方圖等化(Histogram Equalization)的主控台/終端機範例,支援 Windows 11 與 Ubuntu Linux 24.04。程式先將影像轉成灰階,再以 cv2.equalizeHist 進行等化,把原本集中在某一段的亮度值重新分布到完整的 0 到 255 範圍,因此對比會明顯提升,尤其適合偏暗或偏亮的影像。範例會同時畫出等化前後的直方圖與累積分布函數(CDF),等化後的 CDF 會接近一條直線,可以直接看出亮度分布是否均勻。data/ 內附三張範例影像,結果會存到 model/equalization/,不需要 GPU。

 

[資料夾結構]

  • CLAUDE.md / AGENT.md:程式規格書(內容相同)。
  • CHANGELOG.md:變更紀錄。
  • copyright.txt:版權聲明。
  • data/:範例影像 Lena.png(原 Notebook 使用的範例)、sample.png、SC-150.png。
  • model/equalization/:輸出結果 gray.png、equalized.png、hist_before.png、hist_after.png(已附上 Lena 的範例結果)。
  • tool/tools.py:共用函式。
  • src/:範例程式、啟動腳本與本說明文件。
  • venv/:Python 虛擬環境,由步驟 1 建立。

[執行環境需求]

  • 作業系統:Windows 11 或 Ubuntu Linux 24.04。
  • Python 3 與 pip。
  • 相依套件記錄於 src/requirements.txt,由步驟 1 自動安裝。
  • 不需要 GPU。

[操作步驟及說明]

步驟 1:建立虛擬環境

刪除舊的 venv/,重新建立虛擬環境並安裝 src/requirements.txt。若 pip 安裝失敗會直接中止並顯示錯誤訊息。

 

Windows 11:src\01_venv_create.bat

Ubuntu 24.04:bash src/01_venv_create.sh

 

步驟 2:啟用虛擬環境

啟用剛才建立的虛擬環境。Linux 請使用 source 的方式執行,否則環境變數不會套用到目前的終端機。

 

Windows 11:src\02_venv_activate.bat

Ubuntu 24.04:source src/02_venv_activate.sh

 

步驟 3:執行直方圖等化範例

轉灰階、等化,並存出等化前後的影像與直方圖。額外的參數會直接轉交給 Python 程式。

 

Windows 11:src\03_histogram_equalization.bat

Ubuntu 24.04:bash src/03_histogram_equalization.sh

指定自己的影像:

bash src/03_histogram_equalization.sh --source data/SC-150.png

 

步驟 4:清除虛擬環境(選用)

不再需要時,可刪除 venv/ 資料夾以釋放磁碟空間。

 

Windows 11:src\99_venv_clear.bat

Ubuntu 24.04:bash src/99_venv_clear.sh

 

[Python 程式進入點]

  • src/histogram_equalization.py:參數為 [--source IMG] [--output-dir DIR] [--show]。
  • --source:輸入影像,預設為 data/Lena.png。
  • --output-dir:輸出資料夾,預設為 model/equalization/。
  • --show:除了存檔之外,另外開視窗顯示結果。
  • 輸出 gray.png(灰階)、equalized.png(等化後),以及等化前後的圖表 hist_before.png / hist_after.png(紅色為直方圖,藍色為縮放後的 CDF)。
  • 執行時會在主控台印出等化前後的灰階值範圍,可以直接比對對比改善的程度。

[參考資料]

 

這個 SDK 內建於 MYAI Studio 人工智慧開發工具。

 

單獨購買價格:5,000元,永久授權,單一 SDK 授權,單機授權,一次下載,無更新服務,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。