使用GPU显示文件中的图像(C+;+;/OpenCV) 我遵循一个例子,使用GPU来操纵和显示一个文件,其中的文件是用C++ +opencv(从这里开始的)。代码是: #include <opencv2/opencv.hpp> #include <opencv2/gpu/gpu.hpp> #include <opencv2/gpu/gpumat.hpp> using namespace cv; int main() { Mat src = imread("car1080.jpg", 0); if (!src.data) exit(1); gpu::GpuMat d_src(src); gpu::GpuMat d_dst; gpu::bilateralFilter(d_src, gpu::Canny(d_dst, d_dst, 35, 200, 3); Mat dst(d_dst); imshow("out.png", dst); return 0; }

使用GPU显示文件中的图像(C+;+;/OpenCV) 我遵循一个例子,使用GPU来操纵和显示一个文件,其中的文件是用C++ +opencv(从这里开始的)。代码是: #include <opencv2/opencv.hpp> #include <opencv2/gpu/gpu.hpp> #include <opencv2/gpu/gpumat.hpp> using namespace cv; int main() { Mat src = imread("car1080.jpg", 0); if (!src.data) exit(1); gpu::GpuMat d_src(src); gpu::GpuMat d_dst; gpu::bilateralFilter(d_src, gpu::Canny(d_dst, d_dst, 35, 200, 3); Mat dst(d_dst); imshow("out.png", dst); return 0; },c++,opencv,image-processing,cuda,gpu,C++,Opencv,Image Processing,Cuda,Gpu,我对所有这些都是新手,所以我不确定我是否错过了一个附加的依赖项、一个标题,或者需要使用Visual Studio 2012安装/配置一些GPU组件 任何帮助都将不胜感激!谢谢 更新:下面是我的新代码,编译得很好;但是,即使将imwrite行替换为imshow,也不会显示图像EDIT我现在意识到,如果(!src.data)退出(1),我的代码将在处停止行,可能是因为图像文件未正确读取 #include <stdio.h> #include <direct.h> #inclu

我对所有这些都是新手,所以我不确定我是否错过了一个附加的依赖项、一个标题,或者需要使用Visual Studio 2012安装/配置一些GPU组件

任何帮助都将不胜感激!谢谢

更新:下面是我的新代码,编译得很好;但是,即使将
imwrite
行替换为
imshow
,也不会显示图像EDIT我现在意识到,如果(!src.data)退出(1),我的代码将在
处停止行,可能是因为图像文件未正确读取

#include <stdio.h>
#include <direct.h>
#include "fstream"
#include "iostream"
#include <vector>
#include "opencv2/core/core.hpp"
#include "opencv2/core/gpumat.hpp"
#include "opencv2/core/opengl_interop.hpp"
#include "opencv2/gpu/gpu.hpp"
#include "opencv2/ml/ml.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/contrib/contrib.hpp"
#include "opencv2/video/tracking.hpp"
#include "opencv2/imgproc/imgproc.hpp"

int main(){
Mat src = imread("car.jpg", 0);
if (!src.data) exit(1);

gpu::GpuMat d_src(src);
gpu::GpuMat d_dst;

gpu::bilateralFilter(d_src, d_dst,15, 80,80);

Mat dst(d_dst);
imwrite("out.png", dst);
return 0;
}
#包括
#包括
#包括“fstream”
#包括“iostream”
#包括
#包括“opencv2/core/core.hpp”
#包括“opencv2/core/gpumat.hpp”
#包括“opencv2/core/opengl_interop.hpp”
#包括“opencv2/gpu/gpu.hpp”
#包括“opencv2/ml/ml.hpp”
#包括“opencv2/highgui/highgui.hpp”
#包括“opencv2/contrib/contrib.hpp”
#包括“opencv2/video/tracking.hpp”
#包括“opencv2/imgproc/imgproc.hpp”
int main(){
Mat src=imread(“car.jpg”,0);
如果(!src.data)退出(1);
gpu::GpuMat d_src(src);
gpu::GpuMat dúdst;
gpu::双边滤波器(d_src,d_dst,15,80,80);
Mat dst(DU dst);
imwrite(“out.png”,dst);
返回0;
}

注意-我可能不需要所有的
#includes
,但是哦,好吧。

试着包括core.hpp。在我的例子中,它位于opencv2/core/core.hpp中

您必须修复双边过滤器(…)和Canny(…)的函数调用。参数编号是错误的

像这样的事情:

