python 图片数据增强_数据增强之批量修改图像尺寸大小(附Python实现)

2019 is a new start!

很久没有更啦~希望不要懒惰。(虽然不努力真滴很舒服诶)

今天就来说一下之前在处理图片时候用到的一些知识。

数据增强

在接触Alexnet网络结构模型的时候,第一步就有要求图片要处理为224X224,刚开始以为就是一个预处理的过程,使得图片具有稳定性。最近才知道,原来小小的一个步骤可以用来达到数据增强的作用。

什么是数据增强?

答:一般而言,比较成功的神经网络需要大量的参数,许许多多的神经网路的参数都是数以百万计,而使得这些参数可以正确工作则需要大量的数据进行训练,而实际情况中数据并没有我们想象中的那么多。简单来说,就是要获得更多有用的数据,让数据集更丰富。

数据增强的作用是什么?

答:1.增加训练的数据量,提高模型的泛化能力,防止过拟合。

2.增加噪声数据,提升模型的鲁棒性

(关于过拟合的影响可参考:https://www.cnblogs.com/arachis/p/data_augmentation.html)

常用的数据增强的方法有什么?

答:一种方法是获得新的数据,这种方法比较麻烦,需要大量的成本,而第二种方法则是对数据进行增强,即利用已有的数据比加噪音、调整尺寸、翻转和镜像,创造出更多的数据,来使得神经网络具有更好的泛化效果。

今天主要讲一下运用调整尺寸或者说裁剪完成数据增强。

调整尺寸(裁剪)为什么可以增强数据?

调整尺寸也就是说比如原来图片为256X256,现把图片的尺寸改为224X224,这样一个操作。这一个操作,这样我们就可以多获得(256-224)²=32X32=1024个数据集,也就是(原来-现在)²个。

代码出场了~

批量修改一个文件下面所有图片的尺寸(速度很快!可推)

#提取目录下所有图片,更改尺寸后保存到另一目录

from PIL import Image

import os.path

import glob

def convertjpg(jpgfile,outdir,width=224,height=224):

img=Image.open(jpgfile)

try:

new_img=img.resize((width,height),Image.BILINEAR)

new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))

except Exception as e:

print(e)

for jpgfile in glob.glob(('F:/itti17/*.png')):

convertjpg(jpgfile,"F:/itti")

验证一下:(此代码为输出图片尺寸)

from PIL import Image

import os.path

infile = 'F:/itti17/1.png'

infile_1 ='F:/itti/1.png'

im = Image.open(infile)

im_1 = Image.open(infile_1)

(x, y) = im.size # read image size

(x1,y1) = im_1.size

print ('original size: ', x, y)

print ('current size: ', x1, y1)

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值