Home  >  Article  >  Backend Development  >  How to resize, crop, rotate, and flip images in Python

How to resize, crop, rotate, and flip images in Python

WBOY
WBOYforward
2023-05-10 10:43:212771browse

    Resize, crop, rotate and flip pictures

    First of all, our original pictures are 10 downloaded onlineDifferent sizes The picture of Random cropping)

    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))

    Operation 3: Random rotationHow to resize, crop, rotate, and flip images in Python

    #图像随机剪裁和中心剪裁
    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))

    Operation 4: Flip

    #随机旋转
    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))

    The following shows the picture after the operation:

    Each row from top to bottom is the result of resize, center crop, flip, random crop and random rotation

    Single image transformation Size - img.resize()How to resize, crop, rotate, and flip images in Python

    This is a simple program that I have learned, which can change the size of the image, either jpg or png:

    #图片依概率翻转,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))
    This function img.resize ((width, height),Image.ANTIALIAS)

    Second parameter:

    ##Image.NEAREST

    : Low quality

    • Image.BILINEAR

      : Bilinear

    • Image.BICUBIC

      : Cubic Spline Interpolation

    • Image.ANTIALIAS

      : High quality

    The above is the detailed content of How to resize, crop, rotate, and flip images in Python. For more information, please follow other related articles on the PHP Chinese website!

    Statement:
    This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete