本日はAzureKinectの調査枠です。
AzureKinectの記録ファイル(*.mkv)からカラー画像とデプス画像を出力してみます。
前回記事の続きです。
bluebirdofoz.hatenablog.com
今回はビルドとアプリケーションの実行を行います。
ビルドの実行
出力された k4a_mkv2image.sln ファイルを開きます。
ビルド設定を[Release][Win32]に設定して、メニューから ビルド -> ソリューションのビルド を実行します。
すると著者環境では以下のエラーが発生しました。
エラーを回避するため、kinect.hpp の内容を一部修正し、再ビルドを行いました。
20行目:namespace filesystem = std::filesystem; ↓ 20行目:namespace filesystem = std::experimental::filesystem::v1;
これでビルドが成功しました。
出力された Release フォルダ配下を確認すると、k4a_mkv2image.exe ファイルが出力されています。
k4a_mkv2imageの実行
出力された k4a_mkv2image.exe を試しに実行してみます。
k4a_mkv2image.exe は実行時、以下の dll ファイルを参照します。
・depthengine_2_0.dll
・k4a.dll
・k4arecord.dll
・opencv_core412.dll
・opencv_highgui412.dll
・opencv_imgcodecs412.dll
・opencv_imgproc412.dll
・opencv_videoio412.dll
これらの dll にパスが通っていない場合は、同ディレクトリに直接 dll をコピーすると直に利用できます。
この際、以下のディレクトリから32bit版の dll をコピーするようにします。
・D:\AzureKinectSDK\K4A\sdk\windows-desktop\x86\release\bin
・D:\opencv\build\x86\vc15\bin
記録データ(*.mkv)は以下のサンプルデータを利用してみます。
www.microsoft.com
取得した *.mkv ファイルをコピーして PowerShell 端末を開きます。
以下のコマンドを実行して、k4a_mkv2imageを実行します。
.\k4a_mkv2image.exe -i="./OFFICE_SAMPLE_WFOV_UNBINNED.mkv" -s=true
処理が成功すると、mkv ファイルと同名のフォルダが出力されます。
フォルダの中にはそれぞれ以下の画像ファイルが出力されています。
・color:カラー画像ファイル
・depth:デプス画像ファイル(-s オプション true 時 8bit深度、false時 16bit深度)
・infared:赤外線画像ファイル
ツールで利用可能なオプションは以下の通りです。
オプション | デフォルト値 | 説明 |
---|---|---|
-h, --help | 無し | コマンドオプションを表示する |
-i, --input | 無し | 入力するmkvファイルのパスを設定する(必須) |
-s, --scaling | false | デプス画像と赤外線画像の深度を8bitで出力する。false時は16bitで出力する |
-t, --transform | false | デプス画像の画像サイズをカラー画像に合わせる。false時はそのままのサイズで出力する |
-q, --quality | 95 | 赤外線画像のjpeg画質を設定する |
-d, --display | false | 実行時に出力イメージをダイアログで表示する。false時は表示しない |
mkvファイルを記録する場合
mkv ファイルを記録する手順は以下記事の「Azure Kinect DK Recorderの利用手順」を参照ください。
bluebirdofoz.hatenablog.com