套用多重濾鏡,精確修復各種特定的筆畫瑕疵

為了方便擴展,我將程式結構重組。現在你可以定義一個列表,裡面存放多組 patternreplacement 的配對。程式會自動對每一組配對執行四個角度的旋轉掃描與替換。

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 的初學者。這是一個很好的練習案例。可以觀察不同矩陣運算對圖片的影響。