Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在opencvc+中使用gpu::GpuMat+;_C++_Opencv_Image Processing_Cuda_Gpu - Fatal编程技术网

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;ystd::cout
GpuMat
分配在GPU内存中。您不能从CPU代码修改它。您可以

  • 将所有矩阵像素设置为相同的值(
    setTo
    method)
  • 使用
    cv::Mat
    在CPU上填充数据,然后将其上载到
    GpuMat
  • 实现您自己的CUDA内核并在其中填充
    GpuMat

  • 我真的不明白这是一个CUDA编程问题。也许你可以从问题中删除CUDA标记?我想使用gpu::Mat,它是Opencv提供的,而不是CUDA…是的,但是你的代码或问题中没有任何内容实际上与CUDA有关,只有Opencv类与CUDA嵌入其中的抽象相关omewhere。按照同样的逻辑,你应该用“windows”或“linux”来标记你的问题,因为你的代码也在操作系统的顶部运行OpenCV……谢谢!我就是这么想的……:/