1.研究噪声特性的必要性

本文的内容主要介绍了常见噪声的分类与其特性。

将噪声建模,然后用模型去实现各式各样的噪声。

实际生活中的各种照片的老化,都能够归结为下面老化模型。

这个模型非常easy,也能够直接用下面公式来表达。

在频域内,用下面公式区表示。

依据以上式子,能够看出,老旧照片的复原。主要分为两个任务,一个是去噪;还有一个是去卷积,或者称为逆滤波,也就是将老化滤波器做反处理。

本文首先由噪声类型与其建模。随后的博文。会介绍几种基础的去噪方法和基础的逆滤波方法。

2.噪声的实现

2.1    评价用图像与其直方图

        

2.2  高斯噪声

        高斯噪声,也称为正态噪声,其统计特性服从正态分布。

一种较为泛用的噪声模型。

        Matlab的实现较为简单,Matlab已经有一个randn(M,N)的函数,用其能够产生出均值为0、方差为1、尺寸为M X N像素的高斯噪声图像。
        用下面程序就能够产生随意均值和方差的高斯噪声。
a = 0;
b = 0.08;
n_gaussian = a + b .* randn(M,N);
         

2.3 瑞利噪声

瑞利噪声相比高斯噪声而言,其形状向右歪斜。这对于拟合某些歪斜直方图噪声非常实用。

瑞利噪声的实现能够借由平均噪声来实现。

例如以下所看到的。

这里的表示均值为0。方差为1的均匀分布的噪声。Matlab里,使用函数rand(M,N)就能够产生一个均值为0,方差为1的均匀噪声。

a = -0.2;
b = 0.03;
n_rayleigh = a + (-b .* log(1 - rand(M,N))).^0.5;
        

2.4 伽马噪声

伽马噪声的分布,服从了伽马曲线的分布。伽马噪声的实现。须要使用b个服从指数分布的噪声叠加而来。

指数分布的噪声。能够使用均匀分布来实现。

使用若干个(这里用b表示)均匀分布叠加,就能够得到伽马噪声。

当然,当b=1的时候。就能够得到指数噪声了。

a = 25;
b = 3;
n_Erlang = zeros(M,N); for j=1:b
n_Erlang = n_Erlang + (-1/a)*log(1 - rand(M,N));
end

2.5 均匀噪声

如同前面所看到的,均匀噪声能够由函数rand(M,N)直接产生。

a = 0;
b = 0.3;
n_Uniform = a + (b-a)*rand(M,N);

2.6 椒盐噪声

椒盐噪声也成为双脉冲噪声。在早期的印刷电影胶片上,因为胶片化学性质的不稳定和播放时候的损伤,会使得胶片表面的感光材料和胶片的基底欠落,在播放时候,产生一些或白或黑的损伤。其实,这也能够归结为特殊的椒盐噪声。

椒盐噪声的实现。须要一些逻辑推断。

这里我们的思路是,产生均匀噪声,然后将超过阈值的点设置为黑点。或白点。

当然,假设须要拟合电影胶片的损伤的话,能够选用别的类型噪声去拟合。

a = 0.05;
b = 0.05;
x = rand(M,N); g_sp = zeros(M,N);
g_sp = f; g_sp(find(x<=a)) = 0;
g_sp(find(x > a & x<(a+b))) = 1;

3.总结

本文,实现的几类较为主要的噪声。并给出了事实上现的方法。代码在以下。下一篇博文。会进行几个经常使用去噪滤波器的比較。

原文发于博客:http://blog.csdn.net/thnh169/

=============更新日志===================

2016 - 5 - 21 修正英文单词的拼写错误。

[数字图像处理]常见噪声的分类与Matlab实现的更多相关文章

  1. 数字图像处理:图像的灰度变换(Matlab实现)

    (1)线性变换:通过建立灰度映射来调整源图像的灰度. k>1增强图像的对比度:k=1调节图像亮度,通过改变d值达到调节亮度目的:0 i = imread('theatre.jpg');i = i ...

  2. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础

    写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...

  3. [00]数字图像处理-matlab速成

    原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程<王伟强-数字图像处理& ...

  4. 数字图像处理的Matlab实现(1)—绪论

    第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...

  5. MATLAB数字图像处理(二)图像增强

    1         图像增强 1.1            直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); ...

  6. MATLAB数字图像处理(一)基础操作和傅立叶变换

    数字图像处理是一门集计算机科学.光学.数学.物理学等多学科的综合科学.随着计算机科学的发展,数字图像处理技术取得了巨大的进展,呈现出强大的生命力,已经在多种领域取得了大量的应用,推动了社会的发展.其中 ...

  7. 基于小波变换的数字图像处理(MATLAB源代码)

    基于小波变换的数字图像处理(MATLAB源代码) clear all; close all; clc;M=256;%原图像长度N=64; %水印长度[filename1,pathname]=uiget ...

  8. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part6

    本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part6,辑录该书第281至第374页之代码,供有须要读者下载研究使用.代码运行结果请參见原书配图,建议下载代码前阅读下 ...

  9. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part2

    本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part2(P43~80),代码运行结果请參见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MA ...

随机推荐

  1. 引入servlet概念

    Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户 ...

  2. HTML学习笔记 cs动画基础(分列效果可用于做瀑布流) 第十五节 (原创) 参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. form提交地址地址正确但是依旧报错404找不到路径

    ---恢复内容开始--- 我的jsp中保含了">="和"<="符号,form提交的时候会有个标签校验,如下: private static bool ...

  4. python中pygame模块的Linux下安装过程

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  5. [转载] 谷歌技术"三宝"之MapReduce

    转载自http://blog.csdn.net/opennaive/article/details/7514146 江湖传说永流传:谷歌技术有"三宝",GFS.MapReduce和 ...

  6. ANDROID基础ACTIVITY篇之Activity的生命周期(一)

    首先我们先来看一下官方的Android的生命周期图: 根据这个流程图我们可以看到Activity的生命周期一共有7个方法,那么接下来我们就来聊聊这些方法执行过程. 首先在两个Activity(Main ...

  7. springMVC+spring+MyBatis(SSM)的简单配置

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中: Spring是一 ...

  8. 使用numpy实现批量梯度下降的感知机模型

    生成多维高斯分布随机样本 生成多维高斯分布所需要的均值向量和方差矩阵 这里使用numpy中的多变量正太分布随机样本生成函数,按照要求设置均值向量和协方差矩阵.以下设置两个辅助函数,用于指定随机变量维度 ...

  9. 基于 nodejs 的 webSockt (socket.io)

    基于 nodejs 的 webSockt (socket.io) 理解 本文的业务基础是在基于 nodejs 的 socket.io 的直播间聊天室(IM)应用来的. 项目中具体的 框架如下 expr ...

  10. 《用Java写一个通用的服务器程序》01 综述

    最近一两年用C++写了好几个基于TCP通信类型程序,都是写一个小型的服务器,监听请求,解析自定义的协议,处理请求,返回结果.每次写新程序时都把老代码拿来,修改一下协议解析部分和业务处理部分,然后就一个 ...