雑食性雑感雑記

知識の整理場。ため込んだ知識をブログ記事として再構築します。

OpenCV画像 + matplotlibグラフを合わせて表示する

OpenCV映像とMatplotlibグラフを一つの画面で表示させてみたい。
というのをやってみました。

経緯

OpenCVで動画を解析し、その結果をMatplotlibで表示してみたものの、
更にそれを一画面で表示してみたくなったので、それをやってみました。

OpenCVでMatplotlibのグラフの表示は出来なさそうなので、
逆で、MatplotlibでOpenCVの映像を表示する形になりました。

技術要素と参照

サンプル

サンプルとして、猫画像集めてきて、画像のヒストグラムを取ってみるものを作成してみました。
ソースコードは github。
github.com

猫画像はVisual Geometry Group - University of Oxfordを使用しています。

実行するとこんな感じ。アニメーションで順次グラフが更新されます。
あとはパディングとかオフセット設定すればきれいに見えるかと。
f:id:kazuki_nagasawa:20181212200205p:plain

まとめとか

  • GridSpec便利。
    • 今までテキトーにMatplotlib使っていたけど、しっかり使うと凄いのが (片鱗だけ) 分かった。
  • 描画コストはそれなりにかかるっぽいので、重い映像の描画には向かないっぽい。
    • そういう意味では、わざわざ表示をくっ付けなくても良いかもしれない。。