生成字型與圖像的對照表

想比對自己修改後的圖片與目標字型的對照表.

這個 script 會把來源圖像跟目標字型渲染的字元圖像合併,然後做一些前處理,來產生可以用在機器學習或其他用途的圖像資料集。

前置作業

Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/font_image_combiner.py

環境設定

  • 先確定你的電腦有裝 Python 3。
  • 安裝需要的 Python 套件:
    opencv-pythonnumpyPillowtorchvisiontqdmfonttools
    你可以用 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/