【发布时间】:2014-05-30 23:03:59
【问题描述】:
我正在尝试使用opencv 对我的图像进行 gabor 过滤,我知道我应该使用多个参数并应用多个过滤器,但我不知道如何在一张图像中应用所有这些东西,我可以只需使用opencv 方法cvAddWeighted?还是有其他方法?提前致谢!
【问题讨论】:
我正在尝试使用opencv 对我的图像进行 gabor 过滤,我知道我应该使用多个参数并应用多个过滤器,但我不知道如何在一张图像中应用所有这些东西,我可以只需使用opencv 方法cvAddWeighted?还是有其他方法?提前致谢!
【问题讨论】:
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
【讨论】:
要应用多个过滤器,您可以“链接”它们(一个接一个地应用):
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);
【讨论】: