*Memos:
-
My post explains RandomAffine() without
scale
andshear
argument. -
My post explains RandomAffine() with
shear
argument. - My post explains OxfordIIITPet().
RandomAffine() can do random rotation or random affine transformation for an image as shown below:
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandomAffine
from torchvision.transforms.functional import InterpolationMode
origin_data = OxfordIIITPet(
root="data",
transform=None
# transform=RandomAffine(degrees=[0, 0])
)
scale1_1origin_data = OxfordIIITPet(
root="data",
transform=RandomAffine(degrees=[0, 0], scale=[1, 1])
)
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])
)
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=scale1_1origin_data, main_title="scale1_1origin_data")
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,
ip=InterpolationMode.NEAREST, 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, interpolation=ip, 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="scale1_1origin_data", d=[0, 0],
sc=[1, 1])
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])
Top comments (0)