想比對自己修改後的圖片與目標字型的對照表.
這個 script 會把來源圖像跟目標字型渲染的字元圖像合併,然後做一些前處理,來產生可以用在機器學習或其他用途的圖像資料集。
前置作業
Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/font_image_combiner.py
環境設定
- 先確定你的電腦有裝 Python。
- 安裝需要的 Python 套件:
pip install opencv-python numpy Pillow torchvision tqdm fonttools
Script 說明
這個 script 主要有這些函式:
draw_character:把單個字元渲染成圖像。convert_to_gray_binary:把圖像轉成灰階二值圖像。create_example_image:把來源圖像跟目標字型圖像合併成範例。filter_recurring_hashes:過濾字型裡重複的雜湊值。process_images:處理圖像然後存成範例。main:主要函式,處理參數然後呼叫其他函式。
使用方法
1. 把 script 存成 font_image_combiner.py。
2. 準備好來源圖像的目錄跟目標字型檔案。
3. 打開終端機或命令提示字元,執行這個指令:
python font_image_combiner.py path_of_source_images --font_path /path_of_font.ttf --output_dir /path_of_output_dir
你可以根據需要調整這些參數:
--image_dir | 來源圖像目錄路徑(一定要有)。 副檔名, 限定 .png 格式 |
--font_path | 目標字型檔案路徑(一定要有)。 |
--output_dir | 輸出目錄路徑(預設是 output_dir)。 |
--charset | 字元集檔案路徑(一行一個字元)。 如果沒給,會從來源圖像目錄的檔案名稱推斷 字元集。建議不要設定 charset 內容值,會比較方便。 |
--canvas_size | 畫布大小(預設是 256)。 |
--char_size | 字元大小(預設是 256)。 |
--x_offset | 目標字型 X 軸偏移量(預設是 0)。 |
--y_offset | 目標字型 Y 軸偏移量(預設是 0)。 |
--disable_auto_fit | 關掉圖像自動調整大小。 |
--reverse | 反轉來源圖像跟目標字型圖像的位置。 |
--filename_rule | 檔案名稱規則(預設是seq)。 |
--filename_prefix | 檔案名稱前置字元。 |
--filter_hashes | 過濾重複的雜湊值。 |
--shuffle | 處理字元集之前先隨機排序。 |
範例
- 來源目錄名稱 ./glyph_image/ 目錄裡, 有一個檔名為: 23433.png 內容是: 安
- 要使用的字型: ZenMaruGothic-Regular.ttf
- 要輸出的目錄: output_images
- 輸出的前置字元: font_example_
- 畫布大小: 128
- 字型大小: 128
這是一個範例指令:
python font_image_combiner.py --image_dir glyph_image --font_path ZenMaruGothic-Regular.ttf --output_dir output_images --filename_prefix="font_example_" --canvas_size=128 --char_size=128 --disable_auto_fit
注意事項
- 確定來源圖像目錄的圖像檔案名稱是字元的 Unicode 編碼(十進制)。
- 如果給了字元集檔案,確定檔案裡的每個字元都佔一行。
- 你可以根據需要調整圖像大小、偏移量和其他參數。
相關文章
zi2zi 沒有出現在訓練資料裡的符號, 要怎麼處理?
https://stackoverflow.max-everyday.com/2025/02/zi2zi-unseen-data/
透過 font_image_combiner.py 做對應圖, 想取得對應圖修改過的半邊圖片, 就可以透過:
裁剪左右對應的圖片
https://codereview.max-everyday.com/crop_images/