Python如何对图片进行resize、裁剪、旋转、翻转
这篇“Python如何对图片进行resize、裁剪、旋转、翻转”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何对图片进行resize、裁剪、旋转、翻转”文章吧。
对图片进行resize、裁剪、旋转、翻转
首先我们的原始图片是10张网上下载尺寸不一的图片,如下:
操作1:resize 将图片resize到相同尺寸(320,240)
fromPILimportImageimporttorchvision.transformsastransforms#使用PIL库读入图片并进行resizedefResizeImage():ifnotos.path.exists(rdir):os.makedirs(rdir)foriinrange(10):im=Image.open(dir+str(i)+".jpg")im=im.resize((320,240),Image.BILINEAR)#第一个参数为想要的size,第二个参数为插值方法,双线性插值这里用的是im.save('{}/{}.jpg'.format(rdir,i))
操作2:剪裁(包括围绕中心剪裁和随机剪裁)
#图像随机剪裁和中心剪裁defcrop(lib):foriinrange(10):img=Image.open(lib+"/"+str(i)+".jpg")CenterCrop=transforms.CenterCrop((240,320))#中心裁剪cropped_image=CenterCrop(img)#PIL.Image.Image#im=np.array(cropped_image)#可以将PIL.Image.Image转成ndarry#cropped_image.show()#将图片显示cropped_image.save('{}/cen_crop{}.jpg'.format(rdir,i))RandomCrop=transforms.RandomCrop(size=(240,320))#随机剪裁random_image=RandomCrop(img)random_image.save('{}/rand_crop{}.jpg'.format(rdir,i))
操作3:随机旋转
#随机旋转defrandom_rotation(lib):foriinrange(10):img=Image.open(lib+"/"+str(i)+".jpg")RR=transforms.RandomRotation(degrees=(10,80))#degrees为随机旋转的角度rr_image=RR(img)rr_image.save('{}/rand_rotation{}.jpg'.format(rdir,i))
操作4:翻转
#图片依概率翻转,p为翻转的概率defhorizontal_flip(lib):foriinrange(10):img=Image.open(lib+"/"+str(i)+".jpg")HF=transforms.RandomHorizontalFlip(p=1.0)#p为概率,缺省时默认0.5hf_image=HF(img)hf_image.save('{}/hori_flip{}.jpg'.format(rdir,i))
下面展示一下操作后的图片:
从上到下每行依次为resize、中心裁剪、翻转、随机裁剪和随机旋转的结果
单张图像变换大小——img.resize()
这个是一段学过的简单程序,可以改变图像的大小,jpg,png都可以的:
#encoding=utf-8#author:walker#date:2023-05-15#function:更改图片尺寸大小fromPILimportImage'''filein:输入图片fileout:输出图片width:输出图片宽度height:输出图片高度type:输出图片类型(png,gif,jpeg...)'''defResizeImage(filein,fileout,width,height,type):img=Image.open(filein)out=img.resize((width,height),Image.ANTIALIAS)#resizeimagewithhigh-qualityout.save(fileout,type)if__name__=="__main__":filein=r'0.jpg'fileout=r'testout.png'width=6000height=6000type='png'ResizeImage(filein,fileout,width,height,type)
这个函数img.resize((width, height),Image.ANTIALIAS)
第二个参数:
Image.NEAREST
:低质量Image.BILINEAR
:双线性Image.BICUBIC
:三次样条插值Image.ANTIALIAS
:高质量
以上就是关于“Python如何对图片进行resize、裁剪、旋转、翻转”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注主机评测网行业资讯频道。
上一篇:Python的PIP如何使用
输入法切换键是哪个键?输入法切
冬月是哪一个月?冬月是什么意思
个人所得税退税金额怎么算出来的
输入法全角和半角有什么区别?输
a4纸尺寸是多少厘米?a4纸的由来
个人所得税扣除标准?个人所得税
输入法哪个好用?输入法介绍
卡拉OK是哪个国家发明的?卡拉OK
mikutools原神网页版入口链接?m
关机特别慢什么原因?电脑和手机