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.