Mengapa Imej Skala Kelabu Saya Muncul Dengan Peta Warna Apabila Menggunakan Matplotlib?

DDD
Lepaskan: 2024-10-27 10:11:03
asal
1008 orang telah melayarinya

Why Does My Grayscale Image Appear With a Colormap When Using 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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!