RandomResizedCrop in PyTorch (5)

Buy Me a Coffee☕ *Memos: My post explains RandomResizedCrop() about size argument. My post explains RandomResizedCrop() about scale argument. My post explains RandomResizedCrop() about ratio argument. My post explains RandomResizedCrop() about size argument with scale=[0, 0] and ratio=[1, 1]. My post explains RandomResizedCrop() about ratio argument with scale=[0, 0]. RandomResizedCrop() can crop a random part of an image, then resize it to a given size as shown below. *It's scale argument with ratio=[1, 1]: from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import RandomResizedCrop from torchvision.transforms.functional import InterpolationMode origin_data = OxfordIIITPet( root="data", transform=None ) s1000sc0_0r1_1origin_data = OxfordIIITPet( # `s` is size and `sc` is scale. root="data", # `r` is ratio. transform=RandomResizedCrop(size=1000, scale=[0, 0], ratio=[1, 1]) ) s1000sc0_1r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0, 1], ratio=[1, 1]) ) s1000sc0_05r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0, 0.5], ratio=[1, 1]) ) s1000sc05_1r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.5, 1], ratio=[1, 1]) ) s1000sc0001_0001r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.001, 0.001], ratio=[1, 1]) ) s1000sc001_001r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.01, 0.01], ratio=[1, 1]) ) s1000sc01_01r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.1, 0.1], ratio=[1, 1]) ) s1000sc02_02r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.2, 0.2], ratio=[1, 1]) ) s1000sc03_03r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.3, 0.3], ratio=[1, 1]) ) s1000sc04_04r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.4, 0.4], ratio=[1, 1]) ) s1000sc05_05r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.5, 0.5], ratio=[1, 1]) ) s1000sc06_06r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.6, 0.6], ratio=[1, 1]) ) s1000sc07_07r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.7, 0.7], ratio=[1, 1]) ) s1000sc08_08r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.8, 0.8], ratio=[1, 1]) ) s1000sc09_09r1_1_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[0.9, 0.9], ratio=[1, 1]) ) s1000sc1_1r1_1origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[1, 1], ratio=[1, 1]) ) s1000sc10_10r1_1origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[10, 10], ratio=[1, 1]) ) s1000sc100_100r1_1origin_data = OxfordIIITPet( root="data", transform=RandomResizedCrop(size=1000, scale=[100, 100], ratio=[1, 1]) ) 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.tight_layout() plt.show() show_images1(data=origin_data, main_title="origin_data") print() show_images1(data=s1000sc0_0r1_1origin_data, main_title="s1000sc0_0r1_1origin_data") show_images1(data=s1000sc0_1r1_1_data, main_title="s1000sc0_1r1_1_data") show_images1(data=s1000sc0_05r1_1_data, main_title="s1000sc0_05r1_1_data") show_images1(data=s1000sc05_1r1_1_data, main_title="s1000sc05_1r1_1_data") print() show_images1(data=s1000sc0_0r1_1origin_data, main_title="s1000sc0_0r1_1origin_data") show_images1(data=s1000sc0001_0001r1_1_data, main_title="s1000sc0001_0001r1_1_data") show_images1(data=s1000sc001_001r1_1_data, main_title="s1000sc001_001r1_1_data") show_images1(data=s1000sc01_01r1_1_data, main_title="s1000sc01_01r1_1_data") show_images1(data=s1000sc02_02r1_1_data, main_title="s1000sc02_02r1_1_data") show_images1(data=s1000sc03_03r1_1_data, main_title="s1000sc03_03r1_1_data") show_images1(data=s1000sc04_04r1_1_data, main_title="s1000sc04_04r1_1_data") show_images1(data=s1000sc05_05r1_1_data, main_title="s1000sc05_05r1_1_data") show_images1(data=s1000sc06_06r1_1_data, main_title="s1000sc06_06r1_1_data") show_images1(data=s1000sc07_07r1_1_data, main_title="s1000sc07_07r1_1_data") show_images1(data=s1000sc08_08r1_1_data, main_title="s1000sc08_08r1_1_data") show_images1(data=s1000sc09_09r1_1_data, main_title="s1000sc09_09r1_1_data") show_images1(data=s1000sc1_1r1_

Mar 13, 2025 - 05:01
 0
RandomResizedCrop in PyTorch (5)

Buy Me a Coffee

*Memos:

RandomResizedCrop() can crop a random part of an image, then resize it to a given size as shown below. *It's scale argument with ratio=[1, 1]:

from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandomResizedCrop
from torchvision.transforms.functional import InterpolationMode

origin_data = OxfordIIITPet(
    root="data",
    transform=None
)

s1000sc0_0r1_1origin_data = OxfordIIITPet( # `s` is size and `sc` is scale.
    root="data",                           # `r` is ratio.
    transform=RandomResizedCrop(size=1000, scale=[0, 0], ratio=[1, 1])
)

s1000sc0_1r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0, 1], ratio=[1, 1])
)

s1000sc0_05r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0, 0.5], ratio=[1, 1])
)

s1000sc05_1r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.5, 1], ratio=[1, 1])
)

s1000sc0001_0001r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.001, 0.001],
                                ratio=[1, 1])
)

s1000sc001_001r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.01, 0.01], ratio=[1, 1])
)

s1000sc01_01r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.1, 0.1], ratio=[1, 1])
)

s1000sc02_02r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.2, 0.2], ratio=[1, 1])
)

s1000sc03_03r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.3, 0.3], ratio=[1, 1])
)

