第十五篇—圖像變換(transforms專題)
方法一:ToTensor( )
功能:把圖片轉(zhuǎn)換為張量(shape:H*W*C轉(zhuǎn)C*H*W),并將像素值歸一化(0~255轉(zhuǎn)0~1);
代碼實(shí)現(xiàn):
結(jié)果:

方法二:Normalize(mean,std,inplace=False)
功能:按照Channel對(duì)圖像進(jìn)行標(biāo)準(zhǔn)化;
mean:各通道的標(biāo)準(zhǔn)差,[ R_mean,G_mean,B_mean ];
std:各通道的標(biāo)準(zhǔn)差,[ R_std,G_std,B_std ];
inplace:是否原地操作,參考第十一篇—自動(dòng)求導(dǎo)(autograd);

代碼實(shí)現(xiàn):
結(jié)果:

方法三:Resize([ H, W ])
功能:調(diào)整圖像的分辨率,縮放到(H,W);
代碼實(shí)現(xiàn):
結(jié)果:

方法四:Pad(padding,fill=0,padding_mode="constant")
功能:對(duì)圖像邊緣進(jìn)行填充;
padding:設(shè)置填充大小,a表示左右上下邊均填充a個(gè)像素,(a,b)表示左右邊均填充a個(gè)像素、上下邊均填充b個(gè)像素,(a,b,c,d)表示左邊填充a個(gè)像素,上邊填充b個(gè)像素,右邊填充c個(gè)像素,下邊填充d個(gè)像素;
fill:填充的像素值,默認(rèn)為0(黑);
padding_mode:填充模式,默認(rèn)為"constant",參考第十三篇—裁剪(Crop);
代碼實(shí)現(xiàn):
結(jié)果:

方法五:ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)
功能:調(diào)整圖像亮度、對(duì)比度、飽和度和色調(diào);
brightness:亮度因子;
contrast:對(duì)比度因子;
saturation:飽和度因子;
hue:色調(diào)因子;
其中,亮度、對(duì)比度和飽和度為a時(shí),表示從[max(0,1-a),1+a]中取值,為(a,b)時(shí),表示從[a,b]中取值;色調(diào)為a(0<=a<=0.5)時(shí),表示從[-a,a]中取值,為(a,b)(0<=a<=b<=0.5)時(shí),表示從[a,b]中取值;
代碼實(shí)現(xiàn):
結(jié)果:

方法六:Grayscale(num_output_channels=1)
功能:將圖片轉(zhuǎn)換為灰度圖;
num_output_channels:輸出的通道數(shù),只能取1或3;
代碼實(shí)現(xiàn):
結(jié)果:

方法七:RandomGrayscale(p=0.1)
功能:按照概率p將圖片轉(zhuǎn)換為灰度圖;
p:轉(zhuǎn)換的概率;
代碼實(shí)現(xiàn):
結(jié)果:

方法八:
RandomAffine(degrees,translate=None,scale=None,shear=None,fillcolor=0)
功能:對(duì)圖片進(jìn)行仿射變換(2維的線性變換),由5種基本操作組成:旋轉(zhuǎn)、平移、縮放、翻轉(zhuǎn)和錯(cuò)切;
degrees:旋轉(zhuǎn)角度(以中心點(diǎn)旋轉(zhuǎn));
translate:平移區(qū)間,(a,b)表示 -W*a<=dx<=W*a,-H*b<=dy<=H*b,dx和dy為平移距離,H和W為圖像高和寬;
scale:縮放比例;
shear:錯(cuò)切角度(包括水平錯(cuò)切和垂直錯(cuò)切),a表示僅在X軸錯(cuò)切、在(-a,a)之間隨機(jī)選擇錯(cuò)切角度,(a,b)表示X軸在(-a,a)之間隨機(jī)選擇錯(cuò)切角度、Y軸在(-b,b)之間隨機(jī)選擇錯(cuò)切角度,(a,b,c,d)表示X軸在(a,b)之間隨機(jī)選擇錯(cuò)切角度、Y軸在(c,d)之間隨機(jī)選擇錯(cuò)切角度;
fillcolor:填充顏色;
代碼實(shí)現(xiàn):
結(jié)果:

方法九:LinearTransformation(transformation_matrix,mean_vector)
功能:用一個(gè)轉(zhuǎn)換矩陣和一個(gè)離線計(jì)算出的均值向量將圖片進(jìn)行轉(zhuǎn)換;
transformation_matrix:轉(zhuǎn)換矩陣,類型為Tensor,格式為二維D*D,D=C*H*W;
mean_vector:均值向量,類型為Tensor,格式為一維D,D=C*H*W;
計(jì)算過(guò)程:

代碼實(shí)現(xiàn):
結(jié)果:

方法十:RandomErasing(p=0.5,scale=(0.02,0.33),ratio=(0.3,3.3),value=0)
功能:對(duì)圖像進(jìn)行隨機(jī)擦除,對(duì)象為Tensor;
p:擦除概率;
scale:擦除面積比例,在(a,b)中隨機(jī)取值;
ratio:擦除區(qū)域長(zhǎng)寬比,在(a,b)中隨機(jī)取值;
value:擦除區(qū)域的像素值,默認(rèn)為0(黑),因?yàn)椴僮鲗?duì)象為Tensor,像素值已被歸一化,所以value需要除以255;
代碼實(shí)現(xiàn):
結(jié)果:

方法十一:ToPILImage()
功能:將Tensor類型轉(zhuǎn)為PIL類型;
實(shí)現(xiàn)過(guò)程:

代碼實(shí)現(xiàn):
結(jié)果:

方法十二:Lambda()
功能:匿名函數(shù);
通過(guò)匿名函數(shù)實(shí)現(xiàn)圖片打包:
結(jié)果:
