LoginSignup
27
22

More than 3 years have passed since last update.

[matplotlib]グレースケール画像の表示

Last updated at Posted at 2019-06-08

グレースケール画像をmatplotlibを用いて表示する.

グレースケール画像をmatplotlibを用いて表示することにやや苦戦した. その方法を示したい. oepnCVの公式サイト(http://opencv.jp/opencv-2.1/cpp/reading_and_writing_images_and_video.html)
を見ると, imreadの2番目の引数にint型の整数を指定することで, 画像のカラータイプを指定できることがわかる. そして, その中で, 0を指定してグレースケール画像を表示させたい場合を考える. そこで, 私は以下のようなコードを記述した.

import cv2
from matplotlib import pyplot as plt

test_image = cv2.imread("pasta.jpg", 0) #グレースケール画像として読み込む.
plt.imshow(test_image)
plt.show()

この出力結果は以下である. 明らかにグレースケール画像ではない.
Fault.png

解決策

この原因は筆者も不明(おそらく正規化が関係するはず)であるが, グレースケール画像を表示するという目的を達成するための解決策として, 以下の2つがある.

解決策1
import cv2
from matplotlib import pyplot as plt

test_image = cv2.imread("pasta.jpg", 0) #グレースケール画像として読み込む.
plt.imshow(test_image, cmap = "gray")
plt.show()
解決策2
import cv2
from matplotlib import pyplot as plt

test_image = cv2.imread("pasta.jpg", 0) #グレースケール画像として読み込む.
plt.imshow(test_image)
plt.gray()
plt.show()

上記のコードを用いた結果は以下である.
Success.png

その他

2019年 8月25日 時点
解決策2のコードを以下のように訂正させていただきました.
[訂正前]camp
[訂正後]cmap

参考文献

[1]http://programming.blogo.jp/python/matplotlib/grayscale_image_opencv
[2]http://takacity.blog.fc2.com/blog-entry-142.html
[3]https://stackoverflow.com/questions/3823752/display-image-as-grayscale-using-matplotlib

27
22
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
22