产生随机值脉冲噪声的matlab算法实现

产生随机值脉冲噪声的matlab算法实现

1.什么是图像的噪声

 数字图像被脉冲噪声损坏,通常是由于一种具有噪声的照相机传感器和错误的模拟数字转换所造成的。脉冲噪声一般有两种类型,即椒盐噪声(salt && pepper noise [SPN])和随机值脉冲噪声(random-valued impluse noise [RVIN])。

 椒盐噪声(salt && pepper noise)的噪声像素值为Nmin或Nmax。在灰度图像中为最小灰度值或最大灰度值,即0和255(黑白像素点)。因其很像椒盐的颜色,所以取名为椒盐噪声。

 随机值脉冲噪声(random-valued impluse noise)的噪声灰度值为介于[Nmin Nmax]范围中的任意值,在灰度图像中为[0 255]中的任一个的灰度值。

2.添加噪声的方法

 2.1 对图像添加椒盐噪声(salt && pepper noise)

    我们使用matlab中自带的imnoise函数给图像添加椒盐噪声,主要代码如下:               noise_img=imnoise(uint8(init_img),'salt & pepper',0.4);%给图像添加40%的椒盐噪声

 2.2 对图像添加随机值脉冲噪声(random-valued impluse noise)

  主要思想是:首先,通过imnoise()函数添加椒盐噪声,产生椒盐噪声图像记为noise_img;然后,遍历噪声图像noise_img和无噪声的原始图像init_img,对每个像素点进行判断,当相同位置的像素点不同时,给该像素点赋介于[0 255]范围内的随机值;最终产生的图像记为RVIN_img即为具有随机值脉冲噪声图像。以下是我自己用matlab编程实现的算法代码:

function RVIN_img=add_RVIN(init_img,nl)

 %init_img----原始图像矩阵
 %nl----噪声密度值
[M,N,Z]=size(init_img);
if Z>1
    init_img=rgb2gray(init_img);
end
noise_img=imnoise(uint8(init_img),'salt & pepper',nl);%加入椒盐噪声
noise_map=zeros(M,N);
noise_map=init_img-noise_img~=0;
total_noise=sum(noise_map(:));
RVIN_img=init_img;
noise_num=0;
for i=1:M
    for j=1:N
        if init_img(i,j)~=noise_img(i,j)%判断相同位置的像素点的值是否相等,对不等的像素点赋予新的随机值
            noise_num=noise_num+1;
            for k=1:255
                rand_num=round(rand(1,1)*255);%产生一个介于[0 255]范围内的随机值
                if rand_num~=init_img(i,j)            %判断产生的随机值是否与原始图像像素点的灰度值相等,若相等,          %进行循环,直到产生与原始像素点灰度值不等的随机值  
                    RVIN_img(i,j)=rand_num;
                    break;
                end
            end
        end
    end
end
noise_density=noise_num/(M*N); %计算噪声密度
end   

3.图像去噪的意义和应用

 图像去噪是数字图像处理领域的常用技术。图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉

4.总结

 一幅具有噪声的数字图像将会对图像的分割、图像的目标检测和图像分类带来阻碍,因此,对一幅被噪声污染的图像进行去噪是一项很重要的任务。值得我们去深入研究图像去噪的先进算法。【稍后将会继续更新常用的图像去噪算法.....】

 

 

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值