【问题标题】:How to apply multiple filters on one image in opencv?如何在opencv中的一张图像上应用多个过滤器?
【发布时间】:2014-05-30 23:03:59
【问题描述】:

我正在尝试使用opencv 对我的图像进行 gabor 过滤,我知道我应该使用多个参数并应用多个过滤器,但我不知道如何在一张图像中应用所有这些东西,我可以只需使用opencv 方法cvAddWeighted?还是有其他方法?提前致谢!

【问题讨论】:

    标签: c++ image opencv


    【解决方案1】:

    OpenCV 在其图像处理模块中有gabor filter。如here 所示,您可以简单地获取 gabor 内核并将其应用到图像上。链接中的代码

    #include "opencv2/imgproc/imgproc.hpp"
    
    cv::Mat kernel = cv::getGaborKernel(cv::Size(kernel_size,kernel_size), sig, th, lm, gm, ps);
    Mat src_f; // img converted to float 
    Mat dest;
    cv::filter2D(src_f, dest, CV_32F, kernel);
    

    您可以实现自己的Gabor filter。它创建一个过滤器并将其应用于图像。 Github Repo Link

    【讨论】:

      【解决方案2】:

      要应用多个过滤器,您可以“链接”它们(一个接一个地应用):

      Mat img;
      Mat kernel1 = getGaborKernel(...);
      Mat kernel2 = getGaborKernel(...);
      Mat kernel3 = getGaborKernel(...);
      Mat kernel4 = getGaborKernel(...);
      
      
      cv::filter2D(img, img, CV_32F, kernel1);
      cv::filter2D(img, img, CV_32F, kernel2);
      cv::filter2D(img, img, CV_32F, kernel3);
      cv::filter2D(img, img, CV_32F, kernel4);
      

      【讨论】:

        猜你喜欢
        • 2014-05-29
        • 1970-01-01
        • 2022-07-01
        • 2012-07-08
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        相关资源
        最近更新 更多