s1000sc04_04r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.4, 0.4], ratio=[1, 1])
)

s1000sc05_05r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.5, 0.5], ratio=[1, 1])
)

s1000sc06_06r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.6, 0.6], ratio=[1, 1])
)

s1000sc07_07r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.7, 0.7], ratio=[1, 1])
)

s1000sc08_08r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.8, 0.8], ratio=[1, 1])
)

s1000sc09_09r1_1_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[0.9, 0.9], ratio=[1, 1])
)

s1000sc1_1r1_1origin_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[1, 1], ratio=[1, 1])
)

s1000sc10_10r1_1origin_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[10, 10], ratio=[1, 1])
)

s1000sc100_100r1_1origin_data = OxfordIIITPet(
    root="data",
    transform=RandomResizedCrop(size=1000, scale=[100, 100], ratio=[1, 1])
)

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.tight_layout()
    plt.show()

show_images1(data=origin_data, main_title="origin_data")
print()
show_images1(data=s1000sc0_0r1_1origin_data,
             main_title="s1000sc0_0r1_1origin_data")
show_images1(data=s1000sc0_1r1_1_data, main_title="s1000sc0_1r1_1_data")
show_images1(data=s1000sc0_05r1_1_data, main_title="s1000sc0_05r1_1_data")
show_images1(data=s1000sc05_1r1_1_data, main_title="s1000sc05_1r1_1_data")
print()
show_images1(data=s1000sc0_0r1_1origin_data,
             main_title="s1000sc0_0r1_1origin_data")
show_images1(data=s1000sc0001_0001r1_1_data, 
             main_title="s1000sc0001_0001r1_1_data")
show_images1(data=s1000sc001_001r1_1_data, 
             main_title="s1000sc001_001r1_1_data")
show_images1(data=s1000sc01_01r1_1_data, main_title="s1000sc01_01r1_1_data")
show_images1(data=s1000sc02_02r1_1_data, main_title="s1000sc02_02r1_1_data")
show_images1(data=s1000sc03_03r1_1_data, main_title="s1000sc03_03r1_1_data")
show_images1(data=s1000sc04_04r1_1_data, main_title="s1000sc04_04r1_1_data")
show_images1(data=s1000sc05_05r1_1_data, main_title="s1000sc05_05r1_1_data")
show_images1(data=s1000sc06_06r1_1_data, main_title="s1000sc06_06r1_1_data")
show_images1(data=s1000sc07_07r1_1_data, main_title="s1000sc07_07r1_1_data")
show_images1(data=s1000sc08_08r1_1_data, main_title="s1000sc08_08r1_1_data")
show_images1(data=s1000sc09_09r1_1_data, main_title="s1000sc09_09r1_1_data")
show_images1(data=s1000sc1_1r1_1origin_data, 
             main_title="s1000sc1_1r1_1origin_data")
show_images1(data=s1000sc10_10r1_1origin_data,
             main_title="s1000sc10_10r1_1origin_data")
show_images1(data=s1000sc100_100r1_1origin_data,
             main_title="s1000sc100_100r1_1origin_data")

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ 
def show_images2(data, main_title=None, s=None, sc=(0.08, 1),
                 r=(0.75, 1.3333333333333333),
                 ip=InterpolationMode.BILINEAR, a=True):
    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)
            rrc = RandomResizedCrop(size=s, scale=sc,
                                    ratio=r, interpolation=ip,
                                    antialias=a)
            plt.imshow(X=rrc(im))
    else:
         for i, (im, _) in zip(range(1, 6), data):
            plt.subplot(1, 5, i)
            plt.imshow(X=im)
    plt.tight_layout()
    plt.show()

show_images2(data=origin_data, main_title="origin_data")
print()
show_images2(data=origin_data, main_title="s1000sc0_0r1_1origin_data",
             s=1000, sc=[0, 0], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc0_1r1_1_data", s=1000, 
             sc=[0, 1], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc0_05r1_1_data", s=1000,
             sc=[0, 0.5], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc05_1r1_1_data", s=1000,
             sc=[0.5, 1], r=[1, 1])
print()
show_images2(data=origin_data, main_title="s1000sc0_0r1_1origin_data", 
             s=1000, sc=[0, 0], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc0001_0001r1_1_data", 
             s=1000, sc=[0.001, 0.001], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc001_001r1_1_data", 
             s=1000, sc=[0.01, 0.01], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc01_01r1_1_data", 
             s=1000, sc=[0.1, 0.1], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc02_02r1_1_data", 
             s=1000, sc=[0.2, 0.2], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc03_03r1_1_data", 
             s=1000, sc=[0.3, 0.3], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc04_04r1_1_data", 
             s=1000, sc=[0.4, 0.4], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc05_05r1_1_data", 
             s=1000, sc=[0.5, 0.5], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc06_06r1_1_data", 
             s=1000, sc=[0.6, 0.6], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc07_07r1_1_data", 
             s=1000, sc=[0.7, 0.7], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc08_08r1_1_data", 
             s=1000, sc=[0.8, 0.8], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc09_09r1_1_data", 
             s=1000, sc=[0.9, 0.9], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc1_1r1_1origin_data", 
             s=1000, sc=[1, 1], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc10_10r1_1origin_data",
             s=1000, sc=[10, 10], r=[1, 1])
show_images2(data=origin_data, main_title="s1000sc100_100r1_1origin_data",
             s=1000, sc=[100, 100], r=[1, 1])

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description