2012-03-10 87 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位系统