*Memos:
- My post explains ColorJitter() about
contrast
argument. - My post explains ColorJitter() about
saturation
argument. - My post explains ColorJitter() about
hue
argument. - My post explains OxfordIIITPet().
ColorJitter() can randomly change the brightness, contrast, saturation and hue of an image as shown below. *It's about brightness
argument:
*Memos:
- The 1st argument for initialization is
brightness
(Optional-Default:None
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It's the range of the brightness
[min, max]
so it must bemin <= max
. - It must be
0 <= x
. - A tuple/list must be the 1D with 2 elements.
- A single value means
[max(0, 1-brightness), 1+brightness]
.
- It's the range of the brightness
- The 2nd argument for initialization is
contrast
(Optional-Default:None
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It's the range of the contrast
[min, max]
so it must bemin <= max
. - It must be
0 <= x
. - A tuple/list must be the 1D with 2 elements.
- A single value means
[max(0, 1-contrast), 1+contrast]
.
- It's the range of the contrast
- The 3rd argument for initialization is
saturation
(Optional-Default:None
-Type:int
,float
ortuple
/list
(int
orfloat
)): *Memos:- It's the range of the saturation
[min, max]
so it must bemin <= max
. - It must be
0 <= x
. - A tuple/list must be the 1D with 2 elements.
- A single value means
[max(0, 1-saturation), 1+saturation]
.
- It's the range of the saturation
- The 4th argument for initialization is
hue
(Optional-Default:None
-Type:float
ortuple
/list
(float
)): *Memos:- It's the range of the hue
[min, max]
so it must bemin <= max
. - It must be
-0.5 <= x <= 0.5
. - A tuple or list must be the 1D with 2 elements.
- A single value means
[-hue, +hue]
.
- It's the range of the hue
- The 1st argument is
img
(Required-Type:PIL Image
ortensor
(int
/float
/complex
/bool
)): *Memos:- A tensor must be 0D or more D.
- Don't use
img=
.
-
v2
is recommended to use according to V1 or V2? Which one should I use?.
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import ColorJitter cj = ColorJitter() cj = ColorJitter(brightness=None, contrast=None, saturation=None, hue=None) cj = ColorJitter(brightness=0, contrast=0, saturation=0, hue=0) cj = transform=ColorJitter(brightness=[1, 1], contrast=[1, 1], saturation=[1, 1], hue=[0, 0]) cj # ColorJitter() print(cj.brightness) # None print(cj.contrast) # None print(cj.saturation) # None print(cj.hue) # None origin_data = OxfordIIITPet( root="data", transform=None ) brightness1_1origin_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[1, 1]) # transform=ColorJitter(brightness=0) # transform=ColorJitter(brightness=None) ) brightness0_5_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0, 5]) # transform=ColorJitter(brightness=4) ) brightness0_1_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0, 1]) ) brightness1_5_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[1, 5]) ) brightness08_08_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0.8, 0.8]) ) brightness06_06_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0.6, 0.6]) ) brightness04_04_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0.4, 0.4]) ) brightness02_02_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0.2, 0.2]) ) brightness0_0_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[0, 0]) ) brightness2_2_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[2, 2]) ) brightness4_4_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[4, 4]) ) brightness8_8_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[8, 8]) ) brightness16_16_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[16, 16]) ) brightness50_50_data = OxfordIIITPet( root="data", transform=ColorJitter(brightness=[50, 50]) ) 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=brightness1_1origin_data, main_title="brightness1_1origin_data") show_images1(data=brightness0_5_data, main_title="brightness0_5_data") show_images1(data=brightness0_1_data, main_title="brightness0_1_data") show_images1(data=brightness1_5_data, main_title="brightness1_5_data") print() show_images1(data=brightness1_1origin_data, main_title="brightness1_1origin_data") show_images1(data=brightness08_08_data, main_title="brightness08_08_data") show_images1(data=brightness06_06_data, main_title="brightness06_06_data") show_images1(data=brightness04_04_data, main_title="brightness04_04_data") show_images1(data=brightness02_02_data, main_title="brightness02_02_data") show_images1(data=brightness0_0_data, main_title="brightness0_0_data") print() show_images1(data=brightness1_1origin_data, main_title="brightness1_1origin_data") show_images1(data=brightness2_2_data, main_title="brightness2_2_data") show_images1(data=brightness4_4_data, main_title="brightness4_4_data") show_images1(data=brightness8_8_data, main_title="brightness8_8_data") show_images1(data=brightness16_16_data, main_title="brightness16_16_data") show_images1(data=brightness50_50_data, main_title="brightness50_50_data") # ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓ def show_images2(data, main_title=None, b=None, c=None, s=None, h=None): 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) cj = ColorJitter(brightness=b, contrast=c, saturation=s, hue=h) plt.imshow(X=cj(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="brightness1_1origin_data", b=[1, 1]) show_images2(data=origin_data, main_title="brightness0_5_data", b=[0, 5]) # ↑ show_images2(data=origin_data, main_title="brightness4_data", b=4) show_images2(data=origin_data, main_title="brightness0_1_data", b=[0, 1]) show_images2(data=origin_data, main_title="brightness1_5_data", b=[1, 5]) print() show_images2(data=origin_data, main_title="brightness1_1origin_data", b=[1, 1]) show_images2(data=origin_data, main_title="brightness08_08_data", b=[0.8, 0.8]) show_images2(data=origin_data, main_title="brightness06_06_data", b=[0.6, 0.6]) show_images2(data=origin_data, main_title="brightness04_04_data", b=[0.4, 0.4]) show_images2(data=origin_data, main_title="brightness02_02_data", b=[0.2, 0.2]) show_images2(data=origin_data, main_title="brightness0_0_data", b=[0, 0]) print() show_images2(data=origin_data, main_title="brightness1_1origin_data", b=[1, 1]) show_images2(data=origin_data, main_title="brightness2_2_data", b=[2, 2]) show_images2(data=origin_data, main_title="brightness4_4_data", b=[4, 4]) show_images2(data=origin_data, main_title="brightness8_8_data", b=[8, 8]) show_images2(data=origin_data, main_title="brightness16_16_data", b=[16, 16]) show_images2(data=origin_data, main_title="brightness50_50_data", b=[50, 50])
Top comments (0)