質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Kinect

Kinect(キネクト)はマイクロソフトから発売されたジェスチャー・音声認識によって 操作ができるデバイスです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

解決済

1回答

1002閲覧

AzureKinectSample-master C++ color 環境構築で起きているutil.hのエラーについて

siopi

総合スコア1

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Kinect

Kinect(キネクト)はマイクロソフトから発売されたジェスチャー・音声認識によって 操作ができるデバイスです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2022/06/02 06:46

初めての質問失礼いたします。
https://qiita.com/SatoshiGachiFujimoto/items/302a7a08f6f1ea6ca598
こちらのブログを参考にAzureKinectをC++で動かそうとしています。
https://github.com/UnaNancyOwen/AzureKinectSample
↑用いているサンプルプログラム
<私の開発環境>
・Windows 10
・Azure Kinect SDK 1.4.1
・Azure Kinect Body Tracking SDK 1.0.1
・OpenCV 4.3.0
・CMake 3.18.0
・Visual Studio 2019

<やったこと>
ブログの内容の通り最後まで(DLLファイルをプロジェクトフォルダ直下にコピペ)行った。
多くのエラーはNugetパッケージで
Microsoft.AzureKinect.BodyTracking,Microsoft.AzureKinect.Sensor,OpenCVをインストールすることで解決しました。

<困っていること>
AzureKinectSample-masterのC++,colorのmain.cppとkinect.cppにエラーは出ていませんが、
util.hでエラーが5つ発生しています。(主に行93,94)

<該当コード(util.h)>エラー部分は太字にしています。
case k4a_image_format_t::K4A_IMAGE_FORMAT_CUSTOM:
{
// NOTE: This is opencv_viz module format (cv::viz::WCloud).
const int16_t* buffer = reinterpret_cast<int16_t*>( src.get_buffer() );
mat = cv::Mat( height, width, CV_32FC3, cv::Vec3f::all( std::numeric_limits<float>::quiet_NaN() ) );
mat.forEachcv::Vec3f(
[&]( cv::Vec3f& point, const int32_t* position ){
const int32_t index = ( position[0] * width + position[1] ) * 3;
point = cv::Vec3f( buffer[index + 0], buffer[index + 1], buffer[index + 2] );
}
);
break;
}
<エラー説明文>
E0254 型名は使用できません AzureKinectColor2 C:\Program Files\AzureKinectSample-master\sample\cpp\color\util.h 94
E0289 コンストラクター "cv::Mat::Mat" のインスタンスが引数リストと一致しません AzureKinectColor2 C:\Program Files\AzureKinectSample-master\sample\cpp\color\util.h 93
E0135 class "cv::Mat" にメンバー "forEach" がありません AzureKinectColor2 C:\Program Files\AzureKinectSample-master\sample\cpp\color\util.h 94
C2039 'forEach': 'cv::Mat' のメンバーではありません AzureKinectColor2 C:\Program Files\AzureKinectSample-master\sample\cpp\color\util.h 94
C2440 '<function-style-cast>': 'initializer list' から 'cv::Mat' に変換できません。 AzureKinectColor2 C:\Program Files\AzureKinectSample-master\sample\cpp\color\util.h 93

<エラー後やったこと>
該当コードの
// NOTE: This is opencv_viz module format (cv::viz::WCloud).
より、opencv_vizについて
https://qiita.com/SatoshiGachiFujimoto/items/a91a60bb511070164b53
こちらの方を参考に
C:\opencv-4.3.0\build\install\includeをC++全般の追加のインクルードディレクトリに追加しましたが、変わりませんでした。

詳しい方がいらっしゃればご教示いただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーの原因となっているのは、おそらく NuGet によってインストールされたバージョンの古い OpenCV (一度ご自身でバージョンの確認をして頂くのが良いかと思われます) が優先して使われてしまっていることだと思われます。

参考になさった記事によれば OpenCV はご自分でビルドしてそれを使う事になっており、それに従ったならば改めて NuGet で OpenCV をインストールする必要はないはずです。

投稿2022/06/06 01:45

yaito3014

総合スコア176

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

siopi

2022/06/06 05:47

ご回答ありがとうございました。 サンプルプログラムの作成者様ともコンタクトが取れ、同じくNuGetのOpenCVのバージョンが古いようことが原因のようでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問