Matlab编程实现图像增强与去噪

Matlab编程实现图像增强与去噪
改善体成分
Matlab编程实现图像增强与去噪
Matlab中为我们提供了⼤量的函数,以⽅便我们对设计的算法进⾏验证,⽅便我们进⾏科学研究等等。使⽤Matlab 处理数字图像也是相当⽅便的,它给我们提供了很多函数,如读取(imread)、显⽰(imshow)、存储(imwrite)、直⽅图均衡化(histeq)......,相当丰富的函数。
图像增强使⽤⽅法,利⽤Matlab的histeq函数实现。使⽤Matlab⾃带函数加⼊椒盐噪声,分别使⽤、、进⾏去噪。下⾯给出Matlab代码,涉及到的函数如有不清楚的,可以在Matlab命令窗⼝输⼊help 函数名,或者doc 函数名,查看帮助。
使⽤本程序,请新建⼀个.m⽂件,并命名为:imenhden.m,保存,将原始的图⽚与此m⽂件都放在Matlab当前⼯作⽬录下,然后在命令窗⼝输⼊:imenhden(  'lena.png');回车即可,其中lena.png为原始图⽚名。
function [ ] = imenhden( fineName )
性别重塑%% 读⼊图像
I = imread(fineName);
figure(1);
subplot(2,2,1);
糖水不等式
imshow(I);
title('原图像');
%% 直⽅图均衡化
m = 16;
H = histeq(I,m);
subplot(222);
imshow(H,[]);
title('均衡后的图像');
subplot(223);
hist(double(I),m);
title('直⽅图');
subplot(224);
hist(double(H),m)
title('均衡后的直⽅图');
%% 噪声与滤波
figure(2)
subplot(3,2,1);
imshow(I);
title('原图像');
% 加⼊椒盐噪声并显⽰
II = imnoise(I,'salt & pepper');
subplot(3,2,2);
imshow(II);
title('加⼊椒盐噪声后的图像');
% 低通滤波平滑
[B,A] = butter(6,0.2,'low');
J = filter(B,A,double(II));
subplot(3,2,3);
imshow(J,[]);
title('低通滤波平滑');
% 中值滤波平滑
J = medfilt2(II);
subplot(3,2,4);
imshow(J,[]);
金丹四百字title('中值滤波平滑');
% 同态滤波
[I0,M] = imread(fineName);
%I0 = II;M=[];
I1 = log(double(I0)+1);
I2 = fft2(I1);
N=2;D0=0.05*pi;rh=0.8;r=0.5;
[row,col]=size(I2);
for m=1:rowSIG-552
for n=1:col
D1(m,n)=sqrt(m^2+n^2);
H(m,n)=r+(rh/(1+(D0/D1(m,n))^(2*N)));
end
end
调查研究报告格式I3=I2.*single(H);
I4=ifft2(I3);
I5=exp(I4)-1;
subplot(3,2,5);
imshow(I0,M);
title('原图像');
subplot(3,2,6);
imshow(I5,M);
title('同态滤波后的图像');
end
图1 lena原图像
使⽤如上程序对上图lena图像进⾏处理,分别得到下图所⽰的结果:
图2 图像增强——直⽅图均衡化
图3 图像去噪效果对⽐图

本文发布于:2024-09-22 09:56:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/116776.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   噪声   处理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议