<環境>
Windows10 64bit
visual studio 2015
opencv 2.4.6 opencv3.4に変更いたしました。
以前質問したリンク内容ので出てきた。
Mat dst(gpuDst);のgpuDstに関しての問題です。
ソースコードはこちらです。
#include <opencv2/opencv.hpp> #include <opencv2/gpu/gpu.hpp> //#include "../../../ocvlibs.h" //-------------------------------------------------------------------------- #ifdef _DEBUG //Debug #pragma comment(lib,"opencv_calib3d246d.lib") #pragma comment(lib,"opencv_core246d.lib") #pragma comment(lib,"opencv_contrib246d.lib") #pragma comment(lib,"opencv_features2d246d.lib") #pragma comment(lib,"opencv_flann246d.lib") #pragma comment(lib,"opencv_gpu246d.lib") #pragma comment(lib,"opencv_haartraining_engined.lib") #pragma comment(lib,"opencv_highgui246d.lib") #pragma comment(lib,"opencv_imgproc246d.lib") #pragma comment(lib,"opencv_legacy246d.lib") #pragma comment(lib,"opencv_ml246d.lib") #pragma comment(lib,"opencv_objdetect246d.lib") #pragma comment(lib,"opencv_ts246d.lib") #pragma comment(lib,"opencv_video246d.lib") #else //Release #pragma comment(lib,"opencv_calib3d246.lib") #pragma comment(lib,"opencv_core246.lib") #pragma comment(lib,"opencv_contrib246.lib") #pragma comment(lib,"opencv_features2d246.lib") #pragma comment(lib,"opencv_flann246.lib") #pragma comment(lib,"opencv_gpu246.lib") #pragma comment(lib,"opencv_haartraining_engine.lib") #pragma comment(lib,"opencv_highgui246.lib") #pragma comment(lib,"opencv_imgproc246.lib") #pragma comment(lib,"opencv_legacy246.lib") #pragma comment(lib,"opencv_ml246.lib") #pragma comment(lib,"opencv_objdetect246.lib") #pragma comment(lib,"opencv_ts246.lib") #pragma comment(lib,"opencv_video246.lib") #endif using namespace cv; //-------------------------------------------------------------------------- //main int main(int argc, char* argv[]) { try { int numOfGpu = gpu::getCudaEnabledDeviceCount(); if (numOfGpu<=0) throw ("no Gpu available."); if (argc<3) throw ("few parameter."); Mat src1 = imread(argv[1]); Mat src2 = imread(argv[2]); if (src1.empty() || src2.empty() || src1.size != src2.size) throw ("failed to open file, or images are not same size."); gpu::GpuMat gpuSrc1(src1), gpuSrc2(src2), gpuDst; gpu::add(gpuSrc1, gpuSrc2, gpuDst); Mat dst(gpuDst); imshow("C:\Users\Daito\Desktop\DTWW6svVQAEvgvk.jpg", src1); imshow("C:\Users\Daito\Desktop\3ef27df162e6082d29f54ed466248053.jpg", src2); imshow("dst", dst); imwrite("dst.jpg", dst); waitKey(0); } catch( const char* str ) { std::cout << str << std::endl; } catch (const cv::Exception* ex) { std::cout << "Error: " << ex->what() << std::endl; } return 0; }
エラーメッセージです。
1>------ ビルド開始: プロジェクト:ConsoleApplication9, 構成:Release x64 ------ 1> pgm.cpp 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(432): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(432): error C2143: 構文エラー: ',' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(438): error C2061: 構文エラー: 識別子 'vector' 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1265): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1265): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1265): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1266): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1266): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1266): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1267): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1267): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1267): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1285): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1285): error C2143: 構文エラー: ',' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1287): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1287): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1287): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1288): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1288): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1288): error C2086: 'int cv::gpu::HOGDescriptor::vector': 再定義されました。 1> C:\opencv\build\include\opencv2/gpu/gpu.hpp(1287): note: 'cv::gpu::HOGDescriptor::vector' の宣言を確認してください 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1288): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1289): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1289): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1289): error C2086: 'int cv::gpu::HOGDescriptor::vector': 再定義されました。 1> C:\opencv\build\include\opencv2/gpu/gpu.hpp(1287): note: 'cv::gpu::HOGDescriptor::vector' の宣言を確認してください 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1289): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1291): error C2061: 構文エラー: 識別子 'vector' 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1295): error C2061: 構文エラー: 識別子 'vector' 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1300): error C2061: 構文エラー: 識別子 'vector' 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1303): error C2061: 構文エラー: 識別子 'vector' 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1821): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1835): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1835): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1835): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1836): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1836): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1836): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1838): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1838): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1838): error C2238: ';' の前に無効なトークンがあります。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1839): error C2143: 構文エラー: ';' が '<' の前にありません。 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1839): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>C:\opencv\build\include\opencv2/gpu/gpu.hpp(1839): error C2238: ';' の前に無効なトークンがあります。 1>..........\Desktop\GPU高速動画像処理\05two\01add\pgm\pgm.cpp(68): error C2664: 'cv::Mat::Mat(cv::Mat &&)': 引数 1 を 'cv::gpu::GpuMat' から 'const cv::cuda::GpuMat &' へ変換できません。 1> ..........\Desktop\GPU高速動画像処理\05two\01add\pgm\pgm.cpp(68): note: 理由: 'cv::gpu::GpuMat' から 'const cv::cuda::GpuMat' へは変換できません。 1> ..........\Desktop\GPU高速動画像処理\05two\01add\pgm\pgm.cpp(68): note: 認識できない型 'cv::cuda::GpuMat' が使われています。 1> C:\opencv\build\include\opencv2/core/base.hpp(655): note: 'cv::cuda::GpuMat' の宣言を確認してください ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
エラーメッセージとは別にMat dst(gpuDst);のgpuDstにカーソルを置くと「コンストラクター"cv::Mat::Mat"のインスタンスが引数リストと一致しません引数の型(cv::gpu::GpuMat)」と書いてあります。
他にもエラー一覧として、識別子USAG_DEFULTが定義されていませんなどが出てきます。
コピペしたかったのですが、出力ではないためできませんでした。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/05 05:40
2018/04/05 05:54
2018/04/05 05:59
2018/04/05 06:51
2018/04/05 09:06
2018/04/05 13:41 編集
2018/04/05 20:28
2018/04/05 20:50
2018/04/05 22:31
2018/04/06 00:17
2018/04/06 11:52
2018/04/06 12:02 編集
2018/04/06 12:47
2018/04/06 12:57
2018/04/06 13:00
2018/04/06 13:51
2018/04/07 00:16
2018/04/07 01:04
2018/04/08 08:50 編集
2018/04/08 08:56
2018/04/08 09:46 編集
2018/04/08 09:59
2018/04/08 12:08
2018/04/08 12:10
2018/04/08 12:45
2018/04/08 13:49
2018/04/08 14:37 編集
2018/04/08 14:37
2018/04/08 14:39
2018/04/08 14:45
2018/04/08 14:56 編集
2018/04/08 14:59
2018/04/08 14:59
2018/04/08 15:07
2018/04/08 15:09
2018/04/08 15:10
2018/04/08 15:16
2018/04/08 15:19
2018/04/08 15:25