【问题标题】:OpenCV GPU Dilate not workingOpenCV GPU扩张不工作
【发布时间】:2018-09-30 06:55:13
【问题描述】:

我正在尝试使用 OpenCV GPU 执行 Dilate 和 Erode 函数,但由于某种原因它返回了黑色图像。我就是想不通是什么问题;

我正在使用的代码:

int erosionDilation_size = 5;
Mat element = cv::getStructuringElement(MORPH_RECT, Size(2*erosionDilation_size + 1,    2*erosionDilation_size+1));
cv::gpu::dilate(_gpuProcessOutput[__n],  _gpuProcessOutput[__n],element);
_gpuProcessOutput[__n].download(_frame[__n]);
imshow("Test",_frame[0]);
cvWaitKey(1000/120);

有人知道发生了什么吗?谢谢!

更新 这是我要放大的图像!

【问题讨论】:

  • 但是你能发布一个在这个代码上返回黑色图像的图像吗?
  • 我已经用图片编辑了主线程!谢谢!
  • 我认为元素应该上传到设备。
  • 已经上传了,只是上面代码中没有添加这行。我正在使用以下代码上传它: cv::Mat _tempMat; _capture>>_tempMat; _gpuFrame[__n].upload(_tempMat);
  • 你能解决这个问题吗?如果你这样做了..你能告诉我们怎么做吗?

标签: opencv gpu


【解决方案1】:

这对我有用:

    #include "opencv2/opencv.hpp"
    #include "opencv2/cudafilters.hpp"
    #include "opencv2/cudaimgproc.hpp"
    using namespace std;
    using namespace cv;
    using namespace cv::cuda;

    //-----------------------------------------------------------------------------------------------------
    //
    //-----------------------------------------------------------------------------------------------------
    int main ( int argc, char** argv )
    {
        cv::cuda::setDevice(0);
        // -------------------------------
        // 
        // -------------------------------
    Mat img=imread("test.png",0);
    int erosionDilation_size = 5;
    Mat element = cv::getStructuringElement(MORPH_RECT, Size(2*erosionDilation_size + 1,    2*erosionDilation_size+1));

    cuda::GpuMat d_element(element);
    cuda::GpuMat d_img(img);

    Ptr<cuda::Filter> dilateFilter = cuda::createMorphologyFilter(MORPH_DILATE, d_img.type(), element);
    dilateFilter->apply(d_img, d_img);


    d_img.download(img);

    d_img.release();
    d_element.release();

    imshow("test",img);
    waitKey();
    }

【讨论】:

  • 非常感谢,在 2021 年仍然看起来不错。也感谢包含头文件引用 - 令人惊讶的是,它们经常被遗漏!
猜你喜欢
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多