C++ 在opencvc+中使用gpu::GpuMat+;
我想知道如何修改C++ 在opencvc+中使用gpu::GpuMat+;,c++,opencv,image-processing,cuda,gpu,C++,Opencv,Image Processing,Cuda,Gpu,我想知道如何修改gpu::GpuMat。事实上,我想知道是否可以像cv::Mat一样使用gpu::GpuMat 我想这样做: cv::namedWindow("Result"); cv::Mat src_host = cv::imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE); cv::gpu::GpuMat dst, src; src.upload(src_host); for (unsigned int y =
gpu::GpuMat
。事实上,我想知道是否可以像cv::Mat
一样使用gpu::GpuMat
我想这样做:
cv::namedWindow("Result");
cv::Mat src_host = cv::imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv::gpu::GpuMat dst, src;
src.upload(src_host);
for (unsigned int y = 0; y < src.rows; y++){
for (unsigned int x = 0; x < src.cols; x++){
src.at<uchar>(y,x) = 0;
}
}
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;
cv::namedWindow(“结果”);
cv::Mat src_host=cv::imread(“lena.jpg”,cv\u LOAD\u IMAGE\u灰度);
cv::gpu::GpuMat dst,src;
src.upload(src_主机);
for(无符号整数y=0;y std::coutGpuMat
分配在GPU内存中。您不能从CPU代码修改它。您可以
将所有矩阵像素设置为相同的值(setTo
method)
使用cv::Mat
在CPU上填充数据,然后将其上载到GpuMat
实现您自己的CUDA内核并在其中填充GpuMat
我真的不明白这是一个CUDA编程问题。也许你可以从问题中删除CUDA标记?我想使用gpu::Mat,它是Opencv提供的,而不是CUDA…是的,但是你的代码或问题中没有任何内容实际上与CUDA有关,只有Opencv类与CUDA嵌入其中的抽象相关omewhere。按照同样的逻辑,你应该用“windows”或“linux”来标记你的问题,因为你的代码也在操作系统的顶部运行OpenCV……谢谢!我就是这么想的……:/