1

このコードを実行すると:

#include <iostream>
#include "opencv2/opencv.hpp"
#include "opencv2/gpu/gpu.hpp"

int main (int argc, char* argv[]){
try
{

    cv::Mat src_host = cv::imread(argv[1], 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.download(result_host);
    cv::imshow("Result", result_host);
    cv::waitKey();
}
catch(const cv::Exception& ex)
{
    std::cout << "Error: " << ex.what() << std::endl;
}
return 0;

}

正常にコンパイルされます...しかし、実行すると次のエラーが発生します。

OpenCV Error: Unknown error code -216 (The library is compiled without CUDA support) in copy, file /home/cbib/Descargas/OpenCV-2.4.3/modules/core/src/gpumat.cpp, line 736

opencv cuda をインストールしました。すべての側面に示されています。

私のOSはUbuntu Server 10.04です。

4

1 に答える 1

1

エラーは、何が起こっているかをほとんど示しています。CUDA サポートでコンパイルされていない OpenCV バージョンをインストールしました。

OpenCV 2.4.3 ソース コードをダウンロードして、自分でコンパイルします。cmd-line で次のフラグをcmakeに渡すことを忘れないでください。

-D WITH_CUDA=YES -D CUDA_TOOLKIT_ROOT_DIR="/path/to/cuda/toolkit"

OpenCV には、これらすべてのフラグなどを説明するページがあります。

次に、 makeを実行する前に cmake の出力をチェックし、適切な CUDA バージョンがマシンにインストールされていることを確認します。出力は次のようになります。

--   Other third-party libraries:
--     Use IPP:                     NO
--     Use TBB:                     NO
--     Use Cuda:                    YES
--     Use OpenCL:                  NO
--     Use Eigen:                   YES (ver 3.1.2)

失敗した場合は、次のように表示されます。

-- Could NOT find CUDA: Found unsuitable version "4.0", but required is at least "4.1" (found /usr/local/cuda)

CUDA Toolkit 4.1 (またはそれ以降)をダウンロードしてインストールする必要があります。

于 2013-01-23T18:22:40.767 に答える