赞
踩
1. boxFilter()
下面是opencv官方对boxFilter()函数的介绍。如果均衡化(即normalize==ture,这也是默认值),则其本质是均值滤波。
Parameters: |
|
---|
The function smoothes an image using the kernel:
where
调用blur()等效于调用将normalize=true的boxFilter().
Blurs an image using the normalized box filter.
Parameters: |
|
---|
The function smoothes an image using the kernel:
The call blur(src, dst, ksize, anchor, borderType) is equivalent to boxFilter(src, dst, src.type(), anchor,true, borderType) .
3.GaussianBlur()高斯滤波可以消除高斯噪声,广泛应用于图像处理的减噪过程。需要注意的是opencv中的GaussianBlur()是高斯低通滤波器,用来模糊减噪,所以叫高斯模糊。
整数模板用的比较多,常见的3x3或者5x5的整数模板如下。更多高斯滤波的讲解可以参考下面这篇博客http://blog.csdn.net/yansmile1/article/details/46275791
4. 应用实例
分别调用上面提到的三个函数对一副图像进行模糊操作,选取的kernel size为5x5。代码如下
- #include<opencv.hpp>
- #include<iostream>
-
- int main(void)
- {
- cv::Mat src = cv::imread("d:/Opencv Picture/Lena.jpg", CV_LOAD_IMAGE_GRAYSCALE);
-
- if (!src.data)
- {
- std::cout << "image read error!!!\n";
- }
- cv::imshow("src",src);
-
- //call boxFilter()
- cv::Mat boxFilterDst;
- cv::boxFilter(src, boxFilterDst, -1, cv::Size(5, 5));
- cv::imshow("boxFilterResult", boxFilterDst);
-
- //call blur()
- cv::Mat blurDst;
- cv::blur(src, blurDst, cv::Size(5, 5));
- cv::imshow("blurResult", blurDst);
-
- //call GaussianBlur()
- cv::Mat GaussianDst;
- cv::GaussianBlur(src, blurDst, cv::Size(5, 5),0.8,0.8);
- cv::imshow("GaussianBlurResult", blurDst);
-
- cvWaitKey(0);
-
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。