期末了,用Python寫個自動批改作業系統
python 學習交流 Q 群: 906715085###
from __future__ import print_function
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
import os
import shutil
import time
# %% 要生成的文字
label_dict = {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: '=', 11: '+', 12: '-', 13: ' × ', 14: ' ÷ '}
# 文字對應的資料夾,給每一個分類建一個檔案
for value,char in label_dict.items():
train_images_dir = "dataset"+"/"+str(value)
if os.path.isdir(train_images_dir):
shutil.rmtree(train_images_dir)
os.makedirs(train_images_dir)
# %% 生成圖片
def makeImage(label_dict, font_path, width=24, height=24, rotate = 0):
# 從字典中取出鍵值對
for value,char in label_dict.items():
# 建立一個黑色背景的圖片,大小是 24*24
img = Image.new("RGB", (width, height), "black")
draw = ImageDraw.Draw(img)
# 載入一種字型 , 字型大小是圖片寬度的 90%
font =外匯跟單gendan5.com ImageFont.truetype(font_path, int(width*0.9))
# 獲取字型的寬高
font_width, font_height = draw.textsize(char, font)
# 計算字型繪製的 x,y 座標,主要是讓文字畫在圖示中心
x = (width - font_width-font.getoffset(char)[0]) / 2
y = (height - font_height-font.getoffset(char)[1]) / 2
# 繪製圖片,在那裡畫,畫啥,什麼顏色,什麼字型
draw.text((x,y), char, (255, 255, 255), font)
# 設定圖片傾斜角度
img = img.rotate(rotate)
# 命名檔案儲存,命名規則: dataset/ 編號 /img- 編號 _r- 選擇角度 _ 時間戳 .png
time_value = int(round(time.time() * 1000))
img_path = "dataset/{}/img-{}_r-{}_{}.png".format(value,value,rotate,time_value)
img.save(img_path)
# %% 存放字型的路徑
font_dir = "./fonts"
for font_name in os.listdir(font_dir):
# 把每種字型都取出來,每種字型都生成一批圖片
path_font_file = os.path.join(font_dir, font_name)
# 傾斜角度從 -10 到 10 度,每個角度都生成一批圖片
for k in range(-10, 10, 1):
# 每個字元都生成圖片
makeImage(label_dict, path_font_file, rotate = k)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2904536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 期末人福音——用Python寫個自動批改作業系統Python作業系統
- 用 python 寫一個自動化部署工具Python
- 用python寫一個自動化盲註指令碼Python指令碼
- 對希望更改作業系統的資料中心的建議作業系統
- 有關修改作業系統時間導致例項down掉的一個案例作業系統
- 使用ORACLE 的JAVA儲存過程修改作業系統密碼OracleJava儲存過程作業系統密碼
- 用Python寫一個FUSE(使用者態檔案系統)檔案系統Python
- 那些用JavaScript寫的作業系統JavaScript作業系統
- 測試修改作業系統時間&時區對oracle的影響作業系統Oracle
- 在linux系統上裝oracle為什麼要修改作業系統的核心引數LinuxOracle作業系統
- 谷歌宣佈一個用Rust編寫的新作業系統:KataOS谷歌Rust作業系統
- 分享一個Python寫的windows環境系統服務來自動化管理防火牆規則PythonWindows防火牆
- 期貨合約系統開發,合約自動跟單系統開發
- windows作業系統重啟時自動啟用備庫日誌應用Windows作業系統
- 川大主用自動化系統自動相關條件
- python寫的自動掃雷Python
- Linux作業系統啟動時自動啟用oracle standby備庫日誌應用Linux作業系統Oracle
- 一個用python寫的自動監控alert日誌告警資訊的小程式Python
- oracle 11gR2 安裝時增加修改作業系統引數指令碼Oracle作業系統指令碼
- 企業只有兩個應用系統
- python自動統計zabbix系統監控覆蓋率Python
- 基於Python的人臉自動戴口罩系統Python
- 「懶惰的美德」我用 python 寫了個自動生成給文件生成索引的指令碼Python索引指令碼
- Cobbler實現自動化安裝作業系統作業系統
- RFID讀寫器在工業自動化的應用分析
- 主用/備用ATC系統自動相關的條件
- 用深度學習DIY自動化監控系統深度學習
- 一個用於網站自動化測試的生態系統實現網站
- 自己動手寫作業系統(第一天)作業系統
- Aero:用rust編寫的新現代作業系統Rust作業系統
- python+pytest介面自動化(12)-自動化用例編寫思路 (使用pytest編寫一個測試指令碼)Python指令碼
- Windows XP 作業系統也玩自動登入(轉)Windows作業系統
- 自寫資訊管理系統—— C 實現
- 自寫資訊管理系統——C實現
- 用ssh思想寫的一個學生資訊管理系統
- kickstart半自動安裝centos系統與pxe自動安裝centos系統CentOS
- 微信群總是有人發廣告?看我用Python寫一個自動化機器人消滅他!Python機器人
- 辦公自動化系統必備的5個要素