Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Imej Skala Kelabu Saya Muncul dalam Warna Apabila Menggunakan imshow() Matplotlib?

Mengapa Imej Skala Kelabu Saya Muncul dalam Warna Apabila Menggunakan imshow() Matplotlib?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 06:18:29180semak imbas

Why Does My Grayscale Image Appear in Color When Using Matplotlib's imshow()?

Menyelesaikan Isu Paparan untuk Imej Skala Kelabu dalam Matplotlib

Dalam percubaan untuk memaparkan imej skala kelabu menggunakan imshow Matplotlib(), anda telah menemui situasi di mana imej muncul sebagai peta warna sebaliknya. Ini boleh mengecewakan apabila objektif anda adalah untuk melukis di atas imej dengan warna.

Penyelesaian

Percanggahan timbul kerana fungsi imshow() memberikan peta warna kepada imej secara lalai. Untuk membetulkan ini, nyatakan secara eksplisit argumen cmap dan tetapkannya kepada 'kelabu' atau 'gray_r' untuk memaparkan skala kelabu atau songsang skala kelabu, masing-masing:

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

# Open and convert the image to grayscale
fname = 'image.png'
image = Image.open(fname).convert("L")

# Convert the image to a matrix
arr = np.asarray(image)

# Display the grayscale image
plt.imshow(arr, cmap='gray', vmin=0, vmax=255) # Use 'gray_r' for inverse grayscale
plt.show()</code>

Seperti yang ditunjukkan oleh kod yang diubah suai ini, menyatakan peta warna memastikan bahawa imej dipaparkan dengan betul sebagai skala kelabu. Anda kini boleh meneruskan tugasan anda untuk melukis di atas imej dengan warna.

Atas ialah kandungan terperinci Mengapa Imej Skala Kelabu Saya Muncul dalam Warna Apabila Menggunakan imshow() Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn