欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

opencv中的中值滤波用法总结(11)

程序员文章站 2024-03-25 22:06:58
...

(一)概念

opencv中的中值滤波用法总结(11)

 

(二)功能说明:

【中值滤波】:用像素点领域灰度值的中值来代替该像素点的灰度值也就是说用一片区域的中间值来代替所有值。可以除去最大,最小值。

优点:除去斑点噪声和椒盐噪声很有用。均值滤波噪声也被参与运算

缺点:中值滤波时间在均值滤波的5倍以上。

方法:1,假设以3*3为例,取周边的点从上到下排序    2,取中间值,一般采用奇数点的值为该中值,若为偶数则取平均值。

(三)相关API说明:

原型:void medianBlur( InputArray src, OutputArray dst, int ksize );

参数1:函数的输入,要1,3或4通道的Mat类型的图像

参数2:目标图像

参数3:孔径的线性尺寸,必须大于1.、必须为奇数,越大,滤布越强

(四)图片展示:

因为参数3的大小不同,导致效果不同。

原图:

opencv中的中值滤波用法总结(11)

孔径为5时

opencv中的中值滤波用法总结(11)

 

孔径为7时:

opencv中的中值滤波用法总结(11)

(五)代码演示:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
int main( )
{
     // 载入原图
     Mat image=imread("1.jpg");
     //创建窗口
     namedWindow( "中值滤波【原图】" );
     namedWindow( "中值滤波【效果图】");
     //显示原图
     imshow( "中值滤波【原图】", image );
     //进行中值滤波操作
     Mat out;
     medianBlur ( image, out, 7);//输入,输出,7通道
     //显示效果图
     imshow( "中值滤波【效果图】" ,out );
     waitKey( 0 );    
}

本人也是学习opencv不久,如有错误,请各位前辈指导。大家如果觉得我的博客讲解通俗易懂,请进我博客专栏查看更多API讲解。博客地址https://blog.csdn.net/fanjiule   。

相关标签: 中值滤波 opencv