This content originally appeared on DEV Community and was authored by Super Kai (Kazuya Ito)
ColorJitter() can randomly change the brightness, contrast, saturation and hue of an image as shown below:
*Memos:
- The 1st argument for initialization is
brightness
(Optional-Default:0
-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:0
-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:0
-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:0
-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
)): *Memos:- A tensor must be 2D or 3D.
- 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
colorjitter = ColorJitter()
colorjitter = ColorJitter(brightness=0,
contrast=0,
saturation=0,
hue=0)
colorjitter = transform=ColorJitter(brightness=[1, 1]),
contrast=[1, 1],
saturation=[1, 1],
hue=[0, 0])
colorjitter
# ColorJitter()
print(colorjitter.brightness)
# None
print(colorjitter.contrast)
# None
print(colorjitter.saturation)
# None
print(colorjitter.hue)
# None
origin_data = OxfordIIITPet(
root="data",
transform=None
# transform=ColorJitter()
# colorjitter = ColorJitter(brightness=0,
# contrast=0,
# saturation=0,
# hue=0)
# transform=ColorJitter(brightness=[1, 1]),
# contrast=[1, 1],
# saturation=[1, 1],
# hue=[0, 0])
)
brightp2_data = OxfordIIITPet( # `bright` is brightness and `p` is plus.
root="data",
transform=ColorJitter(brightness=2)
# transform=ColorJitter(brightness=[0, 3])
)
brightp2p2_data = OxfordIIITPet(
root="data",
transform=ColorJitter(brightness=[2, 2])
)
brightp05p05_data = OxfordIIITPet(
root="data",
transform=ColorJitter(brightness=[0.5, 0.5])
)
contrap2_data = OxfordIIITPet( # `contra` is contrast.
root="data",
transform=ColorJitter(contrast=2)
# transform=ColorJitter(contrast=[0, 3])
)
contrap2p2_data = OxfordIIITPet(
root="data",
transform=ColorJitter(contrast=[2, 2])
)
contrap05p05_data = OxfordIIITPet(
root="data",
transform=ColorJitter(contrast=[0.5, 0.5])
)
saturap2_data = OxfordIIITPet( # `satura` is saturation.
root="data",
transform=ColorJitter(saturation=2)
# transform=ColorJitter(saturation=[0, 3])
)
saturap2p2_data = OxfordIIITPet(
root="data",
transform=ColorJitter(saturation=[2, 2])
)
saturap05p05_data = OxfordIIITPet(
root="data",
transform=ColorJitter(saturation=[0.5, 0.5])
)
huep05_data = OxfordIIITPet(
root="data",
transform=ColorJitter(hue=0.5)
# transform=ColorJitter(hue=[-0.5, 0.5])
)
huep025p025_data = OxfordIIITPet( # `m` is minus.
root="data",
transform=ColorJitter(hue=[0.25, 0.25])
)
huem025m025_data = OxfordIIITPet( # `m` is minus.
root="data",
transform=ColorJitter(hue=[-0.25, -0.25])
)
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")
show_images1(data=brightp2_data, main_title="brightp2_data")
show_images1(data=brightp2p2_data, main_title="brightp2p2_data")
show_images1(data=brightp05p05_data, main_title="brightp05p05_data")
print()
show_images1(data=origin_data, main_title="origin_data")
show_images1(data=contrap2_data, main_title="contrap2_data")
show_images1(data=contrap2p2_data, main_title="contrap2p2_data")
show_images1(data=contrap05p05_data, main_title="contrap05p05_data")
print()
show_images1(data=origin_data, main_title="origin_data")
show_images1(data=saturap2_data, main_title="saturap2_data")
show_images1(data=saturap2p2_data, main_title="saturap2p2_data")
show_images1(data=saturap05p05_data, main_title="saturap05p05_data")
print()
show_images1(data=origin_data, main_title="origin_data")
show_images1(data=huep05_data, main_title="huep05_data")
show_images1(data=huep025p025_data, main_title="huep025p025_data")
show_images1(data=huem025m025_data, main_title="huem025m025_data")
# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, b=0, c=0, s=0, h=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)
cj = ColorJitter(brightness=b, contrast=c, # Here
saturation=s, hue=h)
plt.imshow(X=cj(im)) # Here
plt.xticks(ticks=[])
plt.yticks(ticks=[])
plt.tight_layout()
plt.show()
show_images2(data=my_data, main_title="origin_data")
show_images2(data=my_data, main_title="brightp2_data", b=2)
show_images2(data=my_data, main_title="brightp2p2_data", b=[2, 2])
show_images2(data=my_data, main_title="brightp05p05_data", b=[0.5, 0.5])
print()
show_images2(data=my_data, main_title="origin_data")
show_images2(data=my_data, main_title="contrap2_data", c=2)
show_images2(data=my_data, main_title="contrap2p2_data", c=[2, 2])
show_images2(data=my_data, main_title="contrap05p05_data", c=[0.5, 0.5])
print()
show_images2(data=my_data, main_title="origin_data")
show_images2(data=my_data, main_title="saturap2_data", s=2)
show_images2(data=my_data, main_title="saturap2p2_data", s=[2, 2])
show_images2(data=my_data, main_title="saturap05p05_data", s=[0.5, 0.5])
print()
show_images2(data=my_data, main_title="origin_data")
show_images2(data=my_data, main_title="huep05_data", h=0.5)
show_images2(data=my_data, main_title="huep025p025_data", h=[0.25, 0.25])
show_images2(data=my_data, main_title="huem025m025_data", h=[-0.25, -0.25])
This content originally appeared on DEV Community and was authored by Super Kai (Kazuya Ito)
Print
Share
Comment
Cite
Upload
Translate
Updates
There are no updates yet.
Click the Upload button above to add an update.

APA
MLA
Super Kai (Kazuya Ito) | Sciencx (2025-01-29T03:26:18+00:00) ColorJitter in PyTorch. Retrieved from https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/
" » ColorJitter in PyTorch." Super Kai (Kazuya Ito) | Sciencx - Wednesday January 29, 2025, https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/
HARVARDSuper Kai (Kazuya Ito) | Sciencx Wednesday January 29, 2025 » ColorJitter in PyTorch., viewed ,<https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/>
VANCOUVERSuper Kai (Kazuya Ito) | Sciencx - » ColorJitter in PyTorch. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/
CHICAGO" » ColorJitter in PyTorch." Super Kai (Kazuya Ito) | Sciencx - Accessed . https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/
IEEE" » ColorJitter in PyTorch." Super Kai (Kazuya Ito) | Sciencx [Online]. Available: https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/. [Accessed: ]
rf:citation » ColorJitter in PyTorch | Super Kai (Kazuya Ito) | Sciencx | https://www.scien.cx/2025/01/29/colorjitter-in-pytorch/ |
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.