对于它的生活,我不能让CUDA模块在Visual Studio 2013 64Bit Professional,CUDA SDK 6.5和Win7 64Bit的OpenCV3.0 Beta下工作。我使用的示例代码在半年前使用OpenCV3.0 Alpha完美无瑕地工作。现在我甚至不能让cv :: cuda :: flip工作;该代码可以工作,直到它将Mat上传到CUDA,然后停止工作。无法让CUDA模块在OpenCV 3.0下工作Beta Beta
有人可以提供一个工作示例代码,所以我可以看到我在哪里俯视的东西?我做
所有的步骤之前:
与CUDA和OpenGL建设OpenCV3.0Beta后用CMake和MSVC2013专业使我建OpenCV.sln在调试和发布/ X64配置(这表示成功打造:266每)。之后,我在modules/smaples/include和data-folder中的Debug/Release X64-Config中分别创建INSTALL.vcxproj,以便将它们全部复制到安装文件夹。
在属性C++一般:
d:\ OpenCV的\ GebautmitCUDAohneTBB \安装\包括 d:\程序\ GLEW-1.12.0 \包括 d:\程序\ freeglut \包括
下属性链接一般:
d:\ OpenCV的\ GebautmitCUDAohneTBB \安装\ 64 \ VC12 \ LIB d:\程序\ GLEW-1.12.0 \ LIB \发布\ x64的 d:\程序\ freeglut \ LIB \ 64
在属性链接器输入:
通常OpenCV的-库, glew32.lib, freeglut.lib
这里我举的例子代码:
#if defined _MSC_VER && _MSC_VER >= 1400
#pragma warning(disable : 4100)
#endif
#include <iostream>
#include <iomanip>
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/core/cuda.hpp"
#include "opencv2/cudaimgproc.hpp"
#include "opencv2/cudawarping.hpp"
using namespace std;
using namespace cv;
using namespace cv::cuda;
int main() {
/*
if (getCudaEnabledDeviceCount() == 0)
{
return cerr << "No GPU found or the library is compiled without CUDA support" << endl, -1;
}
cv::cuda::printShortCudaDeviceInfo(cv::cuda::getDevice());
*/
Mat image, image2, imagedownloaded, demoimage, grayimage;
image = imread("fruits.jpg", 1);
if (image.channels() == 1)
{
cout << "1 channel";
}
else
{
cout << "3 channel";
}
cv::cvtColor(image, image, COLOR_BGR2GRAY);
GpuMat image_gpu, gray_gpu, demo_gpu, image_gpu2;
image_gpu2.upload(image);
cv::cuda::demosaicing(image_gpu2, demo_gpu, COLOR_BayerGR2BGR, 3);
demo_gpu.download(demoimage);
if (demoimage.channels() == 1)
{
cout << "1 channel";
}
else
{
cout << "3 channel";
}
imshow("bla2", image);
imshow("bla3", demoimage);
waitKey();
return 0;
}
能有人请指出什么我忘了,所以它会再次工作?
谢谢。