プロが教える店舗&オフィスのセキュリティ対策術

<環境>

Windows10 64bit
visual studio 2015
CUDA nvcc
opencv
GPU高速画像処理という本を参考にコンパイルしようとしているのですが構文に関してのエラーがでます。
参考書に付属されているCDROMに入っていたプログラムをそのままコピペして貼り付け、ヘッダファイルに関してのエラーもないように見えるのでエラーの原因は構文ということはなんとなくわかるのですが、
プログラムが古いせいでエラーが出ているのかもしれないとも思っています。
初版が2013年のものなのでエラーが出てしまうのも仕方ないのですがせっかく買ったのでエラーを解決したいと思います。ただ、答えを教えられても私の勉強にならないのでヒントやアドバイスなどを頂ければと思います。

コンパイルしようとしたプログラムはこちらです。GPUのプログラムでありますが拡張子はcuではなく参考書ではcppと書いてありましたので、cuではなくcppとしました。
またデバッグではなくリリースで、かつx64でコンパイルしました

//
// dispGrayscale [動画ファイル名]
//
// (c)Copyright Spacesoft corp., 2013 rights reserved.
// Hiro KITAYAMA
//--------------------------------------------------------------------------
#include <opencv2/opencv.hpp>
#include <opencv2/gpu/gpu.hpp>
#include <ocvlibs.h>

using namespace cv;

//--------------------------------------------------------------------------
//main
int
main(int argc, char* argv[])
{
try
{
int wait = 1;

int numOfGpu = gpu::getCudaEnabledDeviceCount();
if (numOfGpu <= 0)
throw ("no Gpu available.");

VideoCapture capture;
if (argc == 2)
{
capture = VideoCapture(argv[1]);
wait = 33;
}
else
capture = VideoCapture(0);

const char* wName = "dst";
Mat src, dst;
gpu::GpuMat gpuSrc, gpuDst;
namedWindow(wName, CV_WINDOW_AUTOSIZE);
while (true)
{
capture >> src;
if (src.empty()) break;

gpuSrc.upload(src);
gpu::cvtColor(gpuSrc, gpuDst, COLOR_RGB2GRAY);
gpuDst.download(dst);

imshow(wName, dst);

if (waitKey(wait) >= 0) break;
}
}
catch (const char* str)
{
std::cout << str << std::endl;
}
catch (const cv::Exception* ex)
{
std::cout << "Error: " << ex->what() << std::endl;
}
return 0;
}

ヘッダファイル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
visual studioでのエラーです。

https://pastebin.com/bsWfhkJC
余談ではありますがコマンドプロンプトの方でnvccを用いて同じように行ったところほぼ同じエラーが出ました。
コマンドプロンプトでnvccのコマンドでのエラーはこちらです。

https://pastebin.com/T9A8w9Ur

A 回答 (1件)

このサイトでも質問に画像を貼る事ができます。


ただし500×500pixを超える場合は縮小して表示されます。
他のサイトへの誘導ととられないよう可能な限りこのサイト内で完結させるようにしましょう。

なお、補足にも画像を貼る事ができますので、
 本文に1
 補足1つに付き1
 補足は全部で10まで
ということで、最大11枚の画像を貼れます。

あと・・・エラーは画像を見てください・・・では不親切な質問ですよね。
エラーメッセージくらいは質問文に記述するようにしましょう。

・・・
てことでリンクは踏んでない。
    • good
    • 0
この回答へのお礼

エラーが長かったため、他のサイトを利用しました。すいません。

お礼日時:2018/03/27 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!