將圖片轉換為二進制灰度模式

字型最終的推論, 是用 binary 來決定, 雖然圖片的color space 格式已經是灰階, 但是透過繪圖軟體修改時, 預設還在 gray, 編輯的結果並不是最終結果的 binary, 為避免肉眼的誤判, 每次存檔去變成 binary 又太浪費時間, 改用 script 來完成,就很方便, 又省時間.

為什麼要學這個?

將圖片轉換為二進制灰度模式在許多應用中都非常有用,例如:

  • 文字辨識 (OCR): 許多 OCR 引擎在處理二進制圖片時,效果更好。
  • 影像分析: 二進制圖片可以簡化影像分析,例如形狀檢測、邊緣檢測等。
  • 列印或顯示: 在某些情況下,二進制圖片更適合列印或在特定顯示器上顯示。
  • 壓縮: 二進制圖片通常比灰度或彩色圖片更小,有助於節省儲存空間。

使用方法

在終端機或命令提示字元中執行以下命令:

python binary_images.py <輸入目錄> [--output_dir <輸出目錄>] [--threshold <閾值>] [--antialiasing <反鋸齒強度>]

參數說明

  • <輸入目錄>:要轉換圖片的目錄路徑。
  • --output_dir <輸出目錄>:轉換後圖片的輸出目錄路徑。如果未提供,則原始圖片將被覆蓋。
  • --threshold <閾值>:二值化的閾值,預設值為 127。
  • --antialiasing <反鋸齒強度>:反鋸齒處理的強度,預設值為 0(不套用)。

使用範例

  • 範例 1:images 目錄中的所有圖片轉換為二進制灰度模式,並覆蓋原始檔案:

python binary_images.py images

  • 範例 2:images 目錄中的所有圖片轉換為二進制灰度模式,並將轉換後的圖片儲存到 binary_gray_images 目錄中:

python binary_images.py images --output_dir binary_gray_images

  • 範例 3:images 目錄中的所有圖片轉換為二進制灰度模式,並使用閾值 150 進行二值化:

python binary_images.py images --threshold 150

  • 範例 4:images 目錄中的所有圖片轉換為二進制灰度模式,並套用強度為 3 的反鋸齒處理:

python binary_images.py images --antialiasing 3


注意事項

  • 請確保已安裝 OpenCV 函式庫(pip install opencv-python)。
  • 反鋸齒強度值越大,模糊效果越強,但同時也會導致圖片細節損失。