手写数据集自动生成

54 篇文章 8 订阅
30 篇文章 0 订阅

手写数字生成

import random
import os
from PIL import Image, ImageDraw, ImageFont
random.seed(3)
path_img = "data/"

def generate_single():
    im_50_blank = Image.new('RGB', (50, 50), (255, 255, 255))
    draw = ImageDraw.Draw(im_50_blank)
    num = str(random.randint(0, 10))
    font = ImageFont.truetype('msjh.ttc', 20)
    draw.text(xy=(18, 11), font=font, text=num, fill=(0, 0, 0))
    random_angle = random.randint(-10, 10)
    im_50_rotated = im_50_blank.rotate(random_angle)
    params = [1 - float(random.randint(1, 2)) / 100,
              0,
              0,
              0,
              1 - float(random.randint(1, 10)) / 100,
              float(random.randint(1, 2)) / 500,
              0.001,
              float(random.randint(1, 2)) / 500]
    im_50_transformed = im_50_rotated.transform((50, 50), Image.PERSPECTIVE, params)
    im_30 = im_50_transformed.crop([12, 12, 40, 40])
    return im_30, num

def generate_0to9(n):
    cnt_num = []
    for i in range(10):
        cnt_num.append(0)

    for m in range(0, n):
        im, generate_num = generate_single()
        im_gray = im.convert('L')
        for j in range(0, 10):
            if generate_num == str(j):
                cnt_num[j] = cnt_num[j] + 1
                print("result:", path_img +  str(j) + "_" + str(cnt_num[j]) + ".png")
                im_gray.save(path_img  + str(j) + "_" + str(cnt_num[j]) + ".png")


generate_0to9(1)

自动建立目录函数

def set_root():
    if not os.path.exists(path_img):
        os.mkdir(path_img)

说明

使用前请先建立一个目录存储图片,如果嫌麻烦加上自动建立目录函数即可,generate_0to9(参数),参数等于图片数量。

参考:https://github.com/coneypo/Generate_handwritten_number

定制数据集

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需要定义特定字符的数据集可以私聊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佐倉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值