この記事について
Jupyter Notebookにて、OpenCVを使って画像を読み込み、それをmatplotlibで表示します。
環境
- Ubuntu 22.04 on WSL2
-
conda24.3.0-
opencv4.9.0 -
matplotlib3.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公式ドキュメント)