如何在opencv中对一个图像应用多个过滤器
How to apply multiple filters on one image in opencv?
我正在尝试使用opencv
对我的图像进行gabor滤波,我知道我应该使用多个参数并应用多个滤波器,但我不知道如何在一个图像中应用所有这些东西,我可以只使用opencv
方法cvAddWeighted
吗?或者还有别的办法?提前感谢!
OpenCV的图像处理模块中有gabor filter
。如图所示,您可以简单地获得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链接
要应用多个过滤器,只需"连锁"它们(一个接一个地应用):
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);
相关文章:
- 如何在 OpenCV 中将图像与另一个图像相关联
- 计算另一个图像像素满足条件的像素值的平均值
- 由于alpha值的原因,将一个图像混合到另一个图像会产生不正确的图像
- 访问和更改基于另一个图像的像素颜色-opencv c++
- 如何在打开另一个图像时关闭图像 - linux c ++
- 在 allegro5 中的另一个图像上的图像 (C++)
- SFML 将图像从 txt 文件加载到矢量中仅加载最后一个图像
- sfml pollevent,每个新图像都会删除上一个图像
- 尝试在另一个 SDL2 上显示一个图像没有错误,但不会显示第二个图像
- 如何使用CIMG.H库在另一个图像上显示一个图像
- 这个opencv程序用于同时从一个文件夹中加载不同的图像,但它只读取一个图像
- QPixmap将绘制的正方形的内容复制到另一个图像中
- 确定一个图像是否在其他图像中的最佳方法 - opencv c ++
- 确保给定的图像被另一个图像翻转
- OpenCV将透明图像绘制到另一个图像上
- 如何使用opencv中的单应矩阵将一个点从一个图像重新投影到另一个图像
- 如何使用OpenCV在一个窗口中显示一个图像和一个视频
- 一个图像识别特征金字塔有多少步
- 如何从资源中的图像数组中获得一个图像的HBITMAP
- 如何将一个图像叠加在另一个图像上?c++