码迷,mamicode.com
首页 > 其他好文 > 详细

[OpenCV] Image Processing - Non-linear Filtering

时间:2016-07-19 23:40:10      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

如果不是高斯噪声,怎么办?


 

中值滤波

  散离噪声通常位于邻域内正确值的两端。

  技术分享

(a) original image with Gaussian noise; (b) Gaussian filtered; (c) median filtered; (d) bilaterally filtered;

(e) original image with shot noise;     (f) Gaussian filtered; (g) median filtered; (h) bilaterally filtered. 

 

中值滤波、阿尔法截尾法中值滤波、加权法中值滤波。

滤波器大的保边效果好!而高斯滤波对边缘不好。但中值也好不到哪里去,对裂痕的平滑效果不好。

 

双边滤波器  

  定义域核(c) 乘以 值域核(d)

  技术分享

  

双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合,

技术分享

权重系数 w(i,j,k,l) 取决于定义域核

技术分享

值域核 (中间像素与邻域像素的矢量距离)

技术分享

乘积

技术分享

 

效果图:

  技术分享

技术分享

 


高斯、中值、均值、双边滤波 (代码)

技术分享
#include "cv.h"
#include "highgui.h"
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
        Mat src = imread("/home/unsw/lolo.jpg");
        Mat dst;

        //参数是按顺序写的

        //高斯滤波
        //src:输入图像
        //dst:输出图像
        //Size(5,5)模板大小,为奇数
        //x方向方差
        //Y方向方差
        GaussianBlur(src,dst,Size(5,5),0,0);
        imwrite("gauss.jpg",dst);

        //中值滤波
        //src:输入图像
        //dst::输出图像
        //模板宽度,为奇数
        medianBlur(src,dst,3);
        imwrite("med.jpg",dst);

        //均值滤波
        //src:输入图像
        //dst:输出图像
        //模板大小
        //Point(-1,-1):被平滑点位置,为负值取核中心
        blur(src,dst,Size(3,3),Point(-1,-1));
        imwrite("mean.jpg",dst);

        //双边滤波
        //src:输入图像
        //dst:输入图像
        //滤波模板半径
        //颜色空间标准差
        //坐标空间标准差
        bilateralFilter(src,dst,25, 25*2, 25/2);
        imwrite("bil.jpg",dst);

        waitKey();
        return 0;
}
四大滤波器

 


 噪声基础知识

1. 数字图像噪声的来源:
  1)图像获取过程中;
  2)图像信号传输过程中 2. 图像获取过程中产生的噪声:   1)主要受图像传感器的类型和质量影响:CCD采集图像过程中,受传感器材料属性、电子元器件和电路结构等影响,引入各种噪声,如
    电阻引起的热噪声、
    场效应管的沟道热噪声、
    光子噪声、
    暗电流噪声、
    光响应非均匀性噪声   
2)图像传感器的工作环境:
    光照强度、
    光照均匀度、
    传感器温度
3. 图像传输过程中噪声:
  主要由于传输信道被干扰而混入噪声
4. 噪声模型   1)使用随机过程的概率密度函数来描述   2)常见的噪声模型:
    a)高斯噪声;
    b)脉冲噪声
5. 高斯噪声   1)产生原因:
    a)图像传感器在拍摄时市场不够明亮、亮度不够均匀;
    b)电路各元器件自身噪声和相互影响;
    c)图像传感器长期工作,温度过高   
2)在空间与和频域均为正态分布 6. 脉冲噪声   1)产生原因:
    成像过程中的错误操作造成的
7. 去噪算法分类:   1)空间域去噪:
    a)均值去噪;
    b)顺序统计去噪(中值去噪、最大值去噪、最小值去噪、中点去噪、阿尔法均值去噪)   
2)频率域去噪:
    a)针对固定频率噪声(带阻去噪、带通去噪、陷波去噪);
    b)针对噪声集中在高频区段(低通去噪)   
3)小波去噪:
    数学角度为函数逼近,
    图像处理角度为低通去噪(对高频系数置零的线性去噪方法、基于阈值的小波去噪方法)   
4)非局部均值去噪算法

 


 

距离变换

技术分享

"曼哈顿距离"变换:通过两遍扫描的光栅算法(b), (c)。

(b)中的每个非0像素的值 == min(它北边 or 西边的邻域像素的距离+1)

逆向过程中,(b)中的每个非0像素的值 == min(此像素的值,它南边 or 东边的邻域像素的距离+1)

 


 

连通量

具有相同输入值(标签)的邻接像素的区域。

技术分享

意义:

技术分享

 

引伸:如何快速计算连通量?

 

[OpenCV] Image Processing - Non-linear Filtering

标签:

原文地址:http://www.cnblogs.com/jesse123/p/5685989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!