Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Imej Skala Kelabu Saya Muncul Dengan Peta Warna Apabila Menggunakan Matplotlib?
Memaparkan Imej sebagai Skala Kelabu dengan Matplotlib
Apabila bekerja dengan imej menggunakan matplotlib.pyplot.imshow(), menukarnya kepada skala kelabu adalah penting untuk menindih elemen dengan warna. Untuk memudahkan penukaran ini, fungsi Image.open().convert("L") PIL biasanya digunakan.
Masalah
Walaupun menggunakan PIL untuk menukar imej kepada skala kelabu, memaparkannya dengan matplotlib.pyplot.imshow() menghasilkan imej yang muncul dengan peta warna dan bukannya skala kelabu sebenar.
Penyelesaian
Untuk menyelesaikan isu ini, ia adalah penting untuk menentukan hujah colormap apabila memanggil matplotlib.pyplot.imshow(). Secara lalai, matplotlib memilih peta warna yang mungkin memperkenalkan warna ke dalam imej. Untuk memastikan perwakilan skala kelabu, tetapkan cmap='gray' dan tentukan julat nilai kelabu secara eksplisit menggunakan vmin=0 dan vmax=255.
Kod Contoh
Kod berikut coretan menunjukkan cara untuk memuatkan imej, menukarnya kepada skala kelabu dan memaparkannya:
<code class="python">import numpy as np import matplotlib.pyplot as plt from PIL import Image fname = 'image.png' image = Image.open(fname).convert("L") arr = np.asarray(image) plt.imshow(arr, cmap='gray', vmin=0, vmax=255) plt.show()</code>
Sebagai alternatif, jika anda lebih suka perwakilan skala kelabu songsang, ubah suai argumen cmap kepada 'gray_r'.
Atas ialah kandungan terperinci Mengapa Imej Skala Kelabu Saya Muncul Dengan Peta Warna Apabila Menggunakan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!