Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie die Größe, beschneiden, drehen und spiegeln Bilder in Python

So ändern Sie die Größe, beschneiden, drehen und spiegeln Bilder in Python

WBOY
WBOYnach vorne
2023-05-10 10:43:212771Durchsuche

    Bilder in der Größe ändern, zuschneiden, drehen und spiegeln

    Zuallererst sind unsere Originalbilder 10 Bilder unterschiedlicher Größe, die wie folgt aus dem Internet heruntergeladen wurden:

    So ändern Sie die Größe, beschneiden, drehen und spiegeln Bilder in Python

    Vorgang 1: Größe ändern Passen Sie die Größe des Bildes an Gleiche Größe (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))

    Vorgang 2: Zuschneiden (einschließlich Zuschneiden um die Mitte und zufälliges Zuschneiden)

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

    Vorgang 3: Zufällige Rotation

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

    Vorgang 4: Umdrehen

    #图片依概率翻转,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))

    Das Folgende zeigt das Bild nach der Operation:

    So ändern Sie die Größe, beschneiden, drehen und spiegeln Bilder in Python

    Von oben nach unten ist jede Zeile das Ergebnis der Größenänderung, des Zuschneidens in der Mitte, des Spiegelns, des zufälligen Zuschneidens und der zufälligen Drehung.

    Einzelne Bildtransformationsgröße – img.resize()

    Dies ist eine Lernerfahrung Das einfache Programm, das Sie übergeben haben, kann die Größe des Bildes ändern, entweder JPG oder 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)

    Diese Funktion img.resize((width, height),Image.ANTIALIAS)

    Der zweite Parameter:

    • Image.NEAREST: Niedrige Qualität

      Image.NEAREST :低质量

    • Image.BILINEAR:双线性

    • Image.BICUBIC :三次样条插值

    • Image.ANTIALIAS

    • Image.BILINEAR: Bilinear
    🎜🎜🎜Image.BICUBIC: Kubische Spline-Interpolation 🎜🎜🎜 🎜Image.ANTIALIAS: hohe Qualität🎜🎜🎜

    Das obige ist der detaillierte Inhalt vonSo ändern Sie die Größe, beschneiden, drehen und spiegeln Bilder in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen