標籤:

matplotlib.pyplot.imshow如何顯示灰度圖?

我的圖像數據是numpy.array格式的二維圖像,用以下代碼:

fig = plt.figure()

ax = fig.add_subplot(111)

ax.imshow(visu_base)

plt.show()

顯示出來的是彩色圖像。但是如何顯示灰度圖像?


我寫了一個常式,可以跑起來對比一下:

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

img = Image.open("lena.jpg")
img = np.array(img)
if img.ndim == 3:
img = img[:,:,0]
plt.subplot(221); plt.imshow(img)
plt.subplot(222); plt.imshow(img, cmap ="gray")
plt.subplot(223); plt.imshow(img, cmap = plt.cm.gray)
plt.subplot(224); plt.imshow(img, cmap = plt.cm.gray_r)
plt.show()


import matplotlib as mpl

cmap = mpl.cm.gray_r

norm = mpl.colors.Normalize(vmin=0)

plt.imshow(pdata,cmap=cmap)


import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

#其中row_ins_rect是numpy.ndarray二維數組
#我是從pandas的DataFrame中取出來的,所以上面導了4個包
fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax1.imshow(row_ins_rect, cmap=plt.cm.gray)
ax2 = fig.add_subplot(1,2,2)
ax2.imshow(row_ins_rect, cmap=plt.cm.gray_r)
plt.show()

#或者:
implot = plt.imshow(row_ins_rect, cmap="gray")#選一個漂亮的顏色
plt.show()

#cmap可以取多種不同的參數

參考鏈接:color example code: colormaps_reference.py


個人覺得顯示灰度圖的話可以強行選擇cmap顯示

關鍵重要的是,程序內部的需要格式為gray的話,array.shape把最後的維度變成1比較有用

可以討論下常用的從3變到1的demo....(渣渣膜拜學習)

看大神的code是np.sum降維度

自己覺得好用的是dataset整體resize,需要降維的都提前處理好


推薦閱讀:

matplotlib圖例中文亂碼?
python matplotlib中axes與axis的區別?
Matplotlib 如何畫散點圖的圖例?
如何用簡單的演算法生成一個類似『光碟』的彩色圓形圖片?

TAG:Python | Matplotlib |