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如何使用

    下一篇:怎么使用Python的Requests库


    Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
    温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
    热门搜索