この記事について
Jupyter Notebook
にて、OpenCV
を使って画像を読み込み、それをmatplotlib
で表示します。
環境
- Ubuntu 22.04 on WSL2
-
conda
24.3.0-
opencv
4.9.0 -
matplotlib
3.8.3
-
やり方
カラー画像として出力する場合
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread("./fuga.jpg")
# BGR -> RGBへ変換
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
plt.show()
注意点として、cv.imread()
ではBRGの順番で色を保持する一方、plt.imshow()
にはRGBの順番の配列を渡さなければいけないため、cv.cvtColor()
を使ってBRG->RGBの変換を行っています。
(参考:imread() | OpenCV)
白黒画像として出力する場合
import cv2 as cv
import matplotlib.pyplot as plt
img = cv.imread("./fuga.jpg")
# BGR -> RGBへ変換
# imshowのカラーマップに'gray'を指定
plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2GRAY), cmap='gray', vmin=0, vmax=255)
plt.show()
今回は、cv.imread()
で読んだRGBをグレースケールに変換するため、cv.COLOR_BGR2GRAY
を指定してcvtColorします。
さらに、plt.imshow()
のカラーマップに'gray'
を指定し、vmin
とvmax
も指定します。
(参考:matplotlib公式ドキュメント)