*Memos:
- My post explains RandomAffine() with
shear
argument. - My post explains RandomRotation().
- My post explains RandomPerspective().
- My post explains RandomHorizontalFlip().
- My post explains RandomVerticalFlip().
- My post explains OxfordIIITPet().
RandomAffine() can do random rotation or random affine transformation for an image as shown below:
*Memos:
- The 1st argument for initialization is
degrees
(Required-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It can do rotation.
- It’s the range of the degrees
[min, max]
so it mustmin <= max
. - A degrees value is randomly taken from the range of
[min, max]
. - A tuple/list must be the 1D with 2 elements.
- A single value(
int
orfloat
) means[-degrees(min), +degrees(max)]
. - A single value(
int
orfloat
) must be0 <= x
.
- The 2nd argument for initialization is
translate
(Optional-Default:None
-Type:tuple
/list
(int
orfloat
)): *Memos:- It’s
[a, b]
. - It must be
0 <= 1
. - It must be the 1D with 2 elements.
- The 1st element is for the horizontal shift randomly taken in the range of
-img_width * a < horizontal shift < img_width * a
. - The 2nd element is for the vertical shift randomly taken in the range of
-img_height * b < vertical shift < img_height * b
.
- It’s
- The 3rd argument for initialization is
scale
(Optional-Default:None
-Type:tuple
/list
(int
orfloat
)): *Memos:- It’s
[min, max]
so it mustmin <= max
. - It must be
0 < x
. - It must be the 1D with 2 elements.
- A scale value is randomly taken from the range of
[min, max]
.
- It’s
- The 4th argument for initialization is
shear
(Optional-Default:None
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It can do affine transformation with
x
andy
. - It’s
[min, max, min, max]
so it mustmin <= max
. *Memos: - The 1st two elements are the range of
x
. - The 2nd two elements are the range of
y
. -
x
value is randomly taken from the range of the 1st two elements. -
y
value is randomly taken from the range of the 2nd two elements. - A tuple/list must be the 1D with 2 or 4 elements.
- The tuple/list of 2 elements means
[shear[0](min), shear[1](max), 0.0(min), 0.0(min)]
. - A single value means
[-shear(min), +shear(max), 0.0(min), 0.0(max)]
. - A single value must be
0 <= x
.
- It can do affine transformation with
- The 5th argument for initialization is
interpolation
(Optional-Default:InterpolationMode.NEAREST
-Type:InterpolationMode). - The 6th argument for initialization is
fill
(Optional-Default:0
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It can change the background of an image. *The background can be seen when doing rotation or affine transformation for an image.
- A tuple/list must be the 1D with 1 or 3 elements.
- The 7th argument for initialization is
center
(Optional-Default:None
-Type:tuple
/list
(int
orfloat
)): *Memos:- It can change the center position of an image.
- It must be the 1D with 2 elements.
- The 1st argument is
img
(Required-Type:PIL Image
ortensor
(int
)): *Memos:- A tensor must be 3D.
- Don’t use
img=
.
-
v2
is recommended to use according to V1 or V2? Which one should I use?.
<span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span><span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>RandomAffine</span><span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span><span>randomaffine</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>90</span><span>)</span><span>randomaffine</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>90</span><span>],</span><span>translate</span><span>=</span><span>None</span><span>,</span><span>scale</span><span>=</span><span>None</span><span>,</span><span>shear</span><span>=</span><span>None</span><span>,</span><span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>NEAREST</span><span>,</span><span>fill</span><span>=</span><span>0</span><span>,</span><span>center</span><span>=</span><span>None</span><span>)</span><span>randomaffine</span><span># RandomAffine(degrees=[-90, 90], # interpolation=InterpolationMode.NEAREST, # fill=0) </span><span>randomaffine</span><span>.</span><span>degrees</span><span># [-90.0, 90.0] </span><span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>translate</span><span>)</span><span># None </span><span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>scale</span><span>)</span><span># None </span><span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>shear</span><span>)</span><span># None </span><span>randomaffine</span><span>.</span><span>interpolation</span><span># <InterpolationMode.NEAREST: 'nearest'> </span><span>randomaffine</span><span>.</span><span>fill</span><span># 0 </span><span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>center</span><span>)</span><span># None </span><span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>None</span><span># transform=RandomAffine(degrees=[0, 0]) </span><span>)</span><span>d90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `d` is degrees. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>90</span><span>)</span><span># transform=RandomAffine(degrees=[-90, 90]) </span><span>)</span><span>d90_90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span><span>)</span><span>dn90n90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `n` is negative. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span><span>)</span><span>d180_180_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>])</span><span>)</span><span>hrvrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `hr` is horizontal and `vr` is vertical. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span># `tran` is translate. </span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.5</span><span>])</span><span>)</span><span>hrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0</span><span>])</span><span>)</span><span>vrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0.5</span><span>])</span><span>)</span><span>dn45n45fgray_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>fill</span><span>=</span><span>150</span><span>)</span><span>)</span><span>d135_135fpurple_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>fill</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span><span>)</span><span>d180_180c270_200_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `c` is center. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>center</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span><span>)</span><span>scale01_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>5</span><span>])</span><span>)</span><span>scale01_1_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>1</span><span>])</span><span>)</span><span>scale1_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>5</span><span>])</span><span>)</span><span>scale1_1origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span><span>)</span><span>scale08_08_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.8</span><span>])</span><span>)</span><span>scale06_06_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.6</span><span>,</span> <span>0.6</span><span>])</span><span>)</span><span>scale04_04_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.4</span><span>,</span> <span>0.4</span><span>])</span><span>)</span><span>scale02_02_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.2</span><span>,</span> <span>0.2</span><span>])</span><span>)</span><span>scale01_01_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>0.1</span><span>])</span><span>)</span><span>scale001_001_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.01</span><span>,</span> <span>0.01</span><span>])</span><span>)</span><span>scale0001_0001_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.001</span><span>,</span> <span>0.001</span><span>])</span><span>)</span><span>scale2_2_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>2</span><span>,</span> <span>2</span><span>])</span><span>)</span><span>scale5_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>5</span><span>,</span> <span>5</span><span>])</span><span>)</span><span>scale10_10_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>10</span><span>])</span><span>)</span><span>scale20_20_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>20</span><span>,</span> <span>20</span><span>])</span><span>)</span><span>scale50_50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>50</span><span>])</span><span>)</span><span>scale100_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>100</span><span>,</span> <span>100</span><span>])</span><span>)</span><span>scale300_300_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span><span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span><span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>300</span><span>,</span> <span>300</span><span>])</span><span>)</span><span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span><span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span><span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span><span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span><span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span><span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span><span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span><span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span><span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span><span>plt</span><span>.</span><span>tight_layout</span><span>()</span><span>plt</span><span>.</span><span>show</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d90_90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_90_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dn90n90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn90n90_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d180_180_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180_data</span><span>"</span><span>)</span><span>print</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>hrvrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrvrtran_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>hrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrtran_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>vrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>vrtran_data</span><span>"</span><span>)</span><span>print</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dn45n45fgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn45n45fgray_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d135_135fpurple_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d135_135fpurple_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d180_180c270_200_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180c270_200_data</span><span>"</span><span>)</span><span>print</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_5_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_1_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_5_data</span><span>"</span><span>)</span><span>print</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_1origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale08_08_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale08_08_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale06_06_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale06_06_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale04_04_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale04_04_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale02_02_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale02_02_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_01_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_01_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale001_001_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale001_001_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale0001_0001_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale0001_0001_data</span><span>"</span><span>)</span><span>print</span><span>()</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_1origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale2_2_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale2_2_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale5_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale5_5_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale10_10_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale10_10_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale20_20_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale20_20_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale50_50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale50_50_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale100_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale100_100_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale300_300_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale300_300_data</span><span>"</span><span>)</span><span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>d</span><span>=</span><span>0</span><span>,</span> <span>t</span><span>=</span><span>None</span><span>,</span><span>sc</span><span>=</span><span>None</span><span>,</span> <span>sh</span><span>=</span><span>None</span><span>,</span> <span>f</span><span>=</span><span>0</span><span>,</span> <span>c</span><span>=</span><span>None</span><span>):</span><span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span><span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span><span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span><span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span><span>ra</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>d</span><span>,</span> <span>translate</span><span>=</span><span>t</span><span>,</span> <span>scale</span><span>=</span><span>sc</span><span>,</span> <span># Here </span> <span>shear</span><span>=</span><span>sh</span><span>,</span> <span>center</span><span>=</span><span>c</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span><span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>ra</span><span>(</span><span>im</span><span>))</span> <span># Here </span> <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span><span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span><span>plt</span><span>.</span><span>tight_layout</span><span>()</span><span>plt</span><span>.</span><span>show</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>90</span><span>)</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn90n90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>])</span><span>print</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrvrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>t</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.5</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>t</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>vrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>t</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0.5</span><span>])</span><span>print</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn45n45fgray_data</span><span>"</span><span>,</span><span>d</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>f</span><span>=</span><span>150</span><span>)</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d135_135fpurple_data</span><span>"</span><span>,</span><span>d</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>f</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180c270_200_data</span><span>"</span><span>,</span><span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>c</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span><span>print</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>5</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>1</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>5</span><span>])</span><span>print</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale08_08_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.8</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale06_06_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.6</span><span>,</span> <span>0.6</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale04_04_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.4</span><span>,</span> <span>0.4</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale02_02_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.2</span><span>,</span> <span>0.2</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_01_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>0.1</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale001_001_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.01</span><span>,</span> <span>0.01</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale0001_0001_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>0.001</span><span>,</span> <span>0.001</span><span>])</span><span>print</span><span>()</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale2_2_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>2</span><span>,</span> <span>2</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale5_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>5</span><span>,</span> <span>5</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale10_10_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>10</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale20_20_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>20</span><span>,</span> <span>20</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale50_50_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>50</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale100_100_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>100</span><span>,</span> <span>100</span><span>])</span><span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale300_300_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span><span>sc</span><span>=</span><span>[</span><span>300</span><span>,</span> <span>300</span><span>])</span><span>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span> <span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>RandomAffine</span> <span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span> <span>randomaffine</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>90</span><span>)</span> <span>randomaffine</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>90</span><span>],</span> <span>translate</span><span>=</span><span>None</span><span>,</span> <span>scale</span><span>=</span><span>None</span><span>,</span> <span>shear</span><span>=</span><span>None</span><span>,</span> <span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>NEAREST</span><span>,</span> <span>fill</span><span>=</span><span>0</span><span>,</span> <span>center</span><span>=</span><span>None</span><span>)</span> <span>randomaffine</span> <span># RandomAffine(degrees=[-90, 90], # interpolation=InterpolationMode.NEAREST, # fill=0) </span> <span>randomaffine</span><span>.</span><span>degrees</span> <span># [-90.0, 90.0] </span> <span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>translate</span><span>)</span> <span># None </span> <span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>scale</span><span>)</span> <span># None </span> <span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>shear</span><span>)</span> <span># None </span> <span>randomaffine</span><span>.</span><span>interpolation</span> <span># <InterpolationMode.NEAREST: 'nearest'> </span> <span>randomaffine</span><span>.</span><span>fill</span> <span># 0 </span> <span>print</span><span>(</span><span>randomaffine</span><span>.</span><span>center</span><span>)</span> <span># None </span> <span>origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>None</span> <span># transform=RandomAffine(degrees=[0, 0]) </span><span>)</span> <span>d90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `d` is degrees. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>90</span><span>)</span> <span># transform=RandomAffine(degrees=[-90, 90]) </span><span>)</span> <span>d90_90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span> <span>)</span> <span>dn90n90_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `n` is negative. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span> <span>)</span> <span>d180_180_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>])</span> <span>)</span> <span>hrvrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `hr` is horizontal and `vr` is vertical. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span># `tran` is translate. </span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.5</span><span>])</span> <span>)</span> <span>hrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0</span><span>])</span> <span>)</span> <span>vrtran_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>translate</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0.5</span><span>])</span> <span>)</span> <span>dn45n45fgray_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>fill</span><span>=</span><span>150</span><span>)</span> <span>)</span> <span>d135_135fpurple_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>fill</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span> <span>)</span> <span>d180_180c270_200_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span># `c` is center. </span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>center</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span> <span>)</span> <span>scale01_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>5</span><span>])</span> <span>)</span> <span>scale01_1_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>1</span><span>])</span> <span>)</span> <span>scale1_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>5</span><span>])</span> <span>)</span> <span>scale1_1origin_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span> <span>)</span> <span>scale08_08_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.8</span><span>])</span> <span>)</span> <span>scale06_06_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.6</span><span>,</span> <span>0.6</span><span>])</span> <span>)</span> <span>scale04_04_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.4</span><span>,</span> <span>0.4</span><span>])</span> <span>)</span> <span>scale02_02_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.2</span><span>,</span> <span>0.2</span><span>])</span> <span>)</span> <span>scale01_01_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>0.1</span><span>])</span> <span>)</span> <span>scale001_001_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.01</span><span>,</span> <span>0.01</span><span>])</span> <span>)</span> <span>scale0001_0001_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>0.001</span><span>,</span> <span>0.001</span><span>])</span> <span>)</span> <span>scale2_2_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>2</span><span>,</span> <span>2</span><span>])</span> <span>)</span> <span>scale5_5_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>5</span><span>,</span> <span>5</span><span>])</span> <span>)</span> <span>scale10_10_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>10</span><span>])</span> <span>)</span> <span>scale20_20_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>20</span><span>,</span> <span>20</span><span>])</span> <span>)</span> <span>scale50_50_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>50</span><span>])</span> <span>)</span> <span>scale100_100_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>100</span><span>,</span> <span>100</span><span>])</span> <span>)</span> <span>scale300_300_data</span> <span>=</span> <span>OxfordIIITPet</span><span>(</span> <span>root</span><span>=</span><span>"</span><span>data</span><span>"</span><span>,</span> <span>transform</span><span>=</span><span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>scale</span><span>=</span><span>[</span><span>300</span><span>,</span> <span>300</span><span>])</span> <span>)</span> <span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span> <span>def</span> <span>show_images1</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>):</span> <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span> <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span> <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span> <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>im</span><span>)</span> <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span> <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span> <span>plt</span><span>.</span><span>tight_layout</span><span>()</span> <span>plt</span><span>.</span><span>show</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d90_90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_90_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dn90n90_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn90n90_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d180_180_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180_data</span><span>"</span><span>)</span> <span>print</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>hrvrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrvrtran_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>hrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrtran_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>vrtran_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>vrtran_data</span><span>"</span><span>)</span> <span>print</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dn45n45fgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn45n45fgray_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d135_135fpurple_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d135_135fpurple_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>d180_180c270_200_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180c270_200_data</span><span>"</span><span>)</span> <span>print</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_5_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_1_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_5_data</span><span>"</span><span>)</span> <span>print</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_1origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale08_08_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale08_08_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale06_06_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale06_06_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale04_04_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale04_04_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale02_02_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale02_02_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale01_01_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_01_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale001_001_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale001_001_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale0001_0001_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale0001_0001_data</span><span>"</span><span>)</span> <span>print</span><span>()</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale1_1origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale2_2_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale2_2_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale5_5_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale5_5_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale10_10_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale10_10_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale20_20_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale20_20_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale50_50_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale50_50_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale100_100_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale100_100_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>scale300_300_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale300_300_data</span><span>"</span><span>)</span> <span># ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ </span><span>def</span> <span>show_images2</span><span>(</span><span>data</span><span>,</span> <span>main_title</span><span>=</span><span>None</span><span>,</span> <span>d</span><span>=</span><span>0</span><span>,</span> <span>t</span><span>=</span><span>None</span><span>,</span> <span>sc</span><span>=</span><span>None</span><span>,</span> <span>sh</span><span>=</span><span>None</span><span>,</span> <span>f</span><span>=</span><span>0</span><span>,</span> <span>c</span><span>=</span><span>None</span><span>):</span> <span>plt</span><span>.</span><span>figure</span><span>(</span><span>figsize</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>5</span><span>])</span> <span>plt</span><span>.</span><span>suptitle</span><span>(</span><span>t</span><span>=</span><span>main_title</span><span>,</span> <span>y</span><span>=</span><span>0.8</span><span>,</span> <span>fontsize</span><span>=</span><span>14</span><span>)</span> <span>for</span> <span>i</span><span>,</span> <span>(</span><span>im</span><span>,</span> <span>_</span><span>)</span> <span>in</span> <span>zip</span><span>(</span><span>range</span><span>(</span><span>1</span><span>,</span> <span>6</span><span>),</span> <span>data</span><span>):</span> <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>5</span><span>,</span> <span>i</span><span>)</span> <span>ra</span> <span>=</span> <span>RandomAffine</span><span>(</span><span>degrees</span><span>=</span><span>d</span><span>,</span> <span>translate</span><span>=</span><span>t</span><span>,</span> <span>scale</span><span>=</span><span>sc</span><span>,</span> <span># Here </span> <span>shear</span><span>=</span><span>sh</span><span>,</span> <span>center</span><span>=</span><span>c</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>ra</span><span>(</span><span>im</span><span>))</span> <span># Here </span> <span>plt</span><span>.</span><span>xticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span> <span>plt</span><span>.</span><span>yticks</span><span>(</span><span>ticks</span><span>=</span><span>[])</span> <span>plt</span><span>.</span><span>tight_layout</span><span>()</span> <span>plt</span><span>.</span><span>show</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>origin_data</span><span>"</span><span>)</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>90</span><span>)</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d90_90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>90</span><span>,</span> <span>90</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn90n90_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>-</span><span>90</span><span>,</span> <span>-</span><span>90</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>])</span> <span>print</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrvrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>t</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.5</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>hrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>t</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>vrtran_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>t</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0.5</span><span>])</span> <span>print</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dn45n45fgray_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>-</span><span>45</span><span>,</span> <span>-</span><span>45</span><span>],</span> <span>f</span><span>=</span><span>150</span><span>)</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d135_135fpurple_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>135</span><span>,</span> <span>135</span><span>],</span> <span>f</span><span>=</span><span>[</span><span>160</span><span>,</span> <span>32</span><span>,</span> <span>240</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>d180_180c270_200_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>180</span><span>,</span> <span>180</span><span>],</span> <span>c</span><span>=</span><span>[</span><span>270</span><span>,</span> <span>200</span><span>])</span> <span>print</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>5</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>1</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0.0</span><span>,</span> <span>0.0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>5</span><span>])</span> <span>print</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale08_08_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.8</span><span>,</span> <span>0.8</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale06_06_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.6</span><span>,</span> <span>0.6</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale04_04_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.4</span><span>,</span> <span>0.4</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale02_02_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.2</span><span>,</span> <span>0.2</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale01_01_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.1</span><span>,</span> <span>0.1</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale001_001_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.01</span><span>,</span> <span>0.01</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale0001_0001_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>0.001</span><span>,</span> <span>0.001</span><span>])</span> <span>print</span><span>()</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale1_1origin_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>1</span><span>,</span> <span>1</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale2_2_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>2</span><span>,</span> <span>2</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale5_5_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>5</span><span>,</span> <span>5</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale10_10_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>10</span><span>,</span> <span>10</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale20_20_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>20</span><span>,</span> <span>20</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale50_50_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>50</span><span>,</span> <span>50</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale100_100_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>100</span><span>,</span> <span>100</span><span>])</span> <span>show_images2</span><span>(</span><span>data</span><span>=</span><span>origin_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>scale300_300_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>[</span><span>0</span><span>,</span> <span>0</span><span>],</span> <span>sc</span><span>=</span><span>[</span><span>300</span><span>,</span> <span>300</span><span>])</span>from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomAffine from torchvision.transforms.functional import InterpolationMode randomaffine = RandomAffine(degrees=90) randomaffine = RandomAffine(degrees=[-90, 90], translate=None, scale=None, shear=None, interpolation=InterpolationMode.NEAREST, fill=0, center=None) randomaffine # RandomAffine(degrees=[-90, 90], # interpolation=InterpolationMode.NEAREST, # fill=0) randomaffine.degrees # [-90.0, 90.0] print(randomaffine.translate) # None print(randomaffine.scale) # None print(randomaffine.shear) # None randomaffine.interpolation # <InterpolationMode.NEAREST: 'nearest'> randomaffine.fill # 0 print(randomaffine.center) # None origin_data = OxfordIIITPet( root="data", transform=None # transform=RandomAffine(degrees=[0, 0]) ) d90_data = OxfordIIITPet( # `d` is degrees. root="data", transform=RandomAffine(degrees=90) # transform=RandomAffine(degrees=[-90, 90]) ) d90_90_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[90, 90]) ) dn90n90_data = OxfordIIITPet( # `n` is negative. root="data", transform=RandomAffine(degrees=[-90, -90]) ) d180_180_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[180, 180]) ) hrvrtran_data = OxfordIIITPet( # `hr` is horizontal and `vr` is vertical. root="data", # `tran` is translate. transform=RandomAffine(degrees=[0, 0], translate=[0.8, 0.5]) ) hrtran_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], translate=[0.8, 0]) ) vrtran_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], translate=[0, 0.5]) ) dn45n45fgray_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[-45, -45], fill=150) ) d135_135fpurple_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[135, 135], fill=[160, 32, 240]) ) d180_180c270_200_data = OxfordIIITPet( # `c` is center. root="data", transform=RandomAffine(degrees=[180, 180], center=[270, 200]) ) scale01_5_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.1, 5]) ) scale01_1_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.1, 1]) ) scale1_5_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[1, 5]) ) scale1_1origin_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[1, 1]) ) scale08_08_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.8, 0.8]) ) scale06_06_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.6, 0.6]) ) scale04_04_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.4, 0.4]) ) scale02_02_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.2, 0.2]) ) scale01_01_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.1, 0.1]) ) scale001_001_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.01, 0.01]) ) scale0001_0001_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[0.001, 0.001]) ) scale2_2_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[2, 2]) ) scale5_5_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[5, 5]) ) scale10_10_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[10, 10]) ) scale20_20_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[20, 20]) ) scale50_50_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[50, 50]) ) scale100_100_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[100, 100]) ) scale300_300_data = OxfordIIITPet( root="data", transform=RandomAffine(degrees=[0, 0], scale=[300, 300]) ) import matplotlib.pyplot as plt def show_images1(data, main_title=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) plt.imshow(X=im) plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") show_images1(data=d90_data, main_title="d90_data") show_images1(data=d90_90_data, main_title="d90_90_data") show_images1(data=dn90n90_data, main_title="dn90n90_data") show_images1(data=d180_180_data, main_title="d180_180_data") print() show_images1(data=hrvrtran_data, main_title="hrvrtran_data") show_images1(data=hrtran_data, main_title="hrtran_data") show_images1(data=vrtran_data, main_title="vrtran_data") print() show_images1(data=dn45n45fgray_data, main_title="dn45n45fgray_data") show_images1(data=d135_135fpurple_data, main_title="d135_135fpurple_data") show_images1(data=d180_180c270_200_data, main_title="d180_180c270_200_data") print() show_images1(data=scale01_5_data, main_title="scale01_5_data") show_images1(data=scale01_1_data, main_title="scale01_1_data") show_images1(data=scale1_5_data, main_title="scale1_5_data") print() show_images1(data=scale1_1origin_data, main_title="scale1_1origin_data") show_images1(data=scale08_08_data, main_title="scale08_08_data") show_images1(data=scale06_06_data, main_title="scale06_06_data") show_images1(data=scale04_04_data, main_title="scale04_04_data") show_images1(data=scale02_02_data, main_title="scale02_02_data") show_images1(data=scale01_01_data, main_title="scale01_01_data") show_images1(data=scale001_001_data, main_title="scale001_001_data") show_images1(data=scale0001_0001_data, main_title="scale0001_0001_data") print() show_images1(data=scale1_1origin_data, main_title="scale1_1origin_data") show_images1(data=scale2_2_data, main_title="scale2_2_data") show_images1(data=scale5_5_data, main_title="scale5_5_data") show_images1(data=scale10_10_data, main_title="scale10_10_data") show_images1(data=scale20_20_data, main_title="scale20_20_data") show_images1(data=scale50_50_data, main_title="scale50_50_data") show_images1(data=scale100_100_data, main_title="scale100_100_data") show_images1(data=scale300_300_data, main_title="scale300_300_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, d=0, t=None, sc=None, sh=None, f=0, c=None): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) ra = RandomAffine(degrees=d, translate=t, scale=sc, # Here shear=sh, center=c, fill=f) plt.imshow(X=ra(im)) # Here plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images2(data=origin_data, main_title="origin_data") show_images2(data=origin_data, main_title="d90_data", d=90) show_images2(data=origin_data, main_title="d90_90_data", d=[90, 90]) show_images2(data=origin_data, main_title="dn90n90_data", d=[-90, -90]) show_images2(data=origin_data, main_title="d180_180_data", d=[180, 180]) print() show_images2(data=origin_data, main_title="hrvrtran_data", d=[0, 0], t=[0.8, 0.5]) show_images2(data=origin_data, main_title="hrtran_data", d=[0, 0], t=[0.8, 0]) show_images2(data=origin_data, main_title="vrtran_data", d=[0, 0], t=[0, 0.5]) print() show_images2(data=origin_data, main_title="dn45n45fgray_data", d=[-45, -45], f=150) show_images2(data=origin_data, main_title="d135_135fpurple_data", d=[135, 135], f=[160, 32, 240]) show_images2(data=origin_data, main_title="d180_180c270_200_data", d=[180, 180], c=[270, 200]) print() show_images2(data=origin_data, main_title="scale01_5_data", d=[0.0, 0.0], sc=[0.1, 5]) show_images2(data=origin_data, main_title="scale01_1_data", d=[0.0, 0.0], sc=[0.1, 1]) show_images2(data=origin_data, main_title="scale1_5_data", d=[0.0, 0.0], sc=[1, 5]) print() show_images2(data=origin_data, main_title="scale1_1origin_data", d=[0, 0], sc=[1, 1]) show_images2(data=origin_data, main_title="scale08_08_data", d=[0, 0], sc=[0.8, 0.8]) show_images2(data=origin_data, main_title="scale06_06_data", d=[0, 0], sc=[0.6, 0.6]) show_images2(data=origin_data, main_title="scale04_04_data", d=[0, 0], sc=[0.4, 0.4]) show_images2(data=origin_data, main_title="scale02_02_data", d=[0, 0], sc=[0.2, 0.2]) show_images2(data=origin_data, main_title="scale01_01_data", d=[0, 0], sc=[0.1, 0.1]) show_images2(data=origin_data, main_title="scale001_001_data", d=[0, 0], sc=[0.01, 0.01]) show_images2(data=origin_data, main_title="scale0001_0001_data", d=[0, 0], sc=[0.001, 0.001]) print() show_images2(data=origin_data, main_title="scale1_1origin_data", d=[0, 0], sc=[1, 1]) show_images2(data=origin_data, main_title="scale2_2_data", d=[0, 0], sc=[2, 2]) show_images2(data=origin_data, main_title="scale5_5_data", d=[0, 0], sc=[5, 5]) show_images2(data=origin_data, main_title="scale10_10_data", d=[0, 0], sc=[10, 10]) show_images2(data=origin_data, main_title="scale20_20_data", d=[0, 0], sc=[20, 20]) show_images2(data=origin_data, main_title="scale50_50_data", d=[0, 0], sc=[50, 50]) show_images2(data=origin_data, main_title="scale100_100_data", d=[0, 0], sc=[100, 100]) show_images2(data=origin_data, main_title="scale300_300_data", d=[0, 0], sc=[300, 300])
Enter fullscreen mode Exit fullscreen mode
© 版权声明
THE END
暂无评论内容