【图像去噪】中值+均值+Lee+Kuan图像滤波【含Matlab源码 1179期】

news/2024/7/21 7:45:28 标签: matlab, 均值算法, 图像处理

⛄一、图像去噪及滤波简介

1 图像去噪
1.1 图像噪声定义
噪声是干扰图像视觉效果的重要因素,图像去噪是指减少图像中噪声的过程。噪声分类有三种:加性噪声,乘性噪声和量化噪声。我们用f(x,y)表示图像,g(x,y)表示图像信号,n(x,y)表示噪声。
图像去噪是指减少数字图像中噪声的过程。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。去噪是图像处理研究中的一个重点内容。在图像的获取、传输、发送、接收、复制、输出等过程中,往往都会产生噪声,其中的椒盐噪声是比较常见的一种噪声,它属于加性噪声。

1.2 图像噪声来源
(1)图像获取过程中
图像传感器CCD和CMOS采集图像过程中受传感器材料属性、工作环境、电子元器件和电路结构等影响,会引入各种噪声。
(2)图像信号传输过程中
传输介质和记录设备等的不完善,数字图像在其传输记录过程中往往会受到多种噪声的污染。

1.3 噪声分类
噪声按照不同的分类标准可以有不同的分类形式:
基于产生原因:内部噪声,外部噪声。
基于噪声与信号的关系:
加性噪声:加性噪声和图像信号强度是不相关的,这类带有噪声的图像g可看成为理想无噪声图像f与噪声n之和:
g = f + n;
乘性嗓声:乘性噪声和图像信号是相关的,往往随图像信号的变化而变化,载送每一个象素信息的载体的变化而产生的噪声受信息本身调制。在某些情况下,如信号变化很小,噪声也不大。为了分析处理方便,常常将乘性噪声近似认为是加性噪声,而且总是假定信号和噪声是互相统计独立。
g = f + f*n
按照基于统计后的概率密度函数:
是比较重要的,主要因为引入数学模型这就有助于运用数学手段去除噪声。在不同场景下噪声的施加方式都不同,由于在外界的某种条件下,噪声下图像-原图像(没有噪声时)的概率密度函数(统计结果)服从某种分布函数,那么就把它归类为相应的噪声。下面将具体说明基于统计后的概率密度函数的噪声分类及其消除方式。

1.4 图像去噪算法的分类
(1)空间域滤波
空域滤波是在原图像上直接进行数据运算,对像素的灰度值进行处理。常见的空间域图像去噪算法有邻域平均法、中值滤波、低通滤波等。
(2)变换域滤波
图像变换域去噪方法是对图像进行某种变换,将图像从空间域转换到变换域,再对变换域中的变换系数进行处理,再进行反变换将图像从变换域转换到空间域来达到去除图像嗓声的目的。将图像从空间域转换到变换域的变换方法很多,如傅立叶变换、沃尔什-哈达玛变换、余弦变换、K-L变换以及小波变换等。而傅立叶变换和小波变换则是常见的用于图像去噪的变换方法。
(3)偏微分方程
偏微分方程是近年来兴起的一种图像处理方法,主要针对低层图像处理并取得了很好的效果。偏微分方程具有各向异性的特点,应用在图像去噪中,可以在去除噪声的同时,很好的保持边缘。偏微分方程的应用主要可以分为两类:一种是基本的迭代格式,通过随时间变化的更新,使得图像向所要得到的效果逐渐逼近,这种算法的代表为Perona和Malik的方程,以及对其改进后的后续工作。该方法在确定扩散系数时有很大的选择空间,在前向扩散的同时具有后向扩散的功能,所以,具有平滑图像和将边缘尖锐化的能力。偏微分方程在低噪声密度的图像处理中取得了较好的效果,但是在处理高噪声密度图像时去噪效果不好,而且处理时间明显高出许多。
(4)变分法
另一种利用数学进行图像去噪方法是基于变分法的思想,确定图像的能量函数,通过对能量函数的最小化工作,使得图像达到平滑状态,现在得到广泛应用的全变分TV模型就是这一类。这类方法的关键是找到合适的能量方程,保证演化的稳定性,获得理想的结果。
形态学噪声滤除器将开与闭结合可用来滤除噪声,首先对有噪声图像进行开运算,可选择结构要素矩阵比噪声尺寸大,因而开运算的结果是将背景噪声去除;再对前一步得到的图像进行闭运算,将图像上的噪声去掉。据此可知,此方法适用的图像类型是图像中的对象尺寸都比较大,且没有微小细节,对这类图像除噪效果会较好。

2 中值滤波
(1)概念:
在这里插入图片描述
(2)原理解释:
在这里插入图片描述
3 均值滤波
均值滤波是指任意一点的像素值,都是周围 N \times M 个像素值的均值。例如下图中,红色点的像素值是其周围蓝色背景区域像素值之和除25,25=5\times5 是蓝色区域的大小。
在这里插入图片描述
均值滤波详细的计算方法如下图所示:
在这里插入图片描述
其中5\times5的矩阵称为核,针对原始图像内的像素点,采用核进行处理,得到结果图像,如下图所示:
在这里插入图片描述
在这里插入图片描述
提取 1/25 可以将核转换为如下形式:
在这里插入图片描述