int main(){
Mat src = imread("car.jpg", 0);
if (!src.data) exit(1);

gpu::GpuMat d_src(src);
gpu::GpuMat d_dst;

gpu::bilateralFilter(d_src, d_dst,15, 80,80);

Mat dst(d_dst);
imwrite("out.png", dst);
return 0;
}
你还没有提到你的开发环境。。。(Win、Linux、Android、OpenCV版本)

我在tegra板上工作,所以事情对我来说可能有点不同。我在我的开发环境中尝试了这个例子。而且效果很好


酷胡

尝试包括core.hpp。在我的例子中,它位于opencv2/core/core.hpp中

您必须修复双边过滤器(…)和Canny(…)的函数调用。参数编号是错误的

像这样的事情:

int main(){
Mat src = imread("car.jpg", 0);
if (!src.data) exit(1);

gpu::GpuMat d_src(src);
gpu::GpuMat d_dst;

gpu::bilateralFilter(d_src, d_dst,15, 80,80);

Mat dst(d_dst);
imwrite("out.png", dst);
return 0;
}
你还没有提到你的开发环境。。。(Win、Linux、Android、OpenCV版本)

我在tegra板上工作,所以事情对我来说可能有点不同。我在我的开发环境中尝试了这个例子。而且效果很好


酷胡

如果你想使用基于GPU的计算,你有3个选项1)OpenCL(OCL)或2)基于Cuda的GPU处理3)基于OpenGL的GPU处理。因为您使用的是opencv 2.4.9&没有OCL或Opengl代码!我猜你在用cuda。在这种情况下,您需要在启用cuda的情况下构建opencv&您需要包括那些cuda库和DLL!尝试链接文件夹内的库
x64
如何链接它?(请原谅我的无知——这对我来说都是新鲜事)。谢谢你的帮助!如果你想使用基于GPU的计算,你有3个选项1)OpenCL(OCL)或2)基于Cuda的GPU处理3)基于OpenGL的GPU处理。因为您使用的是opencv 2.4.9&没有OCL或Opengl代码!我猜你在用cuda。在这种情况下,您需要在启用cuda的情况下构建opencv&您需要包括那些cuda库和DLL!尝试链接文件夹内的库
x64
如何链接它?(请原谅我的无知——这对我来说都是新鲜事)。谢谢你的帮助!非常感谢你的帮助!我可能应该提到,我正在Visual Studio 2012的Windows中使用OpenCV 2.4.9。不幸的是,我仍然得到一个链接错误,我认为这是因为我没有正确链接我的库?我需要安装任何额外的东西吗(我目前只安装了VS2012和OpenCV)?就像udit043提到的,这听起来像是根据您的系统架构链接库的问题。如果存在opencv库路径,请检查环境变量路径(任务菜单->系统->高级系统设置链接->系统属性中的高级选项卡->环境变量)。此外,如果根据使用的opencv库选择了正确的系统体系结构,请检查构建属性。这个链接很好地解释了这一点:使用这些指令,我现在可以毫无错误地编译代码了——非常感谢!但是,现在当代码运行时,它不会显示任何图像。检查更新以获取新代码。当程序停止读取图像时。。。这只是一个猜测,因为我这里没有一个系统来测试它,但您可能需要包含imgcodecs.hpp来读取某些图像格式。我只是尝试显示一个.jpg文件,它可以通过OpenCV显示,而不需要imgcodecs.hpp。我相信我的问题与设置VisualStudio以供GPU使用有关——我尝试使用CMake,但遇到了很多问题。谢谢你的帮助。非常感谢你的帮助!我可能应该提到,我正在Visual Studio 2012的Windows中使用OpenCV 2.4.9。不幸的是,我仍然得到一个链接错误,我认为这是因为我没有正确链接我的库?我需要安装任何额外的东西吗(我目前只安装了VS2012和OpenCV)?就像udit043提到的,这听起来像是根据您的系统架构链接库的问题。如果存在opencv库路径,请检查环境变量路径(任务菜单->系统->高级系统设置链接->系统属性中的高级选项卡->环境变量)。此外,如果根据使用的opencv库选择了正确的系统体系结构,请检查构建属性。这个链接很好地解释了这一点:使用这些指令,我现在可以毫无错误地编译代码了——非常感谢!但是,现在当代码运行时,它不会显示任何图像。检查更新以获取新代码。当程序停止读取图像时。。。这只是一个猜测,因为我这里没有一个系统来测试它,但您可能会