Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để chuyển đổi không gian màu RGB sang một không gian màu khác trong Python?

Việc chuyển đổi hình ảnh từ không gian màu này sang không gian màu khác thường được sử dụng để không gian màu mới đạt được có thể chứng minh là đầu vào tốt hơn để thực hiện các thao tác khác trên đó. Điều này bao gồm phân tách màu sắc, độ sáng, mức độ bão hòa, v.v.

Khi một hình ảnh được biểu diễn bằng cách sử dụng biểu diễn RGB, các thuộc tính màu sắc và độ sáng được hiển thị dưới dạng kết hợp tuyến tính của các kênh R, G và B.

Khi một hình ảnh được biểu diễn bằng cách sử dụng biểu diễn HSV (ở đây, H đại diện cho Hue và V đại diện cho Giá trị), RGB được coi là một kênh duy nhất.

Dưới đây là ví dụ để chuyển đổi không gian màu RGB sang HSV -

Ví dụ

import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2hsv
path = "path to puppy_1.JPG"
img = io.imread(path)
rgb_img = img
hsv_img = rgb2hsv(rgb_img)
value_img = hsv_img[:, :, 2]
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(8, 2))
ax0.imshow(rgb_img)
ax0.set_title("Original image")
ax0.axis('off')
ax1.imshow(value_img)
ax1.set_title("Image converted to HSV channel")
ax1.axis('off')
fig.tight_layout()

Đầu ra

Làm cách nào để chuyển đổi không gian màu RGB sang một không gian màu khác trong Python?

Giải thích

  • Các thư viện bắt buộc đã được nhập.
  • Đường dẫn nơi lưu trữ hình ảnh được xác định.
  • Hàm "imread" được sử dụng để truy cập đường dẫn và đọc hình ảnh.
  • Chức năng 'imshow' được sử dụng để hiển thị hình ảnh trên bảng điều khiển.
  • Hàm 'rgb2hsv' được sử dụng để chuyển đổi hình ảnh từ không gian màu RGB sang không gian màu HSV.
  • Thư viện matplotlib được sử dụng để vẽ dữ liệu này và hiển thị hình ảnh gốc và hình ảnh sau khi được chuyển đổi sang không gian màu HSV.
  • Điều này được hiển thị trên bảng điều khiển.