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

WBOY
Freigeben: 2023-05-10 10:43:21
nach vorne
2803 Leute haben es durchsucht

    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))
    Nach dem Login kopieren

    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))
    Nach dem Login kopieren

    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))
    Nach dem Login kopieren

    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))
    Nach dem Login kopieren

    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)
    Nach dem Login kopieren
    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage