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 |