2012-03-10 88 views
1

我已經嘗試過VS2010和VS2008。在嘗試使用GPU配置OpenCV的過程中,我單獨成功編譯了CUDA代碼和OpenCV示例代碼。 但是,當我在我的CUDA環境中包含OpenCV庫時,它不起作用。最新的問題是,當我編譯我的示例代碼,我得到以下異常:在test.exe的在0x7c812aeb在VS2010上配置支持GPU的OpenCV

第一次機會異常:微軟C++ 異常:內存位置的簡歷::異常0x0011fb18

我的代碼是

/*this is the sample code in opencv website*/ 

#include "iostream.h" 
#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::imshow("Result", result_host); 
     cv::waitKey(27); 
    } 
    catch(const cv::Exception& ex) 
    { 
     std::cout << "Error: " << ex.what() << std::endl; 
    } 
    return 0; 
} 

任何幫助將不勝感激。

+0

我改變了'cv :: Mat result_host = dst;''cv :: Mat result_host(dst);'它爲我編譯和工作。但我認爲你還有一個問題。你用Cuda編譯OpenCV嗎? – Seltymar 2012-10-18 06:14:44

回答

1

不要看彈出的錯誤框 - 看看控制檯窗口。 OpenCV的錯誤信息略具描述性。告訴我們控制檯說什麼。

我對這個相同的代碼有類似的問題。我通過 將文件夾中的opencv_core243d.dll從E:\opencv\build\gpu\x64\vc10\lib文件夾修復爲帶有.exe的工作目錄。
不知道爲什麼這應該重要,但它確實。

使用CUDA 5.0
VS2010表達
贏得7 64位系統