opencv之非线性滤波

中值滤波:

        用像素点邻域灰度值的中值来替代该像素点的灰度值,该方法在去除脉冲噪声、椒盐噪声的同时会保留图像的边缘细节。中值滤波在处理连续图像窗函数时与线性滤波器的工作方式类似,但滤波过程不在是加权运算。

与均值滤波对比:

        优点:均值滤波器中,由于噪声成分被放入平均计算中,所以输出受到了噪声的影响。但在中值滤波器中,由于噪声成分很难选上,所以几乎不会影响到输出。

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

具体步骤:

        例如3*3的函数,计算点 [ i, j ] 为中心的函数窗像素中值。

        第一步:按强度大小排列像素点;

        第二步:选择排序像素集的中间值作为点 [ i, j ] 的新值

void cv::medianBlur(InputArraysrc,
OutputArraydst,
int ksize //奇数
)

案例:

#include<iostream>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/core.hpp>
using namespace std;
using namespace cv;


int main()
{

 //导入图像
 Mat src = imread("C:/Users/Administrator/Desktop/3.png");
 if (!src.data)
 {
  cout << "请检查图像是否存在..." << endl;
  return -1;
 }
 namedWindow("src");
 namedWindow("dst");
 imshow("src", src);
 //中值滤波
 Mat dst;
 medianBlur(src, dst, 7);
 imshow("dst", dst);

 waitKey(0);
 return 0;
}

结果展示:

 

边滤波:

        它是结合图像空间邻近度和像素值相似度的一种折中处理方式,同时考虑了空间域信息和灰度相似性,达到保留边缘去除噪点的目的。

        在双边滤波中输出像素值取决于邻域像素值的加权值组合:

        而加权系数w(i,j,k,l)取决于定义域核和值域核的乘积。

        其中定义域核为:

        值域核为:

 

        二者相乘后,就会得到取决于数据的双边滤波权重函数

void cv::bilateralFilter(InputArraysrc,
OutputArraydst,
int d,  //过滤中每个像素邻域的直径,若为非正数,从第五个参数开始计算
double sigmaColor,  //值越大,表明该像素邻域内有越宽泛的颜色被混合到一起。
double sigmaSpace,//坐标空间的标准方差,值越大,越远的像素会互相影响
int borderType = BORDER_DEFAULT 
)

 案例:

#include<iostream>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/core.hpp>
using namespace std;
using namespace cv;


int main()
{

 //导入图像
 Mat src = imread("C:/Users/Administrator/Desktop/3.png");
 if (!src.data)
 {
  cout << "请检查图像是否存在..." << endl;
  return -1;
 }
 namedWindow("src");
 namedWindow("dst");
 imshow("src", src);
 //中值滤波
 Mat dst;
 bilateralFilter(src,dst,50,50*2,50/2);
 imshow("dst", dst);

 waitKey(0);
 return 0;
}

结果展示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值