はじめに
前回の続きとして、NanoPiやRaspberry Piで稼働するネットワーク3Dカメラのレシーバ部分を簡単にWindows環境で作成してみました。
得られる結果
作成したアプリを実行すると、画面上にネットワーク3Dカメラの画像と情報をリアルタイムで表示することができます。
現時点では、MJPEGとして読み込んで表示しているだけですが、物体検出などの処理を追加することで監視カメラシステムの開発が可能になります。
サンプルでは、NanoPi 4, Raspberry Pi4に接続したaeroTAP 3D USBカメラからの画像(2つ)をリアルタイムで表示しています。
準備するもの
Windows 10 or 11 64Bit環境
プログラムのダウンロード
ビルドしたものをGitHubにアップしました。
https://github.com/Taisuke-S/Network3DCameraConsole
ソースコードとビルドについて
Openframeworks とofIpVideoGrabber を使っています。
Visual Studio 2019環境でビルドしました。
ビルド時の注意
コンパイル エラー 'Poco/URI.h':No such file or directory
Includeに以下を追加してください。
\of_v0.11.2_vs2017\addons\ofxPoco\libs\poco\include
同時にLibraryパスに以下を追加
\of_v0.11.2_vs2017\addons\ofxPoco\libs\poco\lib\vs\x64\Release
リンクエラー 外部シンボル __imp_GetAdaptersInfo は未解決です
リンカーの追加依存ファイルに以下を追加します。
iphlpapi.lib
3Dカメラサーバーの指定
data\streams.json ファイルをエディタで開いてネットワークサーバーをリストします。
例: 2台の3Dカメラサーバーに接続するように設定
[
{ "url": "http://192.168.3.69:8000/camera/mjpeg" },
{ "url": "http://192.168.1.131:8000/camera/mjpeg" }
]
その他ヒント
ofApp.h ファイルには、画面に表示するカメラの数と表示スタイルを定義している変数があります。サンプルでは、以下のように値を変更しています。
- 2台のカメラの同時表示
- 1行2列での表示
std::size_t numCameras = 2;
std::size_t numCameraRows = 1;
std::size_t numCameraColumns = 2;