想比對自己修改後的圖片與目標字型的對照表.
這個 script 會把來源圖像跟目標字型渲染的字元圖像合併,然後做一些前處理,來產生可以用在機器學習或其他用途的圖像資料集。
前置作業
Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/font_image_combiner.py
環境設定
- 先確定你的電腦有裝 Python 3。
- 安裝需要的 Python 套件:
opencv-python
、numpy
、Pillow
、torchvision
、tqdm
、fonttools
。
你可以用 pip 安裝這些套件: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 存成 image_generator.py
。
2. 準備好來源圖像的目錄跟目標字型檔案。
3. 打開終端機或命令提示字元,執行這個指令:
python font_image_combiner.py --source_image_dir /path/to/source_images --target_font_path /path/to/target_font.ttf --output_dir /path/to/output_dir
你可以根據需要調整這些參數:
--source_image_dir | 來源圖像目錄路徑(一定要有)。 |
--target_font_path | 目標字型檔案路徑(一定要有)。 |
--output_dir | 輸出目錄路徑(預設是 output_dir )。 |
--charset | 字元集檔案路徑(一行一個字元)。如果沒給,會從來源圖像目錄的檔案名稱推斷字元集。 |
--canvas_size | 畫布大小(預設是 256)。 |
--char_size | 字元大小(預設是 256)。 |
--target_x_offset | 目標字型 X 軸偏移量(預設是 0)。 |
--target_y_offset | 目標字型 Y 軸偏移量(預設是 0)。 |
--disable_auto_fit | 關掉圖像自動調整大小。 |
--reverse | 反轉來源圖像跟目標字型圖像的位置。 |
--filename_rule | 檔案名稱規則(預設是seq)。 |
--filename_prefix | 檔案名稱前缀。 |
--filter_hashes | 過濾重複的雜湊值。 |
--shuffle | 處理字元集之前先隨機排序。 |
範例
這是一個範例指令:
python font_image_combiner.py --source_image_dir /home/user/source_images --target_font_path /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf --output_dir /home/user/output_images --canvas_size 128 --char_size 128 --filename_prefix "font_example_"
這個指令會用 /home/user/source_images
目錄的來源圖像跟 /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
字型檔案,產生 128×128 的圖像範例,然後存到 /home/user/output_images
目錄,檔案名稱會是 `font_example_` 開頭。
注意事項
- 確定來源圖像目錄的圖像檔案名稱是字元的 Unicode 編碼(十進制)。
- 如果給了字元集檔案,確定檔案裡的每個字元都佔一行。
- 你可以根據需要調整圖像大小、偏移量和其他參數。
相關文章
zi2zi 沒有出現在訓練資料裡的符號, 要怎麼處理?
https://stackoverflow.max-everyday.com/2025/02/zi2zi-unseen-data/
透過 font_image_combiner.py 做對應圖, 想取得對應圖修改過的半邊圖片, 就可以透過:
裁剪左右對應的圖片
https://codereview.max-everyday.com/crop_images/