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

Làm cách nào để sử dụng scikit-learning để chuyển đổi hình ảnh từ RGB sang thang độ xám trong Python?

Scikit-learning, thường được gọi là sklearn là một thư viện bằng Python được sử dụng cho mục đích triển khai các thuật toán học máy.

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ó không gian màu RGB được cố gắng chuyển đổi sang thang độ xám, các giá trị pixel được tính bằng tổng trọng số của các pixel màu đỏ, xanh lục và xanh lam. Phương trình đã được hiển thị bên dưới -

Y = 0.2125 R + 0.7154 G + 0.0721 B

Các trọng lượng này được cung cấp cụ thể, vì chúng được sử dụng bởi các phốt pho CRT thể hiện nhận thức của con người về các màu đỏ, xanh lục và xanh lam tốt hơn so với việc cung cấp các trọng lượng bằng nhau cho cả ba giá trị.

Hãy để chúng tôi xem cách một hình ảnh RGB có thể được chuyển đổi thành hình ảnh thang độ xám -

Ví dụ

from skimage import io
import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2gray
from skimage import data
path = "path to puppy_1.JPG"
orig_img = io.imread(path)
grayscale_img = rgb2gray(orig_img)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()
ax[0].imshow(orig_img)
ax[0].set_title("Original image")
ax[1].imshow(grayscale_img, cmap=plt.cm.gray)
ax[1].set_title("Grayscale image")
fig.tight_layout()
plt.show()

Đầu ra

Làm cách nào để sử dụng scikit-learning để chuyển đổi hình ảnh từ RGB sang thang độ xám 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 'rgb2gray' được sử dụng để chuyển đổi hình ảnh từ không gian màu RGB sang không gian màu thang độ xám.
  • 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 thang độ xám.
  • Điều này được hiển thị trên bảng điều khiển.