우선, 원본 사진은 다음과 같이 인터넷에서 다운로드한 다양한 크기의 10장의 사진입니다.
작업 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))
#图像随机剪裁和中心剪裁 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))
#随机旋转 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))
#图片依概率翻转,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))
다음은 작업 후 사진입니다.
위에서 아래로 각 행은 크기 조정, 가운데 자르기, 뒤집기, 무작위 자르기 및 무작위 회전의 결과입니다.
단일 이미지 변환 크기 - 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!