Python如何对图片进行resize、裁剪、旋转、翻转

发布时间:2023-05-11 10:46:38 作者:zzz
来源:亿速云 阅读:160

这篇“Python如何对图片进行resize、裁剪、旋转、翻转”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何对图片进行resize、裁剪、旋转、翻转”文章吧。

对图片进行resize、裁剪、旋转、翻转

首先我们的原始图片是10张网上下载尺寸不一的图片,如下:

Python如何对图片进行resize、裁剪、旋转、翻转

操作1:resize 将图片resize到相同尺寸(320,240)
from PIL import Image
import torchvision.transforms as transforms
#使用PIL库读入图片并进行resize
def ResizeImage():
    if not os.path.exists(rdir):
        os.makedirs(rdir)
    for i in range(10):
        im = Image.open(dir+str(i)+".jpg")
        im = im.resize((320,240),Image.BILINEAR)  #第一个参数为想要的size,第二个参数为插值方法,双线性插值这里用的是
        im.save('{}/{}.jpg'.format(rdir, i))
操作2:剪裁(包括围绕中心剪裁和随机剪裁)
#图像随机剪裁和中心剪裁
def crop(lib):
    for i in range(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:随机旋转
#随机旋转
def random_rotation(lib):
    for i in range(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为翻转的概率
def horizontal_flip(lib):
    for i in range(10):
        img = Image.open(lib+"/"+str(i)+".jpg")
        HF = transforms.RandomHorizontalFlip(p=1.0)  #p为概率,缺省时默认0.5
        hf_image = HF(img)
        hf_image.save('{}/hori_flip{}.jpg'.format(rdir, i))

下面展示一下操作后的图片:

Python如何对图片进行resize、裁剪、旋转、翻转

从上到下每行依次为resize、中心裁剪、翻转、随机裁剪和随机旋转的结果

单张图像变换大小——img.resize()

这个是一段学过的简单程序,可以改变图像的大小,jpg,png都可以的:

#encoding=utf-8
#author: walker
#date: 2014-05-15
#function: 更改图片尺寸大小
from PIL import Image
'''
filein: 输入图片
fileout: 输出图片
width: 输出图片宽度
height:输出图片高度
type:输出图片类型(png, gif, jpeg...)
'''
def ResizeImage(filein, fileout, width, height, type):
  img = Image.open(filein)
  out = img.resize((width, height),Image.ANTIALIAS) #resize image with high-quality
  out.save(fileout, type)
if __name__ == "__main__":
  filein = r'0.jpg'
  fileout = r'testout.png'
  width = 6000
  height = 6000
  type = 'png'
  ResizeImage(filein, fileout, width, height, type)

这个函数img.resize((width, height),Image.ANTIALIAS)

第二个参数:

以上就是关于“Python如何对图片进行resize、裁剪、旋转、翻转”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. Windows写代码,Linux运行 (WSL & VS Code)
  2. ftrack Python API

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python resize

上一篇:如何用Python制作我的核酸检测日历

下一篇:如何用Python求矩阵的范数和行列式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》