Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách chuyển đổi không gian màu RGB sang HSV trong Python

Không gian màu HSV (Hue, Saturation, Value) tách biệt màu sắc (Hue) khỏi độ sáng (Value) và độ bão hòa (Saturation), thuận tiện cho phân đoạn màu, điều chỉnh sáng.

Chuyển RGB → HSV với scikit-image


import matplotlib.pyplot as plt
from skimage import io, color

path = "path/to/puppy_1.JPG"
img = io.imread(path)
rgb_img = img
hsv_img = color.rgb2hsv(rgb_img)

# Kênh Value (độ sáng) là hsv_img[:,:,2]
value_img = hsv_img[:, :, 2]

fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(8, 2))
ax0.imshow(rgb_img); ax0.set_title("Ảnh gốc RGB"); ax0.axis('off')
ax1.imshow(value_img); ax1.set_title("Kênh Value (HSV)"); ax1.axis('off')
fig.tight_layout()
plt.show()

Giải thích các kênh HSV

  • H (Hue): màu sắc (0-1 tương ứng 0-360°).
  • S (Saturation): độ bão hòa (0: xám, 1: màu thuần).
  • V (Value): độ sáng (0: đen, 1: sáng nhất).

Ứng dụng

  • Phân đoạn màu: ngưỡng trên kênh H.
  • Điều chỉnh sáng: sửa kênh V, chuyển ngược RGB.
  • Tăng độ bão hòa: nhân kênh S.