Saya mencoba untuk menampilkan gambar grayscale menggunakan matplotlib.pyplot.imshow () . Masalah saya adalah bahwa gambar grayscale ditampilkan sebagai colormap. Saya perlu skala abu-abu karena saya ingin menggambar di atas gambar dengan warna.
Saya membaca gambar dan mengkonversi ke skala abu-abu menggunakan Image.open PIL (). Convert ("L")
image = Image.open(file).convert("L")
Lalu saya mengonversi gambar ke matriks sehingga saya dapat dengan mudah melakukan pemrosesan gambar menggunakan
matrix = scipy.misc.fromimage(image, 0)
Namun, ketika saya melakukannya
figure()
matplotlib.pyplot.imshow(matrix)
show()
ini menampilkan gambar menggunakan colormap (artinya bukan skala abu-abu).
Apa yang saya lakukan salah di sini?
sumber
_r
."plt.imshow(im_gray,cmap='gray', vmin = 0, vmax = 255)
Cobalah menggunakan colormap grayscale?
Misalnya sesuatu
Untuk daftar colormaps, lihat http://scipy-cookbook.readthedocs.org/items/Matplotlib_Show_colormaps.html
sumber
import matplotlib.pyplot as plt
Anda juga dapat menjalankan satu kali dalam kode Anda
Ini akan menampilkan gambar dalam skala abu-abu sebagai standar
sumber
gray()
ataugrey()
?gray
... abu-abu adalah ejaan standar Amerika dan abu-abu adalah ejaan Inggris untuk warna yang sama.Saya akan menggunakan metode get_cmap. Ex.:
sumber
@ Jawaban unutbu cukup dekat dengan jawaban yang benar.
Secara default, plt.imshow () akan mencoba menskala data array (MxN) Anda menjadi 0,0 ~ 1.0. Dan kemudian memetakan ke 0 ~ 255. Untuk sebagian besar gambar yang diambil secara alami, ini bagus, Anda tidak akan melihat yang berbeda. Tetapi jika Anda memiliki kisaran sempit nilai gambar piksel, misalkan piksel min adalah 156 dan piksel maks adalah 234. Gambar abu-abu akan terlihat benar-benar salah. Cara yang tepat untuk menampilkan gambar berwarna abu-abu adalah
Mari kita lihat sebuah contoh:
ini adalah gambar asli : asli
ini menggunakan pengaturan norma defaul, yaitu None: salah pic
ini menggunakan pengaturan NoNorm, yaitu NoNorm (): gambar kanan
sumber
coba ini:
sumber
pylab.grey()
, mungkin sudah dihapus?Gunakan tanpa interpolasi dan atur menjadi abu-abu.
sumber