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

Làm thế nào để hiển thị một hình ảnh trong Matplotlib với các màu khác nhau với các kênh khác nhau?

Để cắt hình ảnh thành các kênh Đỏ, Xanh lục và Xanh lam bằng misc.imread, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Đọc hình ảnh từ một tệp vào một mảng.
  • Tạo danh sách các bản đồ màu và tiêu đề.
  • Tạo một hình và một tập hợp các tình huống phụ.
  • Zip các trục, hình ảnh, tiêu đề và bản đồ màu.
  • Lặp lại các đối tượng đã nén và đặt tiêu đề của từng hình ảnh kênh.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

image = plt.imread('bird.png')
titles = ['With red channel', 'With green channel', 'With blue channel']
cmaps = [plt.cm.Reds_r, plt.cm.Greens_r, plt.cm.Blues_r]

fig, axes = plt.subplots(1, 3)
objs = zip(axes, (image, *image.transpose(2, 0, 1)), titles, cmaps)

for ax, channel, title, cmap in objs:
   ax.imshow(channel, cmap=cmap)
   ax.set_title(title)
   ax.set_xticks(())
   ax.set_yticks(())

plt.show()

Hình ảnh đầu vào

Làm thế nào để hiển thị một hình ảnh trong Matplotlib với các màu khác nhau với các kênh khác nhau? Làm thế nào để hiển thị một hình ảnh trong Matplotlib với các màu khác nhau với các kênh khác nhau?

Hình ảnh đầu ra

Làm thế nào để hiển thị một hình ảnh trong Matplotlib với các màu khác nhau với các kênh khác nhau? Làm thế nào để hiển thị một hình ảnh trong Matplotlib với các màu khác nhau với các kênh khác nhau?