
為了方便擴展,我將程式結構重組。現在你可以定義一個列表,裡面存放多組 pattern 與 replacement 的配對。程式會自動對每一組配對執行四個角度的旋轉掃描與替換。
Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/smooth_pattern.py
這個版本與「影像邊緣平滑與雜點清理」文章的差異在:優點是風格也消失較少,缺點:產生的字型檔案會較大,且雜訊較多。
為什麼需要這份程式碼
手寫筆記掃描成電腦檔案。墨水常常會暈開。筆畫黏在一起。畫面看起來很髒。這份程式碼可以自動修復。它能把黏住的字跡分開。清理多餘的碎點。讓黑白文字變得清晰。
準備環境
這段程式使用 Python 語言。你需要安裝兩個工具套件。打開終端機或命令提示字元。輸入下方指令安裝。
pip install opencv-python numpy
如何操作腳本
你可以處理單張圖片。也可以處理整個資料夾。指令非常簡單。打開終端機。移動到檔案所在目錄。
處理單張圖片的範例。
python smooth_pattern.py -i test.jpg -o result.jpg
處理整個資料夾的範例。
python clean.py -i ./my_notes
如果沒有指定 output 路徑。程式會自動建立一個加上 “_clean” 字樣的資料夾。
程式處理邏輯
這份工具包含幾個重要步驟。首先將圖片轉為二值化。也就是純黑與純白。接著執行減少暈染。利用形態學運算切斷微小的連結。這對分離筆畫很有效。
程式定義了一些特定的像素樣式。會自動比對並替換雜訊。最後進行平滑化處理。先將圖片放大再縮小。利用中值濾波去除鋸齒。讓邊緣看起來更自然。
建議
對於學習 OpenCV 的初學者。這是一個很好的練習案例。可以觀察不同矩陣運算對圖片的影響。