PythonでOpenCVの画像データをMatplotlibで表示する
PythonのOpenCV(cv2)モジュールの画像データを、Matplotlibのpyplotで表示してみます。
OpenCV形式のデータをMatplotlibで表示できるように変換する手順
PythonのOpenCV(cv2)は画像データをndarrayとして扱います。Matplotlibもndarrayを画像として表示する機能があります。
ということは、pyplotでさくっと表示できるんじゃね。
ということで試してみます。
プロ生ちゃん の画像をcv2で読み込んで、pyplotで表示します。
元画像はこちらです。
こんなコードにしてみました。
import cv2
from matplotlib import pyplot as plt
im = cv2.imread('original.png', cv2.IMREAD_COLOR)
plt.imshow(im)
plt.show()
こんな感じに
あれ、調子悪い?
ndarrayの中のカラー情報の並びが異なるためにこうなります。OpenCV(cv2)はBGRで、MatplotlibはRGBなんですね。だから、赤っぽい色が青っぽく表示されます。
cvtColorを使ってBGRからRGBに変換できます。
dst = cv2.cvtColor(src, code)
変数 |
型 |
内容 |
---|---|---|
src |
ndarray |
変換元の画像データ。 |
code |
変換コード。COLOR_BGR2RGB。 |
|
dst |
ndarray |
変換後の画像データ。 |
ではcvtColorを追加してみましょう。
import cv2
from matplotlib import pyplot as plt
im = cv2.imread('original.png', cv2.IMREAD_COLOR)
im_rgb = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
plt.imshow(im_rgb)
plt.show()
はい、正しく表示されました。
公開日
広告
Pythonで画像処理カテゴリの投稿
- Python (Pillow)でグラデーション画像を作る
- PythonでGIFアニメを作る(PILでファイルをつなげる編)
- PythonでOpenCVの画像データをMatplotlibで表示する
- PythonでPDFを画像に変換する(Windows10)
- PythonでPSDファイルをJPEGやPNGに変換する
- Pythonでカラー画像をグレイスケールに変換する(OpenCV編)
- Pythonでフォルダ内に同じ画像がないか検索してみた
- Pythonでマスク画像を作る方法(3選)
- Pythonで図形の外接矩形を描く(OpenCV編)
- Pythonで図形の輪郭の大きさを調べる(OpenCV編)
- Pythonで画像の余白を削除する(OpenCV編)
- Pythonで画像の余白を削除する(Pillow編)
- Pythonで画像の大きさやフォーマットを調べる(Pillow編)
- Pythonで画像の減色をする
- Pythonで画像をトリミングする(Pillow編)
- Pythonで画像を他の画像にペーストする(Pillow編)
- Pythonで画像を回転する(Pillow編)
- Pythonで画像を拡大縮小(リサイズ)する(Pillow編)
- Pythonで画像を読み込み、表示し、保存する(OpenCV編)
- Pythonで画像を読み込み、表示し、保存する(Pillow編)
- Pythonで画像を2値化する(OpenCV編)
- Pythonで記号の輪郭を検出する(OpenCV編)
- PythonとOpenCVで画像をグレースケールに変換してみた
- PythonとOpenCVで画像をネガポジ反転してみた