4 Lee滤波
在这里插入图片描述

⛄二、部分源代码

clear;
A1=imread(‘44.jpg’)
A=double(A1);
figure(1)
imshow(A/256)
title(‘原始图像’);
[a,b]=size(A);

ASp=imnoise(A/256,‘speckle’,0.02);
figure(2)
imshow(ASp);
title(‘含散斑噪声的图像’);
% imwrite(ASp/256,‘55.jpg’);
index_ASp=std2(ASp)/mean2(ASp);%散斑指数 潘云《数字全息技术中散斑噪声滤波算法比较》
ENL=mean2(ASp)2/std2(ASp)2;%等效视数
psnr=PSNR(A,ASp);

%中值滤波
ME=Medf(ASp,3);%邻域 33
ENL_Me3=mean2(ME)2/std2(ME)2;%等效视数
index_ME3=std2(ME)/mean2(ME);%散斑指数
psnr_ME3=PSNR(A,ME);
figure(3)
% subplot(2,2,1);
imshow(ME);
title('中值滤波后的图像 3
3’);

ME=Medf(ASp,5);%邻域
ENL_Me5=mean2(ME)2/std2(ME)2;%等效视数
index_ME5=std2(ME)/mean2(ME);%散斑指数
psnr_ME5=PSNR(A,ME);
figure(4)
% subplot(2,2,2);
imshow(ME);
title(‘中值滤波后的图像 5*5’);

ME=Medf(ASp,7);%邻域
ENL_Me7=mean2(ME)2/std2(ME)2;%等效视数
index_ME7=std2(ME)/mean2(ME);%散斑指数
psnr_ME7=PSNR(A,ME);
figure(5)
% subplot(2,2,3);
imshow(ME);
title(‘中值滤波后的图像 7*7’);

ME=Medf(ASp,9);%邻域
ENL_Me9=mean2(ME)2/std2(ME)2;%等效视数
index_ME9=std2(ME)/mean2(ME);%散斑指数
psnr_ME9=PSNR(A,ME);
figure(6)
% subplot(2,2,4);
imshow(ME);
title(‘中值滤波后的图像 9*9’);

%Lee滤波
LE=Leef(256ASp,5);
ENL_Lee5=mean2(LE)2/std2(LE)2;%等效视数
index_LE5=std2(LE)/mean2(LE);%散斑指数
psnr_LE5=PSNR(A,LE);
figure(7)
imshow(LE);
title('Lee滤波后的图像 5
5’);

LE=Leef(256ASp,7);
ENL_Lee7=mean2(LE)2/std2(LE)2;%等效视数
index_LE7=std2(LE)/mean2(LE);%散斑指数
psnr_LE7=PSNR(A,LE);
figure(8)
imshow(LE);
title('Lee滤波后的图像 7
7’);

LE=Leef(256ASp,9);
ENL_Lee9=mean2(LE)2/std2(LE)2;%等效视数
index_LE9=std2(LE)/mean2(LE);%散斑指数
psnr_LE9=PSNR(A,LE);
figure(9)
imshow(LE);
title('Lee滤波后的图像 9
9’);

%Kuan滤波
KU=Kuanf(256ASp,5);
ENL_Kuan5=mean2(KU)2/std2(KU)2;%等效视数
index_Ku5=std2(KU)/mean2(KU);%散斑指数
psnr_Ku5=PSNR(A,KU);
figure(10)
imshow(KU);
title('Kuan滤波后的图像 5
5’);

KU=Kuanf(256ASp,7);
ENL_Kuan7=mean2(KU)2/std2(KU)2;%等效视数
index_Ku7=std2(KU)/mean2(KU);%散斑指数
psnr_Ku7=PSNR(A,KU);
figure(11)
imshow(KU);
title('Kuan滤波后的图像 7
7’);

KU=Kuanf(256ASp,9);
ENL_Kuan9=mean2(KU)2/std2(KU)2;%等效视数
index_Ku9=std2(KU)/mean2(KU);%散斑指数
psnr_Ku9=PSNR(A,KU);
figure(12)
imshow(KU);
title('Kuan滤波后的图像 9
9’);

%均值滤波
AV=Avef(ASp,3)
ENL_Aver3=mean2(AV)2/std2(AV)2;%等效视数
index_AV3=std2(AV)/mean2(AV);%散斑指数
psnr_AV3=PSNR(A,AV);
figure(13)
imshow(AV);
title(‘均值滤波后的图像 3*3’);

AV=Avef(ASp,5)
ENL_Aver5=mean2(AV)2/std2(AV)2;%等效视数
index_AV5=std2(AV)/mean2(AV);%散斑指数
psnr_AV5=PSNR(A,AV);
figure(14)
imshow(AV);
title(‘均值滤波后的图像 5*5’);

