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!