给我买咖啡☕
*备忘录:
我的帖子解释了randomrotation()。
>
我的帖子解释了randomaffine()。
我的帖子解释了牛津iiitpet()。
> randomperspective()可以对图像进行随机的透视转换,如下所示:
*备忘录:
初始化的第一个参数是distortion_scale(可选默认:0.5型:int或float):
*备忘录:
它可以进行透视转换。
>
必须为0 < = x < = 1。
>初始化的第二个参数为p(可选默认:0.5-type:int或float):
*备忘录:
>是图像是否通过透视转换完成的概率。
必须为0 < = x < = 1。
初始化的第三个参数是插值(可选默认:interpolationmode.binear-type:interpolationmode)。
初始化的第四个参数是填充(可选默认:0型:int,float或tuple/tuple/list(int或float)):
*备忘录:
>它可以更改图像的背景。 *在为图像进行透视转换时,可以看到背景。
>
元组/列表必须是具有1或3个元素的1d。
第一个参数是img(必需类型:pil图像或张量(int)):
*备忘录:
张量必须为2d或3d。
不使用img =。
建议根据v1或v2使用v2?我应该使用哪一个?
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
#
randompers.fill
# 0
origin_data = OxfordIIITPet(
root="data",
transform=None
)
ds0p1origin_data = OxfordIIITPet( # `ds` is distortion_scale.
root="data",
transform=RandomPerspective(distortion_scale=0, p=1)
)
ds01p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.1, p=1)
)
ds02p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.2, p=1)
)
ds03p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.3, p=1)
)
ds04p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.4, p=1)
)
ds05p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.5, p=1)
)
ds06p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.6, p=1)
)
ds07p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.7, p=1)
)
ds08p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.8, p=1)
)
ds09p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=0.9, p=1)
)
ds1p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(distortion_scale=1, p=1)
)
p0_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(p=0)
)
p05_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(p=0.5)
)
p1_data = OxfordIIITPet(
root="data",
transform=RandomPerspective(p=1)
)
p1fgray_data = OxfordIIITPet( # `f` is fill.
root="data",
transform=RandomPerspective(p=1, fill=150)
)
p1fpurple_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")
print()
show_images1(data=ds0p1origin_data, main_title="ds0p1origin_data")
show_images1(data=ds01p1_data, main_title="ds01p1_data")
show_images1(data=ds02p1_data, main_title="ds02p1_data")
show_images1(data=ds03p1_data, main_title="ds03p1_data")
show_images1(data=ds04p1_data, main_title="ds04p1_data")
show_images1(data=ds05p1_data, main_title="ds05p1_data")
show_images1(data=ds06p1_data, main_title="ds06p1_data")
show_images1(data=ds07p1_data, main_title="ds07p1_data")
show_images1(data=ds08p1_data, main_title="ds08p1_data")
show_images1(data=ds09p1_data, main_title="ds09p1_data")
show_images1(data=ds1p1_data, main_title="ds1p1_data")
print()
show_images1(data=p0_data, main_title="p0_data")
show_images1(data=p0_data, main_title="p0_data")
show_images1(data=p0_data, main_title="p0_data")
print()
show_images1(data=p05_data, main_title="p05_data")
show_images1(data=p05_data, main_title="p05_data")
show_images1(data=p05_data, main_title="p05_data")
print()
show_images1(data=p1_data, main_title="p1_data")
show_images1(data=p1_data, main_title="p1_data")
show_images1(data=p1_data, main_title="p1_data")
print()
show_images1(data=p1fgray_data, main_title="p1fgray_data")
show_images1(data=p1fpurple_data, main_title="p1fpurple_data")
# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, ds=0.5, prob=0.5,
ip=InterpolationMode.BILINEAR, 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=ds, p=prob, # Here
interpolation=ip, fill=f)
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", ds=0)
print()
show_images2(data=origin_data, main_title="ds0p1origin_data", ds=0,
prob=1)
show_images2(data=origin_data, main_title="ds01p1_data", ds=0.1, prob=1)
show_images2(data=origin_data, main_title="ds02p1_data", ds=0.2, prob=1)
show_images2(data=origin_data, main_title="ds03p1_data", ds=0.3, prob=1)
show_images2(data=origin_data, main_title="ds04p1_data", ds=0.4, prob=1)
show_images2(data=origin_data, main_title="ds05p1_data", ds=0.5, prob=1)
show_images2(data=origin_data, main_title="ds06p1_data", ds=0.6, prob=1)
show_images2(data=origin_data, main_title="ds07p1_data", ds=0.7, prob=1)
show_images2(data=origin_data, main_title="ds08p1_data", ds=0.8, prob=1)
show_images2(data=origin_data, main_title="ds09p1_data", ds=0.9, prob=1)
show_images2(data=origin_data, main_title="ds1p1_data", ds=1, prob=1)
print()
show_images2(data=origin_data, main_title="p0_data", prob=0)
show_images2(data=origin_data, main_title="p0_data", prob=0)
show_images2(data=origin_data, main_title="p0_data", prob=0)
print()
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
print()
show_images2(data=origin_data, main_title="p1_data", prob=1)
show_images2(data=origin_data, main_title="p1_data", prob=1)
show_images2(data=origin_data, main_title="p1_data", prob=1)
print()
show_images2(data=origin_data, main_title="p1fgray_data", prob=1, f=150)
show_images2(data=origin_data, main_title="p1fpurple_data", prob=1,
f=[160, 32, 240])
