Matplotlibで描画したグラフをOpenCVでARマーカーにマッピング
MatplotlibのグラフでAR
Matplotlibで描画したグラフをOpenCVでARマーカーにマッピングすることができました。
デモ
02_matplot2d_no-transparency.py
のデモ
Matplotlibの2DグラフをARマーカーにマッピングしています。
03_matplot3d_no-transparency.py
のデモ
Matplotlibの3DグラフをARマーカーにマッピングしています。マーカーの傾きに合わせて3Dグラフの視点を変更しています。
04_matplot3d_transparency.py
のデモ
Matplotlibの3DグラフをARマーカーにマッピングしています。マーカーの傾きに合わせて3Dグラフの視点を変更しています。03_matplot3d_no-transparency.py
にはない透過処理を追加しています。
プログラムソース
ソースはgithubにおきました。
実行環境
Windows11環境でPython3.9です。
Windowsパソコンにはカメラデバイスを接続しています。
C:\>ver
Microsoft Windows [Version 10.0.22000.978]
PS C:\> python --version
Python 3.9.5
セットアップ
以下コマンドで必要モジュールをインストールします。
pip install -r requirements.txt
動かす
Step01.入力画像にMatplotlibの2Dグラフをマッピングする
入力画像(sample.png)のARマーカーにMatplotlibの2Dグラフをマッピングし、その結果を出力画像(out-sample.png)として出力します。
実行コマンド
python 01_matplot2D_NotCamera.py
Step02.カメラ映像内のARマーカーにMatplotlibの2Dグラフをマッピング
カメラ映像内のARマーカーにMatplotlibの2Dグラフをマッピングします。
実行コマンド
python 02_matplot2d_no-transparency.py
qキーで終了します。
Step03.カメラ映像内のARマーカーにMatplotlibの3Dグラフのマッピング
カメラ映像内のARマーカーにMatplotlibの3Dグラフをマッピングします。
実行コマンド
python 03_matplot3d_no-transparency.py
qキーで終了します。
Step04.カメラ映像内のARマーカーに透過処理を施したMatplotlibの3Dグラフのマッピング
概要
カメラ映像内のARマーカーにMatplotlibの3Dグラフをマッピングします。
透過処理により3Dグラフの背景を透明にします。
実行コマンド
python 04_matplot3d_transparency.py
qキーで終了します。
おまけ
実行環境をDocker化しました。
ただし、Windows環境ではカメラデバイスを認識できないので01_matplot2D_NotCamera.pyのみ動作します。
(カメラデバイスを認識する方法はあるようですが、面倒になって調査やめました)
Dockerイメージのビルド
docker build -f Dockerfile -t pyimg .
Dokckerコンテナを起動する
docker run --rm --name python -v ${PWD}:/work -dit pyimg
Dockerコンテナに入る
docker exec -it python bash
01_matplot2D_NotCamera.pyを実行する
Step01.入力画像にMatplotlibの2Dグラフをマッピングする
を実行します。
実行コマンド
python 01_matplot2D_NotCamera.py
入力画像(sample.png)にMatplotlibの2Dグラフをマッピングした結果が出力画像(out-sample.png)されます。
Dockerコンテナを停止
docker stop python
Discussion