*Memos:
- My post explains RandomRotation().
- My post explains RandomAffine().
- My post explains RandomHorizontalFlip().
- My post explains RandomVerticalFlip().
- My post explains OxfordIIITPet().
RandomPerspective() can do perspective transformation for zero or more images as shown below:
*Memos:
- The 1st argument for initialization is
distortion_scale
(Optional-Default:0.5
-Type:int
orfloat
): *Memos:- It can do perspective transformation.
- It must be
0 <= x <= 1
.
- The 2nd argument for initialization is
p
(Optional-Default:0.5
-Type:int
orfloat
): *Memos:- It’s the probability of whether each image is done with perspective transformation or not.
- It must be
0 <= x <= 1
.
- The 3rd argument for initialization is
interpolation
(Optional-Default:InterpolationMode.BILINEAR
-Type:InterpolationMode). - The 4th argument for initialization is
fill
(Optional-Default:0
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It can change the background of images. *The background can be seen when doing perspective transformation for images.
- A tuple/list must be the 1D with 1 or 3 elements.
- The 1st argument is
img
(Required-Type:PIL Image
ortensor
(int
)): *Memos:- A tensor must be A 2D or more D.
- 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>RandomPerspective</span><span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span><span>randompers</span> <span>=</span> <span>RandomPerspective</span><span>()</span><span>randompers</span> <span>=</span> <span>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.5</span><span>,</span><span>p</span><span>=</span><span>0.5</span><span>,</span><span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>BILINEAR</span><span>,</span><span>fill</span><span>=</span><span>0</span><span>)</span><span>randompers</span><span># RandomPerspective(p=0.5, # distortion_scale=0.5, # interpolation=InterpolationMode.BILINEAR, # fill=0) </span><span>randompers</span><span>.</span><span>distortion_scale</span><span># 0.5 </span><span>randompers</span><span>.</span><span>p</span><span># 0.5 </span><span>randompers</span><span>.</span><span>interpolation</span><span># <InterpolationMode.BILINEAR: 'bilinear'> </span><span>randompers</span><span>.</span><span>fill</span><span># 0 </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=RandomPerspective(distortion_scale=0) </span> <span># transform=RandomPerspective(p=0) </span><span>)</span><span>dis02p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.2</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span><span>)</span><span>dis06p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.6</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span><span>)</span><span>dis1p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>1</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span><span>)</span><span>p1_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</span><span>)</span><span>)</span><span>p05_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>0.5</span><span>)</span><span>)</span><span>p1fillgray_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</span><span>,</span> <span>fill</span><span>=</span><span>150</span><span>)</span><span>)</span><span>p1fillpurple_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</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>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>dis02p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis02p1_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dis06p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis06p1_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dis1p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis1p1_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p05_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p05_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1fillgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1fillgray_data</span><span>"</span><span>)</span><span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1fillpurple_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1fillpurple_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.5</span><span>,</span> <span>prob</span><span>=</span><span>0.5</span><span>,</span> <span>f</span><span>=</span><span>0</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>rp</span> <span>=</span> <span>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>d</span><span>,</span> <span>p</span><span>=</span><span>prob</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span> <span># Here </span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>rp</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>d</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>dis02p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>0.2</span><span>,</span> <span>prob</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>dis06p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>0.6</span><span>,</span> <span>prob</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>dis1p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>1</span><span>,</span> <span>prob</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>p1_data</span><span>"</span><span>,</span> <span>prob</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>p05_data</span><span>"</span><span>,</span> <span>prob</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>p1fillgray_data</span><span>"</span><span>,</span> <span>prob</span><span>=</span><span>1</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>p1fillpurple_data</span><span>"</span><span>,</span> <span>prob</span><span>=</span><span>1</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>from</span> <span>torchvision.datasets</span> <span>import</span> <span>OxfordIIITPet</span> <span>from</span> <span>torchvision.transforms.v2</span> <span>import</span> <span>RandomPerspective</span> <span>from</span> <span>torchvision.transforms.functional</span> <span>import</span> <span>InterpolationMode</span> <span>randompers</span> <span>=</span> <span>RandomPerspective</span><span>()</span> <span>randompers</span> <span>=</span> <span>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.5</span><span>,</span> <span>p</span><span>=</span><span>0.5</span><span>,</span> <span>interpolation</span><span>=</span><span>InterpolationMode</span><span>.</span><span>BILINEAR</span><span>,</span> <span>fill</span><span>=</span><span>0</span><span>)</span> <span>randompers</span> <span># RandomPerspective(p=0.5, # distortion_scale=0.5, # interpolation=InterpolationMode.BILINEAR, # fill=0) </span> <span>randompers</span><span>.</span><span>distortion_scale</span> <span># 0.5 </span> <span>randompers</span><span>.</span><span>p</span> <span># 0.5 </span> <span>randompers</span><span>.</span><span>interpolation</span> <span># <InterpolationMode.BILINEAR: 'bilinear'> </span> <span>randompers</span><span>.</span><span>fill</span> <span># 0 </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=RandomPerspective(distortion_scale=0) </span> <span># transform=RandomPerspective(p=0) </span><span>)</span> <span>dis02p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.2</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span> <span>)</span> <span>dis06p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>0.6</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span> <span>)</span> <span>dis1p1_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>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>1</span><span>,</span> <span>p</span><span>=</span><span>1</span><span>)</span> <span>)</span> <span>p1_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</span><span>)</span> <span>)</span> <span>p05_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>0.5</span><span>)</span> <span>)</span> <span>p1fillgray_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</span><span>,</span> <span>fill</span><span>=</span><span>150</span><span>)</span> <span>)</span> <span>p1fillpurple_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>RandomPerspective</span><span>(</span><span>p</span><span>=</span><span>1</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>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>dis02p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis02p1_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dis06p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis06p1_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>dis1p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>dis1p1_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p05_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p05_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1fillgray_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1fillgray_data</span><span>"</span><span>)</span> <span>show_images1</span><span>(</span><span>data</span><span>=</span><span>p1fillpurple_data</span><span>,</span> <span>main_title</span><span>=</span><span>"</span><span>p1fillpurple_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.5</span><span>,</span> <span>prob</span><span>=</span><span>0.5</span><span>,</span> <span>f</span><span>=</span><span>0</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>rp</span> <span>=</span> <span>RandomPerspective</span><span>(</span><span>distortion_scale</span><span>=</span><span>d</span><span>,</span> <span>p</span><span>=</span><span>prob</span><span>,</span> <span>fill</span><span>=</span><span>f</span><span>)</span> <span># Here </span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>X</span><span>=</span><span>rp</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>d</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>dis02p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>0.2</span><span>,</span> <span>prob</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>dis06p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>0.6</span><span>,</span> <span>prob</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>dis1p1_data</span><span>"</span><span>,</span> <span>d</span><span>=</span><span>1</span><span>,</span> <span>prob</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>p1_data</span><span>"</span><span>,</span> <span>prob</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>p05_data</span><span>"</span><span>,</span> <span>prob</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>p1fillgray_data</span><span>"</span><span>,</span> <span>prob</span><span>=</span><span>1</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>p1fillpurple_data</span><span>"</span><span>,</span> <span>prob</span><span>=</span><span>1</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>from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomPerspective from torchvision.transforms.functional import InterpolationMode randompers = RandomPerspective() randompers = RandomPerspective(distortion_scale=0.5, p=0.5, interpolation=InterpolationMode.BILINEAR, fill=0) randompers # RandomPerspective(p=0.5, # distortion_scale=0.5, # interpolation=InterpolationMode.BILINEAR, # fill=0) randompers.distortion_scale # 0.5 randompers.p # 0.5 randompers.interpolation # <InterpolationMode.BILINEAR: 'bilinear'> randompers.fill # 0 origin_data = OxfordIIITPet( root="data", transform=None # transform=RandomPerspective(distortion_scale=0) # transform=RandomPerspective(p=0) ) dis02p1_data = OxfordIIITPet( root="data", transform=RandomPerspective(distortion_scale=0.2, p=1) ) dis06p1_data = OxfordIIITPet( root="data", transform=RandomPerspective(distortion_scale=0.6, p=1) ) dis1p1_data = OxfordIIITPet( root="data", transform=RandomPerspective(distortion_scale=1, p=1) ) p1_data = OxfordIIITPet( root="data", transform=RandomPerspective(p=1) ) p05_data = OxfordIIITPet( root="data", transform=RandomPerspective(p=0.5) ) p1fillgray_data = OxfordIIITPet( root="data", transform=RandomPerspective(p=1, fill=150) ) p1fillpurple_data = OxfordIIITPet( root="data", transform=RandomPerspective(p=1, fill=[160, 32, 240]) ) 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=dis02p1_data, main_title="dis02p1_data") show_images1(data=dis06p1_data, main_title="dis06p1_data") show_images1(data=dis1p1_data, main_title="dis1p1_data") show_images1(data=p1_data, main_title="p1_data") show_images1(data=p05_data, main_title="p05_data") show_images1(data=p1fillgray_data, main_title="p1fillgray_data") show_images1(data=p1fillpurple_data, main_title="p1fillpurple_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, d=0.5, prob=0.5, f=0): 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) rp = RandomPerspective(distortion_scale=d, p=prob, fill=f) # Here plt.imshow(X=rp(im)) # Here plt.xticks(ticks=[]) plt.yticks(ticks=[]) plt.tight_layout() plt.show() show_images2(data=origin_data, main_title="origin_data", d=0) show_images2(data=origin_data, main_title="dis02p1_data", d=0.2, prob=1) show_images2(data=origin_data, main_title="dis06p1_data", d=0.6, prob=1) show_images2(data=origin_data, main_title="dis1p1_data", d=1, prob=1) show_images2(data=origin_data, main_title="p1_data", prob=1) show_images2(data=origin_data, main_title="p05_data", prob=0.5) show_images2(data=origin_data, main_title="p1fillgray_data", prob=1, f=150) show_images2(data=origin_data, main_title="p1fillpurple_data", prob=1, f=[160, 32, 240])
Enter fullscreen mode Exit fullscreen mode
© 版权声明
THE END
暂无评论内容