MatplotlibのimshowでRGBデータを表示

  • imshowは2Dデータだけでなく,RGBデータを含む(H, W, CH)のデータを表示することができる。
  • その際に,floatかintかによって,値の範囲が異なるようだ(調べきれていないので自信が無いけど)
  • float32のときは,[0,1]の実数値,int32などの整数値のときは[0,255]の256値でやるとうまく行く。
  • vmin, vmaxを設定してもうまく認識されなかった。
# uintの場合
import numpy as np
import matplotlib.pyplot as plt
img = np.array([ [[255,0,0], [0, 255,0], [0, 0, 255]],
                 [[255,255,0], [0, 255,255], [255, 0, 255]],
                 [[0,0,0], [128, 255,128], [255, 255, 255]]])
plt.imshow(img, vmin=0, vmax=255, interpolation='none')
plt.show()

f:id:nobUnaga:20180612234017p:plain

# floatの場合
import numpy as np
import matplotlib.pyplot as plt
img = np.random.randint(0, 2, (5,5,3)).astype(np.float32)
plt.imshow(img, vmin=0, vmax=1, interpolation='none')
plt.show()

f:id:nobUnaga:20180612234009p:plain