Visual Studio2015 C++で書いています
#include <iostream>
#include <sstream>
//NuiApi.hの前にWindows.hをインクルードする
#include <Windows.h>
#include <NuiApi.h>
#include<opencv2/opencv.hpp>
#define ERROR_CHECK(ret)\
if(ret != S_OK){ \
std::stringstream ss; \
ss << "failed" #ret ""<< std::hex << ret << std::endl;\
throw std::runtime_error(ss.str().c_str()); \
}
const NUI_IMAGE_RESOLUTION CAMERA_RESOLUTION = NUI_IMAGE_RESOLUTION_640x480;
class KinectSample
{
private:
INuiSensor* kinect;
HANDLE imageStreamHandle;
DWORD width;
DWORD height;
public:
KinectSample()
{
}
~KinectSample()
{
//終了処理
if (kinect != 0) {
kinect->NuiShutdown();
kinect->Release();
}
}
void initialize()
{
createInstance();
//Kinectの設定を初期化する
ERROR_CHECK(kinect->NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR));
//RGBカメラを初期化する
ERROR_CHECK(kinect->NuiImageStreamOpen(NUI_IMAGE_TYPE_COLOR,CAMERA_RESOLUTION, 0, 2, 0, &imageStreamHandle));
//指定した解像度の画面サイズを取得する
::NuiImageResolutionToSize(CAMERA_RESOLUTION, width, height);
}
void run()
{
cv::Mat image;
//メインループ
while (1) {
drawRgbImage(image);
//画面を表示する
cv::imshow("Kinect Sample", image);
//終了のためのキー入力チェック兼、表示のためにウェイト
int key = cv::waitKey(10);
if (key == 'q') {
break;
}
}
}
private:
void createInstance()
{
//接続されているKinectの数を取得する
int count = 0;
ERROR_CHECK(::NuiGetSensorCount(&count));
if (count == 0) {
throw std::runtime_error("Kinectを接続してください");
}
//最初のKinectのインスタンスを作成する
ERROR_CHECK(::NuiCreateSensorByIndex(0, &kinect));
//Kinectの状態を取得する
HRESULT status = kinect->NuiStatus();
if (status != S_OK) {
throw std::runtime_error("Kinectが利用可能ではありません");
}
}
void drawRgbImage(cv::Mat& image)
{
//RGBカメラのフレームデータを取得する
NUI_IMAGE_FRAME imageFrame = { 0 };
ERROR_CHECK(kinect->NuiImageStreamGetNextFrame(imageStreamHandle, INFINITE, &imageFrame));
//画像データを取得する
NUI_LOCKED_RECT colorData;
imageFrame.pFrameTexture->LockRect(0, &colorData, 0, 0);
//フレームデータを開放する
ERROR_CHECK(kinect->NuiImageStreamReleaseFrame(imageStreamHandle, &imageFrame));
}
};
void main()
{
try {
KinectSample kinect;
kinect.initialize();
kinect.run();
}
catch (std::exception& ex) {
std::cout << ex.what() << std::endl;
}
}
error LNK2019: 未解決の外部シンボル "private: char * __cdecl cv::String::allocate(unsigned __int64)" (?allocate@String@cv@@AEAAPEAD_K@Z) が関数 "public: __cdecl cv::String::String(char const *)" (??0String@cv@@QEAA@PEBD@Z) で参照されました。
error LNK2019: 未解決の外部シンボル "private: void __cdecl cv::String::deallocate(void)" (?deallocate@String@cv@@AEAAXXZ) が関数 "public: __cdecl cv::String::~String(void)" (??1String@cv@@QEAA@XZ) で参照されました。
error LNK2019: 未解決の外部シンボル "void __cdecl cv::imshow(class cv::String const &,class cv::_InputArray const &)" (?imshow@cv@@YAXAEBVString@1@AEBV_InputArray@1@@Z) が関数 "public: void __cdecl KinectSample::run(void)" (?run@KinectSample@@QEAAXXZ) で参照されました。
fatal error LNK1120: 3 件の未解決の外部参照
コンパイルしようとすると上記のようなエラーが出ます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DirectInput でのエラー
-
【gcc・cygwin】multiple defin...
-
コールバック関数とクラスとの...
-
int main()、void main()、void...
-
C++にてtemplateで受け取った任...
-
多重定義が起きている?--lnk20...
-
戻り値を返す関数の前に(void)...
-
ArduinoでMouse関数を使用して...
-
4桁7セグでダイナミック点灯
-
Notepad++の関数リスト表示の変...
-
ドラッグしたときにマウスカー...
-
C# Controls.Addで動的に配置し...
-
既定のコンストラクタがありま...
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
マイナスからプラスへ転じた時...
-
2÷3などの余りについて
-
既約分数の表示プログラム
-
プログラムでの数字につく”f”の...
-
複数桁10進数の*桁目だけを抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
C# Controls.Addで動的に配置し...
-
int main()、void main()、void...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
void*型の配列について
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
H8マイコンのシリアル通信につ...
-
コールバックって・・・
-
関数ポインタについて
-
void main()って誰が最初?:AN...
おすすめ情報