這是使用 OpenCV 霍夫直線變換(Hough Line Transform)偵測直線的主控台/終端機範例,支援 Windows 11 與 Ubuntu Linux 24.04。程式會先將影像二值化,再同時用兩種方法偵測直線:標準霍夫變換 cv2.HoughLines 回傳的是無限長的直線(以角度與距離表示),機率霍夫變換 cv2.HoughLinesP 回傳的則是有起點與終點的線段,因此比較適合用來標記實際的邊緣或刮痕。兩種結果會分別疊在原影像上輸出。data/ 內附三張範例影像,結果會存到 model/hough/,不需要 GPU。
[資料夾結構]
- CLAUDE.md / AGENT.md:程式規格書(內容相同)。
- CHANGELOG.md:變更紀錄。
- copyright.txt:版權聲明。
- data/:範例影像 SC-150.png(原 Notebook 使用的範例,一張刮痕照片)、Lena.png、sample.png。
- model/hough/:輸出結果 binary.png、hough_lines.png、hough_lines_p.png(已附上 SC-150 的範例結果)。
- 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_hough_transform.bat
Ubuntu 24.04:bash src/03_hough_transform.sh
指定自己的影像與參數:
bash src/03_hough_transform.sh --source data/sample.png --threshold 110
步驟 4:清除虛擬環境(選用)
不再需要時,可刪除 venv/ 資料夾以釋放磁碟空間。
Windows 11:src\99_venv_clear.bat
Ubuntu 24.04:bash src/99_venv_clear.sh
[Python 程式進入點]
- src/hough_transform.py:參數為 [--source IMG] [--threshold 70] [--rho 0.8] [--lines-votes 80] [--lines-p-votes 90] [--min-line-length 50] [--max-line-gap 10] [--output-dir DIR] [--show]。
- --source:輸入影像,預設為 data/SC-150.png。
- --threshold:二值化的門檻值,預設 70。
- --rho:距離解析度,預設 0.8,數值越小偵測越細但越耗時。
- --lines-votes / --lines-p-votes:標準與機率霍夫變換的投票門檻,預設 80 與 90。調大只保留較明顯的直線。
- --min-line-length:機率霍夫變換可接受的最短線段長度,預設 50。
- --max-line-gap:同一條線段允許的最大斷點間距,預設 10。
- --output-dir:輸出資料夾,預設為 model/hough/。--show 可另外開視窗顯示結果。
- 輸出 binary.png、hough_lines.png(紅色,標準霍夫變換)與 hough_lines_p.png(綠色,機率霍夫變換),並印出偵測到的直線與線段數量。若沒有偵測到任何直線,程式也會正常結束。
[參考資料]
- OpenCV 霍夫直線變換教學:docs.opencv.org/4.x/d6/d10/tutorial_py_houghlines.html
這個 SDK 內建於 MYAI Studio 人工智慧開發工具。
單獨購買價格:5,000元,永久授權,單一 SDK 授權,單機授權,一次下載,無更新服務,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。