*Memos:
- My post explains ElasticTransform() about no arguments,
alpha
argument withsigma=0.1
andsigma
argument withalpha=0
. - My post explains ElasticTransform() about
sigma
andfill
argument. - My post explains ElasticTransform() about
alpha
,sigma
andfill
argument.
ElasticTransform() can do random morphological transformation for an image as shown below. *It's about alpha
and fill
argument:
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import ElasticTransform from torchvision.transforms.functional import InterpolationMode origin_data = OxfordIIITPet( root="data", transform=None # transform=ElasticTransform(alpha=0, sigma=0) ) a0origin_data = OxfordIIITPet( # `a` is alpha. root="data", transform=ElasticTransform(alpha=0) ) a50_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=50) # transform=ElasticTransform(alpha=[50, 50]) # transform=ElasticTransform(alpha=-50) # transform=ElasticTransform(alpha=[-50, -50]) ) a100_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=100) # transform=ElasticTransform(alpha=-100) ) a200_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=200) # transform=ElasticTransform(alpha=-200) ) a500_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=500) # transform=ElasticTransform(alpha=-500) ) a1000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=1000) # transform=ElasticTransform(alpha=-1000) ) a5000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=5000) # transform=ElasticTransform(alpha=-5000) ) a10000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=10000) # transform=ElasticTransform(alpha=-10000) ) a50000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=50000) # transform=ElasticTransform(alpha=-50000) ) a100000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=100000) # transform=ElasticTransform(alpha=-100000) ) a1000000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=1000000) # transform=ElasticTransform(alpha=-1000000) ) a10000000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=10000000) # transform=ElasticTransform(alpha=-10000000) ) a0_0origin_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 0]) ) a50_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[50, 0]) # transform=ElasticTransform(alpha=[-50, 0]) ) a100_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[100, 0]) # transform=ElasticTransform(alpha=[-100, 0]) ) a200_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[200, 0]) # transform=ElasticTransform(alpha=[-200, 0]) ) a500_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[500, 0]) # transform=ElasticTransform(alpha=[-500, 0]) ) a1000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[1000, 0]) # transform=ElasticTransform(alpha=[-1000, 0]) ) a5000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[5000, 0]) # transform=ElasticTransform(alpha=[-5000, 0]) ) a10000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[10000, 0]) # transform=ElasticTransform(alpha=[-10000, 0]) ) a50000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[50000, 0]) # transform=ElasticTransform(alpha=[-50000, 0]) ) a100000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[100000, 0]) # transform=ElasticTransform(alpha=[-100000, 0]) ) a1000000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[1000000, 0]) # transform=ElasticTransform(alpha=[-1000000, 0]) ) a10000000_0_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[10000000, 0]) # transform=ElasticTransform(alpha=[-10000000, 0]) ) a0_50_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 50]) # transform=ElasticTransform(alpha=[0, -50]) ) a0_100_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 100]) # transform=ElasticTransform(alpha=[0, -100]) ) a0_200_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 200]) # transform=ElasticTransform(alpha=[0, -200]) ) a0_500_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 500]) # transform=ElasticTransform(alpha=[0, -500]) ) a0_1000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 1000]) # transform=ElasticTransform(alpha=[0, -1000]) ) a0_5000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 5000]) # transform=ElasticTransform(alpha=[0, -5000]) ) a0_10000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 10000]) # transform=ElasticTransform(alpha=[0, -10000]) ) a0_50000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 50000]) # transform=ElasticTransform(alpha=[0, -50000]) ) a0_100000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 100000]) # transform=ElasticTransform(alpha=[0, -100000]) ) a0_1000000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 1000000]) # transform=ElasticTransform(alpha=[0, -1000000]) ) a0_10000000_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=[0, 10000000]) # transform=ElasticTransform(alpha=[0, -10000000]) ) a5000fgray_data = OxfordIIITPet( # `f` is fill. root="data", transform=ElasticTransform(alpha=5000, fill=150) # transform=ElasticTransform(alpha=5000, fill=[150]) ) a10000fgray_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=10000, fill=150) ) a5000fpurple_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=5000, fill=[160, 32, 240]) ) a10000fpurple_data = OxfordIIITPet( root="data", transform=ElasticTransform(alpha=10000, 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") print() show_images1(data=a0origin_data, main_title="a0origin_data") show_images1(data=a50_data, main_title="a50_data") show_images1(data=a100_data, main_title="a100_data") show_images1(data=a200_data, main_title="a200_data") show_images1(data=a500_data, main_title="a500_data") show_images1(data=a1000_data, main_title="a1000_data") show_images1(data=a5000_data, main_title="a5000_data") show_images1(data=a10000_data, main_title="a10000_data") show_images1(data=a50000_data, main_title="a50000_data") show_images1(data=a100000_data, main_title="a100000_data") show_images1(data=a1000000_data, main_title="a1000000_data") show_images1(data=a10000000_data, main_title="a10000000_data") print() show_images1(data=a0_0origin_data, main_title="a0_0origin_data") show_images1(data=a50_0_data, main_title="a50_0_data") show_images1(data=a100_0_data, main_title="a100_0_data") show_images1(data=a200_0_data, main_title="a200_0_data") show_images1(data=a500_0_data, main_title="a500_0_data") show_images1(data=a1000_0_data, main_title="a1000_0_data") show_images1(data=a5000_0_data, main_title="a5000_0_data") show_images1(data=a10000_0_data, main_title="a10000_0_data") show_images1(data=a50000_0_data, main_title="a50000_0_data") show_images1(data=a100000_0_data, main_title="a100000_0_data") show_images1(data=a1000000_0_data, main_title="a1000000_0_data") show_images1(data=a10000000_0_data, main_title="a10000000_0_data") print() show_images1(data=a0_0origin_data, main_title="a0_0origin_data") show_images1(data=a0_50_data, main_title="a0_50_data") show_images1(data=a0_100_data, main_title="a0_100_data") show_images1(data=a0_200_data, main_title="a0_200_data") show_images1(data=a0_500_data, main_title="a0_500_data") show_images1(data=a0_1000_data, main_title="a0_1000_data") show_images1(data=a0_5000_data, main_title="a0_5000_data") show_images1(data=a0_10000_data, main_title="a0_10000_data") show_images1(data=a0_50000_data, main_title="a0_50000_data") show_images1(data=a0_100000_data, main_title="a0_100000_data") show_images1(data=a0_1000000_data, main_title="a0_1000000_data") show_images1(data=a0_10000000_data, main_title="a0_10000000_data") print() show_images1(data=a5000fgray_data, main_title="a5000fgray_data") show_images1(data=a10000fgray_data, main_title="a10000fgray_data") print() show_images1(data=a5000fpurple_data, main_title="a5000fpurple_data") show_images1(data=a10000fpurple_data, main_title="a10000fpurple_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, a=50, s=5, ip=InterpolationMode.BILINEAR, f=0): plt.figure(figsize=[10, 5]) plt.suptitle(t=main_title, y=0.8, fontsize=14) if main_title != "origin_data": for i, (im, _) in zip(range(1, 6), data): plt.subplot(1, 5, i) et = ElasticTransform(alpha=a, sigma=s, interpolation=ip, fill=f) plt.imshow(X=et(im)) plt.xticks(ticks=[]) plt.yticks(ticks=[]) else: 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_images2(data=origin_data, main_title="origin_data") print() show_images2(data=origin_data, main_title="a0origin_data", a=0) show_images2(data=origin_data, main_title="a50_data", a=50) show_images2(data=origin_data, main_title="a100_data", a=100) show_images2(data=origin_data, main_title="a200_data", a=200) show_images2(data=origin_data, main_title="a500_data", a=500) show_images2(data=origin_data, main_title="a1000_data", a=1000) show_images2(data=origin_data, main_title="a5000_data", a=5000) show_images2(data=origin_data, main_title="a10000_data", a=10000) show_images2(data=origin_data, main_title="a50000_data", a=50000) show_images2(data=origin_data, main_title="a100000_data", a=100000) show_images2(data=origin_data, main_title="a1000000_data", a=1000000) show_images2(data=origin_data, main_title="a10000000_data", a=10000000) print() show_images2(data=origin_data, main_title="a0_0origin_data", a=[0, 0]) show_images2(data=origin_data, main_title="a50_0_data", a=[50, 0]) show_images2(data=origin_data, main_title="a100_0_data", a=[100, 0]) show_images2(data=origin_data, main_title="a200_0_data", a=[200, 0]) show_images2(data=origin_data, main_title="a500_0_data", a=[500, 0]) show_images2(data=origin_data, main_title="a1000_0_data", a=[1000, 0]) show_images2(data=origin_data, main_title="a5000_0_data", a=[5000, 0]) show_images2(data=origin_data, main_title="a10000_0_data", a=[10000, 0]) show_images2(data=origin_data, main_title="a50000_0_data", a=[50000, 0]) show_images2(data=origin_data, main_title="a100000_0_data", a=[100000, 0]) show_images2(data=origin_data, main_title="a1000000_0_data", a=[1000000, 0]) show_images2(data=origin_data, main_title="a10000000_0_data", a=[10000000, 0]) print() show_images2(data=origin_data, main_title="a0_0origin_data", a=[0, 0]) show_images2(data=origin_data, main_title="a0_50_data", a=[0, 50]) show_images2(data=origin_data, main_title="a0_100_data", a=[0, 100]) show_images2(data=origin_data, main_title="a0_200_data", a=[0, 200]) show_images2(data=origin_data, main_title="a0_500_data", a=[0, 500]) show_images2(data=origin_data, main_title="a0_1000_data", a=[0, 1000]) show_images2(data=origin_data, main_title="a0_5000_data", a=[0, 5000]) show_images2(data=origin_data, main_title="a0_10000_data", a=[0, 10000]) show_images2(data=origin_data, main_title="a0_50000_data", a=[0, 50000]) show_images2(data=origin_data, main_title="a0_100000_data", a=[0, 100000]) show_images2(data=origin_data, main_title="a0_1000000_data", a=[0, 1000000]) show_images2(data=origin_data, main_title="a0_10000000_data", a=[0, 10000000]) print() show_images2(data=origin_data, main_title="a5000fgray_data", a=5000, f=150) show_images2(data=origin_data, main_title="a10000fgray_data", a=10000, f=150) print() show_images2(data=origin_data, main_title="a5000fpurple_data", a=5000, f=[160, 32, 240]) show_images2(data=origin_data, main_title="a10000fpurple_data", a=10000, f=[160, 32, 240])
Top comments (0)