精华内容
下载资源
问答
  • 这是学了一个月的图像预处理整理出的图像去噪代码,常见的基本去噪代码均有,共10种:巴特沃斯高通滤波、高斯滤波、各向异性扩散、均值滤波、双边滤波、同态滤波、维纳滤波、小波去噪、中值滤波、自适应中值滤波等。
  • MATLAB实现频域平滑滤波以及图像去噪代码
  • 图像去噪代码,Matlab的,这个是找了好久才找到的诶
  • 图像去噪Python代码

    2018-04-04 07:39:36
    附有图像去噪Python源代码,能很好地去除图像噪声的干扰。
  • 本程序为C语言编写的基于小波变换的图像去噪程序的源代码,运行速度快,去噪效果还不错,相比其他传统的图像去噪效果要好很多,对于初学小波变换图像去噪的人非常有帮助。
  • 源码图像去噪-基于小波包图像去噪.rar 做图像处理已经一年了,搜集和自编了一些m源代码,将分类传上,与大家分享,希望对大家有所帮助。本帖上传的都是图像去噪方面的,文件名即去噪算法名。
  • BM3D图像去噪-MATLAB

    2020-06-01 13:02:29
    好用记得过来好评,有问题可以评论。...CBM3D图像去噪,里面有RGB的CBM3D图像去噪代码(输入图像为RGB图像)。里面还有BM3D图像去噪代码(输入图像为灰度图像)。里面还有其他BM3D拓展的其他算法。
  • CBM3D图像去噪.zip

    2020-06-01 12:58:29
    好用记得过来好评,有问题可以评论。...CBM3D图像去噪,里面有RGB的CBM3D图像去噪代码(输入图像为RGB图像)。里面还有BM3D图像去噪代码(输入图像为灰度图像)。里面还有其他BM3D拓展的其他算法。
  • 图像去噪评价指标代码
  • 图像去噪的matlab代码

    2018-11-09 21:30:36
    图像去噪的三种代码,中值滤波,均值滤波 ,维纳滤波 ,只需更改图片即可使用
  • 基于opencv的图像去噪代码

    热门讨论 2014-02-18 15:06:07
    基于opencv的图像去噪代码,分别采用中值滤波,均值滤波,高斯滤波对图像进行去噪处理,程序已经运行过,没有问题。
  • 图像去噪matlab代码.zip

    2020-05-24 22:33:49
    含有中值滤波,均值滤波,高斯滤波,双边滤波,NLM算法,改进NLM算法,代码优化后的改进NLM,代码如有问题请及时联系。
  • matlab开发-图像去噪噪声噪声滤波器及其方法噪声阈值保持。基于gbfmt的matlab图像去噪代码
  • 自适应全变分图像去噪Matlab源代码,简单明了的代码设计,能成功实现最基本的功能,代码设计排版简洁,能轻松看懂。
  • 图像去噪、边缘检测源代码
  • 压缩感知当中的图像去噪代码

    热门讨论 2011-03-28 20:05:04
    在压缩感知当中,首先进行的是稀疏表示,需要对图像进行去噪
  • 根据图像块之间的相似性,把具有相似结构的二维图像块组合在一起形成三维数组,然后用联合滤波的方法对这些三维数组进行处理,最后,通过逆变换,把处理后的结果返回到原图像中,从而得到去噪后的图像。该方法确实...
  • 源码图像去噪-tv去噪.rar 做图像处理已经一年了,搜集和自编了一些m源代码,将分类传上,与大家分享,希望对大家有所帮助。本帖上传的都是图像去噪方面的,文件名即去噪算法名。
  • 对于初学者来说,比较好的小波阈值去噪程序
  • C#黑白图像去噪代码工程

    热门讨论 2011-11-15 17:25:58
    1.写了一个自己的腐蚀算法。 2.通过图论的连通分量的判断来去除噪点(深度优先搜索) 3.水平和垂直切割。自己写的根据直线的粗细来切割线段
  • 图像去噪--代码实现

    千次阅读 2018-07-03 17:32:24
    目前比较经典的图像去噪算法主要有以下三种:1:均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,...

     一、背景:

    一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等;

    目前比较经典的图像去噪算法主要有以下三种:

    1:均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。

     2:中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。

    3:Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。

    二、实现

    实验一:均值滤波对高斯噪声的效果

    PS:filter2用法
    fspecial函数用于创建预定义的滤波算子,其语法格式为:
    h = fspecial(type)
    h = fspecial(type,parameters)
    参数type制定算子类型,parameters指定相应的参数,具体格式为:
    type='average',为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。
    type= 'gaussian',为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,单位为像素,默认值为0.5。
    type= 'laplacian',为拉普拉斯算子,参数为alpha,用于控制拉普拉斯算子的形状,取值范围为[0,1],默认值为0.2。
    type= 'log',为拉普拉斯高斯算子,参数有两个,n表示模版尺寸,默认值为[3,3],sigma为滤波器的标准差,单位为像素,默认值为0.5
    type= 'prewitt',为prewitt算子,用于边缘增强,无参数。
    type= 'sobel',为著名的sobel算子,用于边缘提取,无参数。
    type= 'unsharp',为对比度增强滤波器,参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2。

    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像
    J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声
    subplot(2,3,1);imshow(I);
    title('原始图像');
    subplot(2,3,2); imshow(J);
    title('加入高斯噪声之后的图像');
    %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
    K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3
    K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5
    K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7
    K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9
    subplot(2,3,3);imshow(K1);
    title('改进后的图像1');
    subplot(2,3,4); imshow(K2);
    title('改进后的图像2');
    subplot(2,3,5);imshow(K3);
    title('改进后的图像3');
    subplot(2,3,6);imshow(K4);
    title('改进后的图像4'); 
    

    实验二:二维自适应维纳滤波对高斯噪声的滤除效果

    PS:维纳滤波的两个函数wiener2与deconvwnr都能够完成维纳滤波的功能, deconvwnr强调图象复原方面,wiener2强调图象空间域锐化的作用,其中J=wiener2(I,[m,n])返回有噪声图像I经过wierner(维纳)滤波后的图像,[m,n]指定滤波器窗口大小为m*n,默认值为3*3,J=wiener2(I,[m,n],noise)指定噪声的功率,[J,noise]=wiener2(I,[m,n])在图像滤波的同时,返回噪声功率的估计值noise。
    imnoise的语法格式为
    J = imnoise(I,type)
    J = imnoise(I,type,parameters)
    其中J = imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。
    参数type和parameters用于确定噪声的类型和相应的参数。

    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif'); %读取图像
    J=imnoise(I,'gaussian',0,0.005); %加入均值为0,方差为0.005的高斯噪声
    K2=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波
    K2=wiener2(J,[5 5]); %对加噪图像进行二维自适应维纳滤波
    K2=wiener2(J,[7 7]); %对加噪图像进行二维自适应维纳滤波
    K2=wiener2(J,[9 9]); %对加噪图像进行二维自适应维纳滤波
    subplot(2,3,1);imshow(I);
    title('原始图像');
    subplot(2,3,2);imshow(J);
    title('加噪图像');
    subplot(2,3,3);imshow(K1);
    title('恢复图像1');
    subplot(2,3,4);imshow(K2);
    title('恢复图像2');
    subplot(2,3,5);imshow(K3);
    title('恢复图像3');
    subplot(2,3,6);imshow(K4);
    title('恢复图像3'); 

    实验三:对加入椒盐噪声的图像分别作均值、中值和维纳滤波

    PS:MATLAB中提供了卷积运算的函数命令conv2,其语法格式为:
    C = conv2(A,B)
    C = conv2(A,B)返回矩阵A和B的二维卷积C。若A为ma×na的矩阵,B为mb×nb的矩阵,则C的大小为(ma+mb+1)×(na+nb+1)。
    MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:
    Y = filter2(h,X)
    其中Y = filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。例如:
    其实filter2和conv2是等价的。MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。
    Fspecial函数用于创建预定义的滤波算子,其语法格式为:
    h = fspecial(type)
    h = fspecial(type,parameters)
    参数type制定算子类型,parameters指定相应的参数,具体格式为前文已有叙述。
    ones产生全1数组,zeros产生全零数组。
    ones(a,b)产生a行b列全1数组
    ones(a)产生a行a列全1数祖

    I=imread(1.gif');
    J1=imnoise(I,'gaussian',0,0.02); %分别加入高斯噪声、椒盐噪声和乘性噪声
    J2=imnoise(I,'salt & pepper',0.02);
    J3=imnoise(I,'speckle',0.02);
    运行效果见图2
    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');
    J=imnoise(I,'salt & pepper',0.02);
    %h=ones(3,3)/9;%产生3*3的全1数组
    %B=conv2(J,h);%卷积运算
    K2=filter2(fspecial('average',3),J)/255; %均值滤波模板尺寸为3
    K= medfilt2(J);%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波
    K1=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波 
    subplot(2,3,1);imshow(I);
    title('原始图像');
    subplot(2,3,2);imshow(J);
    title('加噪图像');
    subplot(2,3,3);imshow(K2);
    title('均值滤波后的图像');
    subplot(2,3,4);imshow(K);
    title('中值滤波后的图像');
    subplot(2,3,5);imshow(K1);
    title('维纳滤波后的图像');
    

    中值滤波对于去除椒盐噪声效果最好,而维纳滤波去除效果则较差。中值滤波对于去除椒盐噪声效果明显,是因为椒盐噪声只在画面上的部分点随机出现,而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大,所以抑制效果好。对点、线和尖顶较多的图像不宜采用中值滤波,因为一些细节点可能被当成噪声点。

    实验四: 分别使用二维统计滤波对椒盐噪声和高斯噪声进行滤波

    PS:MATLAB小波分析工具箱提供的用于图像去噪的函数有wrcoef2和wpdencmp,其语法格式分别为:
    X=wrcoef2(‘type’,C,S,’wname’)
    [xd,treed,datad,perf0,perfl2]=wpdencmp(x,sorh,N,’wname’,crit,par,keepapp)
    其中,X=wrcoef2(‘type’,C,S,’wname’)返回基于小波分解结构[C,S]的小波重构图像X。参数“type”等于a表示重构近似系数;等于h表示重构水平细节系数;等于v表示重构垂直细节系数,等于d表示重构对角细节系数。
    [xd,treed,datad,perf0,perfl2]=wpdencmp(x,sorh,N,’wname’,crit,par,keepapp)是通过小波包定限(阈值化),返回输入信号或图像X的除噪结果xd。输入参数中,[treed,datad]为xd的最佳小波包分解结构;perfl2和perf0表示L^2复原和压缩百分数;perf12=100*(xd的小波包系数向量范数/X的小波包系数向量范数) ^2。Keepapp=1表示近似系数不能阈值化,否则可以阈值化;sorh=’s’为软阈值化,h为硬阈值化.

    I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');
    J1=imnoise(I,'salt & pepper',0.004);
    subplot(2,3,1);imshow(I);
    title('原始图像');
    subplot(2,3,2);imshow(J1);
    title('加椒盐噪声后的图像');
    J= ordfilt2(J1,5,ones(3,4));% 进行二维统计顺序过滤
    subplot(2,3,3);imshow(J);
    title('椒盐噪声滤波后的图像');
    J2=imnoise(I,'gaussian',0,0.004);
    subplot(2,3,4);imshow(J2);
    title('加高斯噪声后的图像');
    J3= ordfilt2(J2,5,ones(3,4));
    subplot(2,3,5);imshow(J3);
    title('高斯噪声滤波后的图像'); 

    实验五: 基于离散余弦变换的图像去噪

    一般而言,我们认为图像的噪声在离散余弦变换结果中处在其高频部分,而高频部分的幅值一般很小,利用这一性质,就可以实现去噪。然而,同时会失去图像的部分细节。

    %读取图像
    X=imread('wangshi.jpg'); 
    X=rgb2gray(X);
    %读取图像尺寸
    [m,n]=size(X); 
    %给图像加噪
    Xnoised=imnoise(X,'speckle',0.01); 
    %输出加噪图像
    subplot(121); 
    imshow(Xnoised);
    %DCT变换
    Y=dct2(Xnoised); 
    I=zeros(m,n);
    %高频屏蔽
    I(1:m/3,1:n/3)=1; 
    Ydct=Y.*I;
    %逆DCT变换
    Y=uint8(idct2(Ydct)); 
    %结果输出
    subplot(122);
    imshow(Y);

    实验六: 基于小波变换的图像去噪

    小波去噪是小波变换较为成功的一类应用,其去噪的基本思路为:含噪图像-小波分解-分尺度去噪-小波逆变换-恢复图像。含噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。比基于傅里叶变换的去噪方法好。

    clear;                 
    X=imread('life.jpg');            
    X=rgb2gray(X);
    subplot(221);          
    imshow(X);             
    title('原始图像');                  
    % 生成含噪图像并图示
    init=2055615866;       
    randn('seed',init);      
    X=double(X);
    % 添加随机噪声
    XX=X+8*randn(size(X));  
    subplot(222);             
    imshow(uint8(XX));              
    title(' 含噪图像 ');       
    %用小波函数coif2对图像XX进行2层
    % 分解
    [c,l]=wavedec2(XX,2,'coif2'); 
    % 设置尺度向量
    n=[1,2];                  
    % 设置阈值向量 , 对高频小波系数进行阈值处理
    p=[10.28,24.08]; 
    nc=wthcoef2('h',c,l,n,p,'s');
    % 图像的二维小波重构
    X1=waverec2(nc,l,'coif2');   
    subplot(223);              
    imshow(uint8(X1));                
    %colormap(map);            
    title(' 第一次消噪后的图像 '); 
    %再次对高频小波系数进行阈值处理
    mc=wthcoef2('v',nc,l,n,p,'s');
    % 图像的二维小波重构
    X2=waverec2(mc,l,'coif2');  
    subplot(224);             
    imshow(uint8(X2));               
    title(' 第二次消噪后的图像 ');  

    参考:http://blog.sina.com.cn/s/blog_7d283bbb0100rs0a.html

            https://blog.csdn.net/zhangquan2015/article/details/78991694

    展开全文
  • 使用偏微分方程(PDE)进行图像去噪的matlab代码集合
  • 源码图像去噪-偏微分去噪.rar 做图像处理已经一年了,搜集和自编了一些m源代码,将分类传上,与大家分享,希望对大家有所帮助。本帖上传的都是图像去噪方面的,文件名即去噪算法名。
  • 在联合冲击滤波器和非线性各向异性扩散滤波器对含噪图像做预处理的基础上,利用边缘检测算子选取自适应参数,构建能同时兼顾图像平滑去噪与边缘保留的自适应全变分模型,并基于Bregman迭代正则化方法设计了其快速迭代...
  • 这个存储库包含使用深度学习对高分辨率图像进行分解的工作的代码。目前最先进的方法,如BM3D,KSVD和非本地手段确实能够产生高质量的去噪效果。但是当图像的大小变得非常高时,例如。 4000 x 80000像素,那些高质量...
  • 包括基于三维协同滤波的黑白、彩色、视频图像处理MATLAB代码等,亲测有效
  • 使用偏微分方程PDE进行图像去噪的matlab代码集合-SNR.m 希望对大家有帮助
  • 使用偏微分方程PDE进行图像去噪的matlab代码集合-main.m 希望对大家有帮助
  • 数字图像去噪典型算法及matlab实现代码图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般...
  • 去噪效果很好的BM3D代码,从国外论坛上找来的,里面的中文论文和代码没有关系。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 449
精华内容 179
关键字:

图像去噪代码