AV=Avef(ASp,7)
ENL_Aver7=mean2(AV)2/std2(AV)2;%等效视数
index_AV7=std2(AV)/mean2(AV);%散斑指数
psnr_AV7=PSNR(A,AV);
figure(15)
imshow(AV);
title(‘均值滤波后的图像 7*7’);

AV=Avef(ASp,9)
ENL_Aver9=mean2(AV)2/std2(AV)2;%等效视数
index_AV9=std2(AV)/mean2(AV);%散斑指数
psnr_AV9=PSNR(A,AV);
figure(16)
imshow(AV);
title(‘均值滤波后的图像 9*9’);
function [RIL] = Leef(A,N)
% Lee滤波
% A 输入灰度图像
% RIL 输出Lee滤波后的灰度图像
Ilee=A;

[height,width] = size(Ilee); % height, width:图像的高和宽
nr = floor(N/2); % N = 2*nr+1;

Ilee = double(Ilee);
Ilee2 = double(Ilee);

% L 视强度图像
L = 9; % 视数
delta = 1/sqrt(L); %噪声标准差

for i = 1:height
for j = 1:width

    % 计算N*N窗口的均值与方差
    sum = 0;
    sum2 = 0;
    num = 0;
    for k = -nr:nr
        for m = -nr:nr
            if( (i+k >=1) && (i+k <= height) && (j+m >= 1) && (j+m <= width) )  % 避免数组越界
                num = num + 1;
                sum = sum + Ilee(i+k,j+m);
                sum2 = sum2 + Ilee(i+k,j+m)*Ilee(i+k,j+m);
            end
        end
    end
    
    u = sum/num; % m均值  E(fxy)
    v = sum2/num - u*u; % 方差 vxy
    cu=delta/1;
    ci=sqrt(v)/u;
    
    % 计算中心点的值
    if(u == 0)
        k = 0;
    else
         k = (1 - cu*cu/(ci*ci));%   Qxy 《SAR图像斑点噪声抑制方法与应用研究》杨红磊

% k=(1-delta/sqrt(v))/(1+delta);
% k = (v - deltadeltauu) / (v + vdelta*delta);
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

matlab_263">⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]张娜娜,张媛媛,丁维奇.经典图像去噪方法研究综述[J].化工自动化及仪表. 2021,48(05)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除


http://www.niftyadmin.cn/n/18232.html

相关文章

【1703. 得到连续 K 个 1 的最少相邻交换次数】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1 。每一次移动&#xff0c;你可以选择 相邻 两个数字并将它们交换。 请你返回使 nums 中包含 k 个 连续 1 的 最少 交换次数。 示例 1&a…

md5数据加密的MATLAB仿真

目录 1.算法概述 2.仿真效果 3.matlab仿真源码 1.算法概述 MD5算法是Message-Digest Algorithm version.5的缩写,译为,消息摘要算法。是一种基于“消息摘要”的算法。“消息摘要”(Message Digest)是一种能产生特殊输出格式的算法,这种加密算法的特点是:无论用户输入什…

threejs之圆弧

文章目录弧线相关方法getPointssetFromPoints直线样条曲线与贝塞尔曲线样条曲线贝塞尔曲线专栏目录请点击 弧线 一般我们绘制弧线都会使用ArcCurve来进行绘制&#xff0c;他是EllipseCurve的别名&#xff0c;关于他的所有的方法&#xff0c;我们都可以看EllipseCurve 官网例子…

车联网MIMO OTA系统的空间相关性与容量分析

【摘 要】随着车联网技术在中国逐步推进与成熟,如何定量准确评估汽车通信能力是当前测试领域的热点话题,面向车联网的MIMO OTA技术,是汽车性能测试的潜在发展方向之一。针对3GPP 38.843车联网模型,仿真分析了车联网MIMO OTA系统无线信道的空间相关性与信道容量的关系。仿真…

【第四范式】真题-矩阵查数

【第四范式】真题-矩阵查数 题目描述 给定一个二维整型矩阵,已知矩阵的每一行都按照从小到大的顺序排列,每一列也都按照从小到大的顺序排列。现在给出一个数,请写一个函数返回该数是否存在于矩阵中。 矩阵中出现的数字与需要查找的数(k)都为0~100000之间的整数,且矩阵的大…

简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

Linux内核基础篇——动态输出调试

文章目录配置内核编译选项debugfs文件系统挂载动态输出使用实际案例动态输出&#xff08;dynamic print&#xff09;是内核子系统开发者最喜欢的输出技术之一。 上篇说到printk调试&#xff0c;但printk是全局的&#xff0c;只能设置输出等级。而动态输出可以动态选择打开某个…

pikachu靶场暴力破解绕过token防护详解

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是pikachu靶场暴力破解绕过token防护详解。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#x…