>  기사  >  백엔드 개발  >  Python에서 이미지 크기 조정, 자르기, 회전 및 뒤집기 방법

Python에서 이미지 크기 조정, 자르기, 회전 및 뒤집기 방법

WBOY
WBOY앞으로
2023-05-10 10:43:212771검색

    사진 크기 조정, 자르기, 회전 및 뒤집기

    우선, 원본 사진은 다음과 같이 인터넷에서 다운로드한 다양한 크기의 10장의 사진입니다.

    Python에서 이미지 크기 조정, 자르기, 회전 및 뒤집기 방법

    작업 1: 크기 조정 사진 크기를 다음과 같이 조정합니다. 같은 크기 (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에서 이미지 크기 조정, 자르기, 회전 및 뒤집기 방법

    위에서 아래로 각 행은 크기 조정, 가운데 자르기, 뒤집기, 무작위 자르기 및 무작위 회전의 결과입니다.

    단일 이미지 변환 크기 - 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((너비, 높이),Image.ANTIALIAS)

    두 번째 매개변수:

    • Image.NEAREST: 낮은 품질

      Image.NEAREST :低质量

    • Image.BILINEAR:双线性

    • Image.BICUBIC :三次样条插值

    • Image.ANTIALIAS

    • Image.BILINEAR: 이중선형
    🎜🎜🎜Image.BICUBIC: 3차 스플라인 보간 🎜🎜🎜 🎜Image.ANTIALIAS: 고품질 🎜🎜🎜

    위 내용은 Python에서 이미지 크기 조정, 자르기, 회전 및 뒤집기 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제