このアルバムにいくつかのスクリーンショットをアップロードしました:http://imgur.com/a/w4jHc
Visual Studio 2008のOpenCVでGPUを起動して実行しようとしています。OpenCVGPUサンプルコードの1つ、bgfg_segm.cppを実行しています。ただし、(コンパイルエラーなしで)コンパイルすると、「OpenCVエラー:GPUサポートなし」がスローされます。
- Windows 7、32ビット
- Visual Studio 2008
- nVidia Quadro 1000M、ドライバーバージョン301.27
- OpenCV 2.4.3rc(付属のプリコンパイル済みライブラリを使用)
- CUDA Toolkit 4.2、CUDASDK。
C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 4.2 \ C \ bin \ win32 \ Releaseで.exeファイルをエラーなしで実行できるため、CUDAが機能しているように見えます。
ここで明らかな何かが欠けているに違いないと思うので、あなたが助けてくれることを本当に望んでいます。どんな考えや提案も大歓迎です。
2012年11月9日編集:
sgar91の指示に従うことになりましたが、現在は機能しているようです。
補足:入力するときEnvironment Variables
は、CUDAのパスを確認してください。私の1人は、このよう\
に前に1つのバックスラッシュ()が多すぎました。CUDAとそのSDKへの参照は3つあるので、それらをチェックしてください。多分それは一度だけのまぐれでした。これが重要かどうかはまったくわかりません。bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\bin;
もう1つの補足: Visual Studio 2010 Expressをインストールしましたが、sgar91の手順はVisual Studio 2010(別名「vc10」)を対象としていることに注意してください。vc9およびvc11(vc10のみ)用のOpenCV 2.4.3でビルド済みのlibファイルがないため、Visual Studio 2008(別名「vc9」)またはVisual Studio 2012(別名「vc11」)では機能しません。また、64ビットWindowsを使用している場合は、ガイドに従うときに、代わりにすべてのX86パス(32ビット)をX64(64ビット)に変更する必要があります。VisualStudioでは、ソリューションプラットフォームをWin32から変更する必要があります。 (上部のドロップダウンメニュー、[デバッグ]または[リリース]の横の中央)x64へ。
さらにもう1つの補足:OpenCV2.4.3はCUDA4.2をサポートします(つまり、ライブラリはCUDA 4.2でコンパイルされています)。CUDA 5.0をインストールすると、機能しません。エラーメッセージをスローします。どちらか思い出せない。どうしてもCUDA5.0が必要な場合は、OpenCVが将来のバージョンに含めるのを待つか、CMakeを介して独自のライブラリをコンパイルする必要があります。
以下のコードを実行し(ここからですが、コンパイルするには1行を修正する必要がありました)、コンパイルして画像を表示したので、これは問題がないことを意味しますか?
#ifdef _DEBUG
#pragma comment(lib,"opencv_gpu243d")
#pragma comment(lib,"opencv_core243d")
#pragma comment(lib,"opencv_highgui243d")
#else
#pragma comment(lib,"opencv_core243")
#pragma comment(lib,"opencv_highgui243")
#pragma comment(lib,"opencv_gpu243")
#endif
#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"
int main (int argc, char* argv[])
{
try
{
cv::Mat src_host = cv::imread("file.png", CV_LOAD_IMAGE_GRAYSCALE);
cv::gpu::GpuMat dst, src;
src.upload(src_host);
cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);
cv::Mat result_host(dst);
//cv::Mat result_host = dst; //old line commented out
cv::imshow("Result", result_host); //new line added by me
cv::waitKey();
}
catch(const cv::Exception& ex)
{
std::cout << "Error: " << ex.what() << std::endl;
}
return 0;
}
C:\ opencv \ samples\gpuのコードを動作させることができません。コンパイルしますが、エラーをスローします。しかし、それをねじ込みます、私はどういうわけかそれを理解します:)