matlab中的图像增强实验附程序代码

合集下载

MATLAB图像增强总结程序

MATLAB图像增强总结程序

MATLAB图像增强程序举例1.灰度变换增强程序:% GRAY TRANSFORMclc;I=imread('pout.tif');imshow(I);J=imadjust(I,[0.3 0.7],[0 1],1); %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1. figure;imshow(J);J=imadjust(I,[0.3 0.7],[0 1],0.5); % if GAMMA is less than 1,the mapping si weighted to ward higher (brighter)%output values.figure;imshow(J);J=imadjust(I,[0.3 0.7],[0 1],1.5); % if GAMMA is greater than 1,the mapping si weighted toward lower (darker)%output values.figure;imshow(J)J=imadjust(I,[0.3 0.7],[0 1],1); % If TOP<BOTTOM,the output image is reversed,as in a p hotographic negative.figure;imshow(J);2.直方图灰度变换%直方图灰度变换[X,map]=imread('forest.tif');I=ind2gray(X,map);%把索引图像转换为灰度图像imshow(I);title('原图像');improfile%用鼠标选择一条对角线,显示线段的灰度值figure;subplot(121)plot(0:0.01:1,sqrt(0:0.01:1))axis squaretitle('平方根灰度变换函数')subplot(122)maxnum=double(max(max(I)));%取得二维数组最大值J=sqrt(double(I)/maxnum);%把数据类型转换成double,然后进行平方根变换%sqrt函数不支持uint8类型J=uint8(J*maxnum);%把数据类型转换成uint8类型imshow(J)title('平方根变换后的图像')3.直方图均衡化程序举例% HISTGRAM EAQUALIZATIONclc;% Clear command windowI=imread('tire.tif');% reads the image in tire.tif into Iimshow(I);% displays the intensity image I with 256 gray levels figure;%creates a new figure windowimhist(I);% displays a histogram for the intensity image IJ=histeq(I,64);% transforms the intensity image I,returning J an intensity figure;%image with 64 discrete levelsimshow(J);figure;imhist(J);J=histeq(I,32);%transforms the intensity image ,returning in % J an intensity figure;%image with 32 discrete levelsimshow(J);figure;imhist(J);4.直方图规定化程序举例% HISTGRAM REGULIZATIONclc;%Clear command windowI=imread('tire.tif');%reads the image in tire.tif into IJ=histeq(I,32);%transforms the intensity image I,returning in%J an intensity image with 32 discrete levels[counts,x]=imhist(J);%displays a histogram for the intensity image IQ=imread('pout.tif');%reads the image in tire.tif into Ifigure;imshow(Q);figure;imhist(Q);M=histeq(Q,counts);%transforms the intensity image Q so that the%histogram of the output image M approximately matches counts figure;imshow(M);figure;imhist(M);空域滤波增强部分程序1.线性平滑滤波I=imread('eight.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(I)title('原图像')subplot(222),imshow(J)title('添加椒盐噪声图像')K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法subplot(223),imshow(K1)title('3x3窗的邻域平均滤波图像')K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法subplot(224),imshow(K2)title('7x7窗的邻域平均滤波图像')2.中值滤波器MATLAB中的二维中值滤波函数medfit2来进行图像中椒盐躁声的去除%IMAGE NOISE REDUCTION WITH MEDIAN FILTERclc;hood=3;%滤波窗口[I,map]=imread('eight.tif');imshow(I,map);noisy=imnoise(I,'salt & pepper',0.05);figure;imshow(noisy,map);filtered1=medfilt2(noisy,[hood hood]);figure;imshow(filtered1,map);hood=5;filtered2=medfilt2(noisy,[hood hood]);figure;imshow(filtered2,map);hood=7;filtered3=medfilt2(noisy,[hood hood]);figure;imshow(filtered3,map);3. 4邻域8邻域平均滤波算法% IMAGE NOISE REDUCTION WITH MEAN ALGORITHM clc;[I,map]=imread('eight.tif');noisy=imnoise(I,'salt & pepper',0.05);myfilt1=[0 1 0;1 1 1;0 1 0];%4邻域平均滤波模版myfilt1=myfilt1/9;%对模版归一化filtered1=filter2(myfilt1,noisy);imshow(filtered1,map);myfilt2=[1 1 1;1 1 1;1 1 1];myfilt2=myfilt2/9;filtered2=filter2(myfilt2,noisy);figure;imshow(filtered2,map);频域增强程序举例1.低通滤波器% LOWPASS FILTERclc;[I,map]=imread('eight.tif');noisy=imnoise(I,'gaussian',0.05);imshow(noisy,map);myfilt1=[1 1 1;1 1 1;1 1 1];myfilt1=myfilt1/9;filtered1=filter2(myfilt1,noisy);figure;imshow(filtered1,map);myfilt2=[1 1 1;1 2 1;1 1 1];myfilt2=myfilt2/10;filtered2=filter2(myfilt2,noisy); figure;imshow(filtered2,map);myfilt3=[1 2 1;2 4 2; 1 2 1]; myfilt3=filter2(myfilt3,noisy); figure;imshow(filtered3,map);2.布特沃斯低通滤波器图像实例I=imread('saturn.png');J=imnoise(I,'salt & pepper',0.02); subplot(121),imshow(J)title('含噪声的原图像')J=double(J);f=fft2(J);g=fftshift(f);[M,N]=size(f);n=3;d0=20;n1=floor(M/2);n2=floor(N/2);for i=1:M;for j=1:N;d=sqrt((i-n1)^2+(j-n2)^2);h=1/(1+0.414*(d/d0)^(2*n));g(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122),imshow(g)title('三阶Butterworth滤波图像')色彩增强程序举例1.真彩色增强实例:%真彩色图像的分解clc;RGB=imread('peppers.png');subplot(221),imshow(RGB)title('原始真彩色图像')subplot(222),imshow(RGB(:,:,1))title('真彩色图像的红色分量')subplot(223),imshow(RGB(:,:,2))title('真彩色图像的绿色分量')subplot(224),imshow(RGB(:,:,3))2.伪彩色增强举例:I=imread('cameraman.tif');imshow(I);X=grayslice(I,16);%thresholds the intensity image I using%threshold values 1/16,2/16,…..,15/16,returning an indexed %image in X figure;imshow(X,hot(16));3.假彩色增强处理程序举例[RGB]=imread('ghost.bmp');imshow(RGB);RGBnew(:,:,1)=RGB(:,:,3);RGBnew(:,:,2)=RGB(:,:,1);RGBnew(:,:,3)=RGB(:,:,2);figure;subplot(121);imshow(RGB);subplot(122);imshow(RGBnew);主要转载自:/s/blog_488c87020100cice.htm l。

实验二图像增强

实验二图像增强

实验二图像增强一、目的1.熟悉并学会使用MATLAB中图像增强的相关函数;2.了解图像增强的方法,噪声去除的方法和去噪效果。

二、实验内容1.利用MATLAB函数读和显示图像;2.对图像增加噪声;3.用不同方法去噪:如平滑、中值滤波增加噪声程序:I=imread('autumn.tif');subplot(311)imshow(I) ;title('原图')%叠加均值为0,方差为0.02的高斯噪声subplot(312)J1=imnoise(I,'gaussian',0,0.02);%imnoise函数归一化原因,很小方差但效果很明显imshow(J1);title('加高斯白噪声图')%叠加密度为0.04的椒盐噪声subplot(313)J2=imnoise(I,'salt & pepper',0.3);imshow(J2);title('加椒盐噪声图')imwrite(J1,'autumn_gaussian.tif');imwrite(J2,'autumn_saltpepper.bmp');线性平滑滤波程序:%线性平滑滤波I=imread('eight.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(I)title('原图像')subplot(222),imshow(J)title('添加椒盐噪声图像')K1=filter2(fspecial('average',3),J)/255;%应用3X3领域窗口法subplot(223),imshow(K1)title('3X3窗的领域平均滤波图像')K2=filter2(fspecial('average',7),J)/255;%应用7X7领域窗口法subplot(224),imshow(K2)title('7X7窗的领域平均滤波图像')中值滤波程序:clc%中值滤波hood=3; %滤波窗口[I,map]=imread('eight.tif');subplot(151)imshow(I,map);title('原图像')noisy=imnoise(I,'salt & pepper',0.05); subplot(152)imshow(noisy,map);title('加椒盐噪声像')filtered1=medfilt2(noisy,[hood hood]); subplot(153),imshow(filtered1,map);title('33去噪')hood=5;filtered2=medfilt2(noisy,[hood hood]); subplot(154)imshow(filtered2,map);title('55去噪')hood=7;filtered3=medfilt2(noisy,[hood hood]); subplot(155)imshow(filtered3,map); title('77去噪')。

基于MATLAB的图像增强处理

基于MATLAB的图像增强处理

灰度变换增强:像素的选择:>> rgb=imread('peppers.png'); >> c=[12 146 410];>> r=[104 156 129];>> pixels=impixel(rgb,c,r);62 34 63166 54 6059 28 47绘制像素灰度分布曲线:>> i=fitsread('solarspectra.fts'); >> imshow(i,[]);>> improfile>> i=imread('liftingbody.png'); >> subplot(1,2,1);imshow(i);>> x=[19 427 416 77];>> y=[96 462 37 33];>> subplot(1,2,2);improfile(i,x,y); >> grid on;绘制图像的等值线:>> i=imread('circuit.tif'); >> subplot(1,2,1);imshow(i); >> subplot(1,2,2);imcontour(i,3);直方图:>> i=imread('pout.tif');>> subplot(1,2,1);imshow(i); >> subplot(1,2,2);imhist(i);图像像素的统计特性:>> i=imread('pout.tif'); >> b=mean2(i)b =110.3037>> c=std2(i)c =23.1811>> j=medfilt2(i);>> r=corr2(i,j)r =0.9959图像的区域属性:>> bw=imread('text.png'); >> l=bwlabel(bw);>> stats=regionprops(l,'all');>> stats(23)ans =Area: 48Centroid: [121.3958 15.8750]BoundingBox: [118.5000 8.5000 6 14]SubarrayIdx: {[9 10 11 12 13 14 15 16 17 18 19 20 21 22] [119 120 121 122 123 124]}MajorAxisLength: 15.5413MinorAxisLength: 5.1684Eccentricity: 0.9431Orientation: -87.3848ConvexHull: [10x2 double]ConvexImage: [14x6 logical]ConvexArea: 67Image: [14x6 logical]FilledImage: [14x6 logical]FilledArea: 48EulerNumber: 1Extrema: [8x2 double]EquivDiameter: 7.8176Solidity: 0.7164Extent: 0.5714PixelIdxList: [48x1 double]PixelList: [48x2 double]灰度变换:线性变换:>> x=imread('forest.tif');>> f0=0;g0=0;>> f1=10;g1=10;>> f2=180;g2=1800;>> f3=255;g3=255;>> figure;plot([f0,f1,f2,f3],[g0,g1,g2,g3]);>> axis tight;>> r1=(g1-g0)/(f1-f0);>> b1=g0-r1*f0;>> r2=(g2-g1)/(f2-f1);>> b2=g1-r2*f1;>> r3=(g3-g2)/(f3-f2);>> b3=g2-r3*f2;>> [m,n]=size(x);>> x1=double(x);>> for i=1:mfor j=1:nf=x1(i,j);g(i,j)=0;if(f>=f1)&(f<=f2)g(i,j)=r1*f+b2;else if(f>=f2)&(f<=f3)g(i,j)=r3*f+b3;end;end;end;end;>> figure;imshow(mat2gray(g))分段线性变换:>> x=imread('forest.tif');>> f0=0;g0=0;>> f1=50;g1=50;>> f2=220;g2=250;>> f3=255;g3=255;>> subplot(1,2,1);plot([f0,f1,f2,f3],[g0,g1,g2,g3]); >> axis tight;>> r1=(g1-g0)/(f1-f0);>> b1=g0-r1*f0;>> r2=(g2-g1)/(f2-f1);>> b2=g1-r2*f1;>> r3=(g3-g2)/(f3-f2);>> b3=g2-r3*f2;>> [m,n]=size(x);>> x1=double(x);>> for i=1:mfor j=1:nf=x1(i,j);g(i,j)=0;if(f>=f1)&(f<=f2)g(i,j)=r1*f+b2;else if(f>=f2)&(f<=f3)g(i,j)=r3*f+b3;end;end;end;end;>> subplot(1,2,2);imshow(mat2gray(g));非线性灰度变换:>> x=imread('forest.tif');>> c=255/log(256);>> x=0:255;>> y=c*log(1+x);>> subplot(1,2,1);plot(x,y);axis tight; >> [m,n]=size(x);>> x1=double(x);>> for i=1:mfor j=1:ng(i,j)=0;g(i,j)=c*log(x1(i,j)+1);end;end;>> subplot(1,2,2);imshow(mat2gray(g));对灰度图像进行灰度值调整:>> p=imread('pout.tif');>> pj=imadjust(p);>> ph=histeq(p);>> pa=adapthisteq(p);>> subplot(1,2,1);imshow(p);>> subplot(1,2,2);imshow(pj);对索引图像进行灰度值调整:>> rgb1=imread('football.jpg');>> rgb2=imadjust(rgb1,[.2 .3 0;.6 .7 1],[]);>> subplot(1,2,1);imshow(rgb1);>> subplot(1,2,2);imshow(rgb2);增加图像的亮度:>> rgb1=imread('football.jpg');>> rgb2=imadjust(rgb1,[.2 .3 0;.6 .7 1],[]);>> subplot(1,2,1);imshow(rgb1);>> subplot(1,2,2);imshow(rgb2);>> clear;>> figure('Renderer','zbuffer');axesm bries;>> text(1.2,-1.8,'Briesemeister projection');>> framem('FlineWidth',1);>> load topo;>> geoshow(topo,topolegend,'DisplayType','texturemap'); >> demcmap(topo);>> set(gcf,'color','w');>> brighten(.5);直方图均衡化:>> i=imread('tire.tif');>> j=histeq(i);>> subplot(2,2,1);imshow(i); >> subplot(2,2,2);imshow(j); >> subplot(2,2,3);imhist(i,64); >> subplot(2,2,4);imhist(j,64);直方图的规定化:>> i=imread('forest.tif');>> h=0:255;>> subplot(2,2,1);imshow(i); >> j=histeq(i,h);>> subplot(2,2,2);imshow(j); >> subplot(2,2,3);imhist(i,64); >> subplot(2,2,4);imhist(j,64);空域滤波增强:平滑滤波器:>> i=imread('cameraman.tif'); >> subplot(2,2,1);imshow(i); >> h=fspecial('motion',20,45); >> mb=imfilter(i,h,'replicate'); >> subplot(2,2,2);imshow(mb); >> h=fspecial('disk',10);>> bl=imfilter(i,h,'replicate'); >> subplot(2,2,3);imshow(bl); >> h=fspecial('unsharp');>> sh=imfilter(i,h,'replicate'); >> subplot(2,2,4);imshow(sh);用各种尺寸的模板平滑图像:>> i=imread('eight.tif');>> j=imnoise(i,'salt & pepper',0.025); >> subplot(2,3,1);imshow(i);>> subplot(2,3,2);imshow(j);>> k1=filter2(fspecial('average',3),j); >> k2=filter2(fspecial('average',5),j); >> k3=filter2(fspecial('average',7),j); >> k4=filter2(fspecial('average',9),j); >> subplot(2,3,3);imshow(uint8(k1)); >> subplot(2,3,4);imshow(uint8(k2)); >> subplot(2,3,5);imshow(uint8(k3)); >> subplot(2,3,6);imshow(uint8(k4));中值滤波器:>> i=imread('cameraman.tif'); >> j1=imnoise(i,'salt & pepper',0.01); >> k1=medfilt2(j1);>> j2=imnoise(i,'gaussian',0.01); >> k2=medfilt2(j2);>> subplot(2,3,1);imshow(i);>> subplot(2,3,2);imshow(j1);>> subplot(2,3,3);imshow(k1);>> subplot(2,3,4);imshow(j2);>> subplot(2,3,5);imshow(k2);>> i=imread('cameraman.tif');>> j1=imnoise(i,'salt & pepper',0.01); >> k1=medfilt2(j1,[6,6]);>> j2=imnoise(i,'gaussian',0.01); >> k2=medfilt2(j2,[6,6]);>> subplot(2,3,1);imshow(i);>> subplot(2,3,2);imshow(j1);>> subplot(2,3,3);imshow(k1,[]); >> subplot(2,3,4);imshow(i);>> subplot(2,3,5);imshow(j2);>> subplot(2,3,6);imshow(k2,[]);带噪声的图像的最小值与最大值滤波图像:>> a=imread('eight.tif');>> b=imnoise(a,'salt & pepper',0.025);>> do=[0 0 1 0 0;0 1 0 1 0;1 0 1 0 1;0 1 0 1 0;0 0 1 0 0]; >> c=ordfilt2(b,1,do);>> d=ordfilt2(b,9,do);>> subplot(2,2,1);imshow(a);>> subplot(2,2,2);imshow(b);>> subplot(2,2,3);imshow(c);>> subplot(2,2,4);imshow(d);自适应滤波器:>> rgb=imread('saturn.png'); >> i=rgb2gray(rgb);>> j=imnoise(i,'gaussian',0,0.025); >> k=wiener2(j,[5 5]);>> subplot(1,3,1);imshow(i); >> subplot(1,3,2);imshow(j); >> subplot(1,3,3);imshow(k);锐化滤波器:线性锐化滤波器:>> i=imread('rice.png');>> h=fspecial('laplacian');>> i2=filter2(h,i);>> subplot(1,2,1);imshow(i); >> subplot(1,2,2);imshow(i2);非线性锐化滤波器:>> [i,map]=imread('eight.tif'); >> subplot(2,2,1);imshow(i,map); >> i=double(i);>> [ix,iy]=gradient(i);>> gm=sqrt(ix.*ix+iy.*iy);>> out1=gm;>> subplot(2,2,2);imshow(out1,map); >> out2=i;>> j=find(gm>=15);>> out2(j)=gm(j);>> subplot(2,2,3);imshow(out2,map); >> out3=i;>> j=find(gm>=20);>> out3(j)=255;>> q=find(gm<20);>> out3(q)=0;>> subplot(2,2,4);imshow(out3,map);>> i=imread('eight.tif');>> subplot(2,2,1);imshow(i); >> h1=fspecial('sobel');>> i1=filter2(h1,i);>> h2=fspecial('prewitt'); >> i2=filter2(h2,i);>> h3=fspecial('log');>> i3=filter2(h3,i);>> subplot(2,2,2);imshow(i1); >> subplot(2,2,3);imshow(i2); >> subplot(2,2,4);imshow(i3);频域滤波增强:低通滤波:>> i1=imread('eight.tif');>> i2=imnoise(i1,'salt & pepper'); >> f=double(i2);>> g=fft2(f);>> g=fftshift(g);>> [N1,N2]=size(g);>> n=2;>> d0=50;>> n1=fix(N1/2);>> n2=fix(N2/2);>> for i=1:N1for j=2:N2d=sqrt((i-n1)^2+(j-n2)^2);h=1/(1+0.414*(d/d0)^(2*n));s1(i,j)=h*g(i,j);if(g(i,j)>50)s2(i,j)=0;elses2(i,j)=g(i,j);end;end;end;>> s1=ifftshift(s1);>> s2=ifftshift(s2);>> x2=ifft2(s1);>> x3=uint8(real(x2));>> x4=ifft2(s2);>> x5=uint8(real(x4));>> subplot(2,2,1);imshow(i1); >> subplot(2,2,2);imshow(i2); >> subplot(2,2,3);imshow(x3); >> subplot(2,2,4);imshow(x5);高通滤波器:>> j=imread('rice.png');>> subplot(2,3,1);imshow(uint8(j)); >> j=double(j);>> f=fft2(j);>> g=fftshift(f);>> [M,N]=size(f);>> n1=floor(M/2);>> n2=floor(N/2);>> d0=20;>> for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d>=d0h1=1;h2=1+0.5;elseh1=0;h2=0.5;end;g1(i,j)=h1*g(i,j);g2(i,j)=h2*g(i,j);end;end;>> g1=ifftshift(g1);>> g1=uint8(real(ifft2(g1)));>> g2=ifftshift(g2);>> g2=uint8(real(ifft2(g2)));>> subplot(2,3,2);imshow(g1);>> subplot(2,3,3);imshow(g2);>> n=2;>> d0=20;>> for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d==0h1=0;h2=.5;elseh1=1/(1+(d0/d)^(2*n));h2=1/(1+(d0/d)^(2*n))+0.5;end;gg1(i,j)=h1*g(i,j);gg2(i,j)=h2*g(i,j);end;end;>> gg1=ifftshift(gg1);>> gg1=uint8(real(ifft2(gg1)));>> gg2=ifftshift(gg2);>> gg2=uint8(real(ifft2(gg2)));>> subplot(2,3,4);imshow(gg1);>> subplot(2,3,5);imshow(gg2);同态滤波器:>> i=imread('eight.tif');>> j=double(i);>> f=fft2(j);>> g=fftshift(f);>> [M,N]=size(f);>> d0=10;>> r1=0.5;>> rh=2;>> c=4;>> n1=floor(M/2);>> n2=floor(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);h=(rh-r1)*(1-exp(-c*(d.^2/d0.^2)))+r1;end;end;>> g=ifftshift(g);>> g=uint8(real(ifft2(g)));>> subplot(1,2,1);imshow(i);>> subplot(1,2,2);imshow(g);彩色增强:利用密度分割法进行伪彩色增强:>> a=imread('eight.tif');>> subplot(1,2,1);imshow(a);>> c=zeros(size(a));>> pos=find(a<20);>> c(pos)=a(pos);>> b(:,:,3)=c;>> c=zeros(size(a));>> pos=find((a>20)&(a<40));>> c(pos)=a(pos);>> b(:,:,2)=c;>> c=zeros(size(a));>> pos=find(a>=40);>> c(pos)=a(pos);>> b(:,:,1)=c;>> b=uint8(b);>> subplot(1,2,2);imshow(b);真彩色增强:>> rgb=imread('peppers.png');>> subplot(2,2,1);imshow(rgb); >> subplot(2,2,2);imshow(rgb(:,:,1)); >> subplot(2,2,3);imshow(rgb(:,:,2)); >> subplot(2,2,4);imshow(rgb(:,:,3));。

MATLAB常用图像增强方法(精)

MATLAB常用图像增强方法(精)

M A T L A B常用图像增强方法(精)-CAL-FENGHAI.-(YICAI)-Company One1数字图像处理实验报告实验名称:常用图像增强方法专业班级: 07级电子信息工程2班姓名:王超学号:一、实验目的1、熟悉并掌握MATLAB图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。

二、实验步骤1、显示图像直方图选择一幅图像,转化为灰度图像后显示其直方图,建立M文件程序如下:a=imread('f:\';b=rgb2gray(a;subplot(1,2,1;imshow(b;subplot(1,2,2;imhist(b结果如图:2、直方图均衡化建立M文件,程序如下:a=imread('f:\';b=rgb2gray(a;subplot(1,3,1;imshow(b; subplot(1,3,2;imhist(b;c=histeq(b,64;[c,T]=histeq(b;subplot(1,3,3;imhist(c结果如图:3、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3*3,5*5,7*7建立M文件程序如下:a=imread('f:\';x=rgb2gray(a;b=imnoise(x,'salt & pepper', ;subplot(2,2,1;imshow(b;c=medfilt2(b,[3 3];subplot(2,2,2;imshow(c;d=medfilt2(b,[5 5];subplot(2,2,3;imshow(d;e=medfilt2(b,[7 7];subplot(2,2,4;imshow(e结果如图:1图为加噪图像,2、3、4图分别为窗口采用3*3、5*5、7*7的滤波后的图像4、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波建立M文件程序如下:a=imread('f:\';b=rgb2gray(a;subplot(1,2,1;imshow(b;h=[1,2,1;0,0,0;-1,-2,-1];c=filter2(h,b;subplot(1,2,2;imshow(c结果如图:5、采用三种不同算子对图像进行锐化处理建立M文件如下:a=imread('f:\';b=rgb2gray(a;subplot(2,2,1;imshow(b;h=[1,2,1;0,0,0;-1,-2,-1]; %Sobel算子c=filter2(h,b;subplot(2,2,2;imshow(c ;d=double(b;h=[0,1,0;1,-4,0;0,1,0]; %拉氏算子e=conv2(d,h,'same';subplot(2,2,3;imshow(e ;h=[1,1,1;0,0,0;-1,-1,-1]; %Prewitt算子f=filter2(h,b;subplot(2,2,4;imshow(f结果如图:1图为原图的灰度图像;2图为经Sobel算子锐化处理后的图像;3图为经拉氏算子锐化处理后的图像;4图为经Prewitt算子锐化处理的图像三、实验总结1、不同平滑滤波器的处理效果,及其优缺点二维中值滤波器的窗口形式有多种,比如线状、方形等等。

图像处理的MATLAB实现实验一 空域图像增强

图像处理的MATLAB实现实验一  空域图像增强

图像处理的MATLAB 实现实验一 空域图像增强一、实验目的(1)掌握基本的空域图像增强方法,观察图像增强的效果,加深理解;(2)了解空域平滑模板的特性及其对不同噪声的影响;(3)了解空域锐化模板的特性及其对边缘的影响。

二、实验内容(1)直方图处理:直方图均衡(2)空域平滑:均值滤波、中值滤波;三、实验要求(1)用matlab 语言进行仿真实验;(2)递交实验报告,要求给出实验原理、源程序、实验结果及分析。

四、具体实验内容及要求4.1 实验内容4.1.1 直方图均衡(1)读入原图像pollen.png 并显示原图像以及直方图(2)对原图像进行直方图均衡处理(3)显示均衡后图像以及直方图。

4..1.2 图像空域平滑(1)读入原图像lena.bmp 并显示;(2)对原图像分别添加高斯噪声和椒盐噪声,并显示加噪图像;(3)采用均值滤波进行去噪处理,并显示去噪图像;(4)采用中值滤波进行去噪处理,并显示去噪图像。

4.1.3 空域锐化(1)读入原图像bridge.gif 并显示;(2)采用sobel 算子对图像进行处理,并显示结果;(3)尝试采用其他锐化模板进行处理。

4.2 实验原理4.2.1 直方图均衡实验原理对图像像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度级进行压缩。

而且,输入灰度级r 与输出灰度级s 的概率密度函数()r p r 和()s p s 有如下关系()()ds dr r p s p r s = 积分形式如下()()()dw w p L r T s rr ⎰-==01 4.2.2 图像滤波 (1)、椒盐噪声的中值滤波由于椒盐噪声的出现使该点的像素比周围的亮或暗许多,如果在某个模板中,对像素由小到大重新排列,那么最暗或最亮的点一定被排在两侧,取模板中间位置的灰度值像素代替待处理图像像素的灰度值,从而达到滤除噪声的目的。

(2)、高斯噪声的均值滤波均值滤波是一种空域线性的滤波方法,用像素邻域内各像素的灰度平均值代替该像素原来的灰度值;均值滤波采用的是模板操作,将模板在图像中从左到右,从上到下的顺序移动将模板中心与每个像素重合;将模板中个系数与其对应的像素一并相乘,然后再经所有的结果一并相加;将上面相加的结果重新付给模板中心对应的像素点,那么该灰度值,就是经均值滤波后平滑后的灰度值。

图像增强实验及MATLAB在图像处理中的一些函数资料

图像增强实验及MATLAB在图像处理中的一些函数资料

实验一图像增强实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验目标Matlab自带图片,存储地址:E:\MATLAB2011\toolbox\images\imdemos(根据安装位置调整)三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像(不得使用“cameraman.tif”),给出其灰度直方图结果,并进行灰度直方图分布原理分析。

1、实验原理过程:每一张图片都是一张灰度图片,都是由一些像素点组成,matlab 读取图片,并显示该图片的灰度级范围。

实现代码:I=imread('D:\MATLAB7\toolbox\images\imdemos\rice.png');%读取图像 subplot(1,2,1),imshow(I) %输出图像 subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题 2、0100200原始图像直方图实验1.2 灰度均衡化一.实验目的1.熟悉matlab 图像处理工具箱中灰度均衡函数的使用; 2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC 机一台;2.软件matlab ;三.程序设计在matlab 环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

图像增强的matlab源代码带注释

图像增强的matlab源代码带注释

代码一:% 2.灰度线性变换,利用imadjust函数对图像局部灰度范围进行扩展% MATLAB 程序实现如下:I=imread('e.jpg');subplot(2,2,1),imshow(I);title('原始图像');axis([50,250,50,200]);axis on; %显示坐标系I1=rgb2gray(I); %图像I必须为彩色图像subplot(2,2,2),imshow(I1);title('灰度图像');axis([50,250,50,200]);axis on; %显示坐标系J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1] subplot(2,2,3),imshow(J);title('线性变换图像[0.1 0.5]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1]%imadjust(I1,[a b],[])中a和b的值越接近零,图像越亮subplot(2,2,4),imshow(K);title('线性变换图像[0.3 0.7]');axis([50,250,50,200]);grid on; %显示网格线axis on; %显示坐标系%注释:% Matlab函数rgb2gray简介% 函数功能:将真彩色图像转换为灰度图像。

% 调用格式:I = rgb2gray(RGB)% 将真彩色RGB图像转换成灰度图像。

(RGB并不发生变化)% newmap = rgb2gray(map) 返回一个灰度调色板。

% 相关函数:ind2gray, mat2gray, ntsc2rgb, rgb2ind, rgb2ntsc\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\代码二:%利用均值滤波器对图像进行平滑处理,噪声得到了有效的去除%并且选择模版的尺寸越大,噪声的去除效果越好,同时图像边缘细节越模糊clear all;I=imread('e.jpg');M=rgb2gray(I);%创建均值滤波器模版H1=ones(3)/9;H2=ones(7)/49;%添加高斯噪声,均值为0,方差为0.02J=imnoise(M,'gaussian',0,0.02);%转化J为double数据类型J=double(J);%均值滤波G1=conv2(J,H1,'same');G2=conv2(J,H2,'same');%图像显示subplot(2,2,1);imshow(M);title('原始图像');subplot(2,2,2);imshow(J,[]);title('添加高斯噪声图像');subplot(2,2,3);imshow(G1,[]);title('3*3均值滤波图像');subplot(2,2,4);imshow(G2,[]);title('7*7均值滤波图像');\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 代码三:%利用阈值对图像进行平滑处理,噪声得到了有效的去除%并且和3*3滤波器相比,阈值法去噪效果更明显clear all;I=imread('e.jpg');M=rgb2gray(I);[m n]=size(M);T=50;%设定阈值G=[]; %创建数组用来存储新得到的图像像素值%创建均值滤波器模版H1=ones(3)/9;%添加椒盐噪声J=imnoise(M,'salt & pepper',0.05);%转化J为double数据类型J=double(J); %用于卷积公式时要转化为双精度%均值滤波G1=conv2(J,H1,'same');%G2=conv2(J,H2,'same');%图像显示for i=1:mfor j=1:nif abs(J(i,j)-G1(i,j))>TG(i,j)=G1(i,j);elseG(i,j)=J(i,j);endendendsubplot(2,2,1);imshow(M);title('原始图像');subplot(2,2,2);imshow(J,[]);title('添加椒盐噪声图像');subplot(2,2,3);imshow(G1,[]);title('3*3均值滤波图像');subplot(2,2,4);imshow(G,[]);title('超限像素平滑图像');\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 代码四:%利用中值滤波去噪clear all;I=imread('e.jpg');M=rgb2gray(I);N1=imnoise(M,'salt & pepper',0.04);N2=imnoise(M,'gaussian',0,0.02);N3=imnoise(M,'speckle',0.02); %添加乘性噪声G1=medfilt2(N1); %中值滤波去噪G2=medfilt2(N2);G3=medfilt2(N3);subplot(2,3,1);imshow(N1);title('添加椒盐噪声图像');subplot(2,3,2);imshow(N2);title('添加高斯噪声');subplot(2,3,3);imshow(N3);title('添加乘性噪声');subplot(2,3,4);imshow(G1);title('椒盐噪声中值滤波图像');subplot(2,3,5);imshow(G2);title('高斯噪声中值滤波图像'); subplot(2,3,6);imshow(G3);title('乘性噪声中值滤波图像');。

数字图像处理中图像增强的四种matlab编程方法

数字图像处理中图像增强的四种matlab编程方法

数字图像处理中图像增强的四种matlab编程方法图像增强处理log图像增强程序:clear allclose alliptsetpref('ImshowBorder', 'tight')im1 = imread('f:\照片\57.jpg')%im5 =rgb2gray(im1)figureimshow(im1)im2=log(1+double(im1))*0.2%im3=imadjust(im2,[0.5 1],[0.1 0.5],0.6) figure imshow(im2)原图像Log 系数0.2时系数0.3系数为0.1时由图片看出当C在0.2附近时,图像效果有了明显的改善,当大于0.3时,图像白色加重,而当其小于0.1时,图像黑色加重.指数图像增强:程序clear allclose alliptsetpref('ImshowBorder', 'tight')im1 = imread('f:\照片\57.jpg')%im5 =rgb2gray(im1)figureimshow(im1)im3=log(double(im1))im2=exp(double(im3))*0.01figureimshow(im2)原图像系数为0.001时系数为0.02系数为0.01系数为0.06由图片看出当C在0.02附近时,图像效果有了明显的改善,当大于0.06时,图像白色加重,而当其小于0.01时,图像黑色加重.绝对值图像增强程序:clear allclose alliptsetpref('ImshowBorder', 'tight')im1 = imread('f:\照片\57.jpg')%im5 =rgb2gray(im1)figureimshow(im1)im2=abs(double(im1))*0.01 其中调整系数为cfigureimshow(im2)原图像系数为0.015时系数为0.03时系数为0.005时由图片看出当C在0.015附近时,图像效果有了明显的改善,当大于0.003时,图像白色加重,而当其小于0.005时,图像黑色加重开方图像增强程序:clear allclose alliptsetpref('ImshowBorder', 'tight')im1 = imread('f:\照片\57.jpg')%im5 =rgb2gray(im1)figureimshow(im1)im2=sqrt(double(im1))*0.08%im3=imadjust(im2,[0.5 1],[0.1 0.5],0.6) figure imshow(im2)原图像系数为0.03时系数为0.05时系数为0.005时由图片看出当C在0.03附近时,图像效果有了明显的改善,当大于0.05时,图像白色加重,而当其小于0.005时,图像黑色加重。

实验5 图像频域增强

实验5 图像频域增强

试验5 图像频域增强一.试验目的通过本实验使学生掌握使用MATLAB的二维傅里叶变换进行频域增强的方法。

二.试验内容(一)dftuv函数:function [U,V]=dftuv(M,N)u=0:(M-1);v=0:(N-1);idx=find(u>M/2);u(idx)=u(idx)-M;idy=find(v>N/2);u(idy)=v(idy)-N;[V,U]=meshgrid(v,u);低通滤波器函数:function [H,D]=lpfilter(type,M,N,D0,n)[U,V]=dftuv(M,N);D=sqrt(U.^2+V.^2);switch typecase'ideal'H=double(D<=D0);case'btw'if nargin==4n=1;endH=1./(1+(D./D0).^(2*n));case'gaussian'H=exp(-(D.^2)./(2*(D0^2)));otherwiseerror('Unknown filter type')end教材程序:%====================¶ÁÈëÔ-ͼÏñ====================================== lena=imread('d:\test_images\lena_gray_1.tif','tif');figure(1);subplot(1,2,1);imshow(lena);title('origin');size(lena);%===ÁãÑÓÍØ===lena_B=padarray(lena,[512,512],'post');%0 padd fp 2subplot(1,2,2);imshow(lena_B);title('lena_B');%====°áÒÆ====for i=1:1024for j=1:1024lena_B_2(i,j)=(-1).^(i+j).*lena_B(i,j);endendfigure(2);subplot(1,2,1);imshow(lena_B_2);title('banyi');S=abs(fft2(lena_B));%δ°áÒƵÄƵÆ×Fc_lena=fftshift(fft2(lena_B));subplot(1,2,2);imshow(abs(Fc_lena),[]);title('Spectum lena');%4[H1,D1]=lpfilter('gaussian',1024,1024,50,1);F=fft2(lena_B,size(H1,1),size(H1,2));G=real(ifft2(H1.*F));Gf=G(1:size(lena_B,1),1:size(lena_B,2));figure(3);subplot(1,2,1);imshow(uint8(Gf));title('δ²Ã¼ôµÄͼÏñ'); Gf1=G(1:size(lena,1),1:size(lena,2));subplot(1,2,2);imshow(uint8(Gf1));;title('»Ö¸´µÄͼÏñ');origin lenaBbanyi Spectum lena未裁剪的图像恢复的图像(二)频域低通滤波器(白条)f1=zeros(64,64);f1(12:52,24:40)=255;subplot(1,3,1);imshow(f1);title('origin');F1=padarray(f1,[64,64],'post');%==理想滤波器=======H=lpfilter('ideal',128,128,60);F=fft2(F1,size(H,1),size(H,2));G=real(ifft2(H.*F));GF=G(1:size(f1,1),1:size(f1,2));subplot(1,3,2);imshow(GF);title('ideallp');%==巴特沃斯滤波器===========[H1,D1]=lpfilter('btw',128,128,70);F1=fft2(F1,size(H1,1),size(H1,2));G1=real(ifft2(H1.*F1));GF1=G1(1:size(f1,1),1:size(f1,2));subplot(1,3,3);imshow(GF1);title('btwlp');origin ideallp btwlp频域低通滤波器(lena)lena_gray=imread('lena_gray.tif','tif');lena_gauss=imnoise(lena_gray,'gauss',0.03);subplot(1,3,1);imshow(lena_gauss);title('origin');LENA=padarray(lena_gauss,[512,512],'post');%==理想滤波器=========H=lpfilter('ideal',1024,1024,80);F=fft2(LENA,size(H,1),size(H,2));G=real(ifft2(H.*F));GF=G(1:size(lena_gauss,1),1:size(lena_gauss,2));subplot(1,3,2);imshow(uint8(GF));title('ideallp');%==巴特沃斯滤波器=======H1=lpfilter('btw',1024,1024,100);F1=fft2(LENA,size(H1,1),size(H1,2));G1=real(ifft2(H1.*F1));GF1=G1(1:size(lena_gauss,1),1:size(lena_gauss,2));subplot(1,3,3);imshow(uint8(GF1));title('btwlp');origin ideallp btwlp(3)低通滤波器函数:function [H,D]=hpfilter(type,M,N,D0,n)[U,V]=dftuv(M,N);D=sqrt(U.^2+V.^2);switch typecase'ideal'H=double(D>=D0);case'btw'if nargin==4n=1;endH=1-1./(1+(D./D0).^(2*n));case'gaussian'H=1-exp(-(D.^2)./(2*(D0^2)));otherwiseerror('Unknow filter type')end频域低通滤波器(白条)f1=zeros(64,64);f1(12:52,24:40)=255;subplot(1,3,1);imshow(f1);title('origin');F1=padarray(f1,[64,64],'post');%==理想滤波器=========H=hpfilter('ideal',128,128,50);F=fft2(F1,size(H,1),size(H,2));G=real(ifft2(H.*F));GF=G(1:size(f1,1),1:size(f1,2));subplot(1,3,2);imshow(GF);title('ideallp'); %==巴特沃斯滤波器=============[H0,D]=hpfilter('btw',128,128,50);F0=fft2(F1,size(H0,1),size(H0,2));G0=real(ifft2(H0.*F0));GF0=G0(1:size(f1,1),1:size(f1,2));subplot(1,3,3);imshow(GF0);title('btwlp');origin ideallp btwlp频域低通滤波器(lena)lena_gray=imread('lena_gray.tif','tif');lena_gauss=imnoise(lena_gray,'gauss',0.02);subplot(1,3,1);imshow(lena_gauss);title('origin');LENA=padarray(lena_gauss,[512,512],'post');%==H=hpfilter('ideal',1024,1024,150);F=fft2(LENA,size(H,1),size(H,2));G=real(ifft2(H.*F));GF=G(1:size(lena_gauss,1),1:size(lena_gauss,2));subplot(1,3,2);imshow(uint8(GF));title('ideallp');%==H0=hpfilter('btw',1024,1024,50);F0=fft2(LENA,size(H0,1),size(H0,2));G0=real(ifft2(H0.*F0));GF0=G0(1:size(lena_gauss,1),1:size(lena_gauss,2));subplot(1,3,3);imshow(uint8(GF0));title('btwlp');origin ideallp btwlp三.思考理想低通滤波器会产生振铃现象,巴特沃斯不会,但高阶的滤波器会产生振铃;低通滤波器会保留大部分信息,即低频成分,而高通滤波器会滤掉低频成分,剩下图像的大体形状。

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验一.实验目的及要求1、熟悉并掌握MA TLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。

二、实验设备MATLAB 6.5 以上版本、WIN XP 或WIN2000 计算机三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

(可将每段程序保存为一个.m文件)1.直方图均衡化clear all; close all % Clear the MATLAB workspace of any variables% and close open figure windows.I = imread('pout.tif'); % Reads the sample images ‘pout.tif’, and stores it inimshow(I) % an array named I.display the imagetext(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I) % Create a histogram of the image and display it in% a new figure window.[I2,T] = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a new figure window.text(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot((0:255)/255,T); % plot the transformation curve.imwrite (I2, 'pout2.png'); % Write the newly adjusted image I2 to a disk file named% ‘pout2.png’.imfinfo('pout2.png') % Check the contents of the newly written file2.直接灰度变换clear all; close allI = imread('cameraman.tif'); 注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。

数字图像实验报告图像增强实验

数字图像实验报告图像增强实验

数字图像实验报告图像增强实验一、实验目的熟悉并掌握MATLAB图像处理工具箱的使用;理解并掌握常用的图像的空域增强技术。

二、实验内容对一幅图像分别添加高斯、椒盐和斑点噪声,并分别进行均值和中值滤波处理,显示处理前后的图像。

三、实验方法及程序学生自行编程实现提示:1.加入高斯噪声的函数调用。

I_noise =imnoise(I,’gaussian’,0,0.1)2.加入椒盐噪声的函数调用。

I_noise = imnoise(I,’salt&pepper’,0.06)3.加入斑点噪声的函数调用。

I_noise= imnoise(I,’speckle’,0.1)4.均值滤波的函数调用。

I_smooth=imfilter(I_noise,fspecial(‘average’,5))5.中值滤波的函数调用。

I_smooth=medfilt2(I_noise,[3 3])A=imread('toyobjects.png');B=imnoise(A,'gaussian',0,0.1);%加入高斯噪声C=imnoise(A,'salt & pepper',0.05);%加入椒盐噪声D=imnoise(A,'speckle',0.05);%加入斑点噪声I1=imfilter(B,fspecial('average',5));I2= medfilt2(B);%高斯中值处理K1=imfilter(C,fspecial('average',5));K2= medfilt2(C);%椒盐中值处理G1=imfilter(D,fspecial('average',5));G2= medfilt2(D);%斑点噪声中值处理figure(1);imshow(A);title('原图像');figure(2);subplot(1,3,1);imshow(B);title('高斯噪声'); subplot(1,3,2);imshow(I1);title('高斯均值滤波处理'); subplot(1,3,3);imshow(I2);title('高斯中值滤波处理'); figure(3);subplot(1,3,1);imshow(C);title('椒盐噪声'); subplot(1,3,2);imshow(K1);title('椒盐均值处理'); subplot(1,3,3);imshow(K2);title('椒盐中值处理'); figure(4);subplot(1,3,1);imshow(D);title('斑点噪声'); subplot(1,3,2);imshow(G1);title('斑点噪声均值处理'); subplot(1,3,3);imshow(G2);title('斑点噪声中值处理');四、实验结果与分析分别运用B=imnoise(A,'gaussian',0,0.1)C=imnoise(A,'salt & pepper',0.05)D=imnoise(A,'speckle',0.05);三个函数啊加入不同的噪声,再用I_smooth=imfilter(I_noise,fspecial(‘average’,5))I_smooth=medfilt2(I_noise,[3 3])对加入噪声的图像进行处理,比较不同的处理方式对加入噪声后的图像处理后的清晰度。

matlab-光电图像处理实验(图像增强)

matlab-光电图像处理实验(图像增强)

光学图像处理实验报告学生姓名:班级:学号:指导教师:日期:一、实验室名称:二、实验项目名称:图像增强三、实验原理:图像增强处理是数字图像处理的一个重要分支。

很多由于场景条件的影响图像拍摄的视觉效果不佳,这就需要图像增强技术来改善人的视觉效果,增强图象中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

比如突出图像中目标物体的某些特点、从数字图像中提取目标物的特征参数等等,这些都有利于对图像中目标的识别、跟踪和理解。

图像增强处理主要内容是突出图像中感兴趣的部分,减弱或去除不需要的信息。

这样使有用信息得到加强,从而得到一种更加实用的图像或者转换成一种更适合人或机器进行分析处理的图像。

图像增强的应用领域也十分广阔并涉及各种类型的图像。

例如,在军事应用中,增强红外图像提取我方感兴趣的敌军目标;在医学应用中,增强X射线所拍摄的患者脑部、胸部图像确定病症的准确位置;在空间应用中,对用太空照相机传来的月球图片进行增强处理改善图像的质量;在农业应用中,增强遥感图像了解农作物的分布;在交通应用中,对大雾天气图像进行增强,加强车牌、路标等重要信息进行识别;在数码相机中,增强彩色图像可以减少光线不均、颜色失真等造成的图像退化现象。

图像增强可分成两大类:频率域法和空间域法。

前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。

采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。

具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。

图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。

基于matlab的图像对比度增强处理的算法的研究与实现

基于matlab的图像对比度增强处理的算法的研究与实现

基于matlab的图像对比度增强处理的算法的研究与实现一、引言图像对比度增强是数字图像处理领域中的一项重要技术,能够使图像的细节更加清晰,提高图像的视觉质量,对于医学影像、遥感图像、摄影等领域都有重要的应用价值。

在这方面,基于matlab的图像处理工具箱提供了丰富的图像处理函数和工具,可以方便快捷地实现对图像的对比度增强处理。

本文将重点研究和实现基于matlab的图像对比度增强处理的算法,包括对比度拉伸、直方图均衡化、自适应直方图均衡化等方法的原理和实现。

二、对比度增强的基本原理图像的对比度是指图像中不同灰度级之间的区别程度,对比度增强即是通过一定的处理方法,使图像中的灰度级在整体上更加分散,使得图像的细节更加明显。

常用的对比度增强方法包括对比度拉伸、直方图均衡化、自适应直方图均衡化等。

1. 对比度拉伸对比度拉伸是通过线性变换的方式来增强图像的对比度,其基本原理是对图像的所有像素进行灰度值的线性变换,从而改变图像的动态范围。

假设原始图像的像素灰度级范围为[amin, amax],目标图像的像素灰度级范围为[bmin, bmax],对比度拉伸的变换函数可以表示为:\[f(x) = \frac{x-amin}{amax-amin} \times (bmax-bmin) + bmin\]x为原始图像的像素值,f(x)为经过对比度拉伸后的像素值。

通过这种方式,可以使得原始图像中较暗的像素被拉伸到较亮的区域,从而增强图像的对比度。

2. 直方图均衡化直方图均衡化是一种通过调整图像像素的累积分布函数(CDF)来增强图像对比度的方法。

其基本原理是将原始图像的灰度直方图进行均衡化,使得各个灰度级之间的分布更加平衡。

具体而言,对于一幅大小为M×N的图像,其直方图均衡化的变换函数为:\[f(x) = (L-1) \times \sum_{k=0}^{x} p_r(r_k)\]f(x)为像素灰度级为x经过直方图均衡化后的值,L为像素的灰度级数,p_r(r_k)为原始图像中灰度级为r_k的像素的概率密度函数(PDF),通过对累积分布函数的调整,可以使得图像的对比度得到增强。

图像增强图像复原 matlab

图像增强图像复原 matlab

实验1 图像增强、图像复原实验目的:掌握图像增强、图像复原的方法。

掌握如何用matlab工具实现图像增强和图像复原。

实验内容:用matlab工具实现图像增强和图像复原,观察图像增强和复原的效果,并对结果进行分析。

一、 空间域变换增强--增强对比度增强对比度实际是增强原图像的各部分的反差。

实际中往往是通过改变原图中某两个灰度值之间的动态范围来实现的(如图1)。

图1 增强对比度从图1中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了。

利用MATLAB图像处理工具箱进行实验。

参考的MATLAB代码所示:X1=imread('image.tif');figure,imshow(X1)f0=0;g0=0;f1=70;g1=30;f2=180;g2=230;f3=255;g3=255;r1=(g1-g0)/(f1-f0);b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);b3=g2-r3*f2;[m,n]=size(X1);X2=double(X1);for i=1:mfor j=1:nf=X2(i,j);g(i,j)=0;if(f>=0)&(f<=f1)g(i,j)=r1*f+b1;elseif (f>=f1)&(f<=f2)g(i,j)=r2*f+b2;elseif (f>=f2)&(f<=f3)g(i,j)=r3*f+b3;endendendfigure,imshow(mat2gray(g))选择一幅灰度级比较狭窄的图像,设计一个灰度变换函数,参考上述程序对其进行灰度变换,显示变换前后的效果,并进行分析。

二、频率域图像增强(一)基本原理卷积理论是频域技术的基础。

设函数f(x,y)与线性位不变算子h(x,y)的卷积结果是g(x,y),即g(x,y)=h(x,y)*f(x,y)。

实验一图像增强实验

实验一图像增强实验

实验一图像增强实验实验目的:1.掌握图像增强的算法2.学习利用MATLAB进行图像的增强实验内容:1.图像的点操作、邻域操作算法2.图像的直方图处理算法实验步骤:1.读入图像,用MATLAB函数实现图像读入(1)启动MATLAB(2)在命令行窗口直接输入MATLAB命令,按“回车”键后执行(3)读入命令和显示命令分别为 imread 和 imshow(4)如A=imread('D:\上官军\medical image\woman.jpg')Imshow (A)结果显示2.实现图像点操作运算(gamma校正和对数校正)(1)根据图像线形变换三种形式,图像反转 S=L-1-r 、对数变换S=c*log(1+r) 、幂次变换 S=c*r .^γ编写图像点操作函数(2)建立新的M文件,点操作函数代码如下:function s=dian(r,leixing,chengshu,gamma1)% r为处理图像,leixing为操作类型s1=imread(r);s2=im2double(s1);%将图像转为double数据型switch leixingcase 'fanzhuan's=1-s2;case 'duishu's=chengshu*log(1+s2);case 'gamma's=chengshu*s2.^gamma1;otherwiseerror('错误')endsubplot(1,2,1), imshow(s1);subplot(1,2,2),imshow(s);(3)实际操作,如反转:Y=dian('D:\上官军\medical image\woman.jpg','fanzhuan',1,1);3.图像邻域处理(1)图像邻域处理是通过设计相应的滤波器来处理相邻图像像素,主要为均值滤波器、中指滤波器、高斯滤波器等(2)建立新的M文件,均值滤波函数代码如下:function d=avefilt(x,n)a(1:n,1:n)=1;%a即n×n模板,元素全是1p=size(x);%输入图像是p×q的x1=double(x);%A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素for i=1:p(1)-n+1for j=1:p(2)-n+1c=x1(i:i+(n-1),j:j+(n-1)).*a;%取出x1中从(i,j)开始的n行n列元素与模板相乘s=sum(sum(c));%求c矩阵(即模板)中各元素之和x1(i+(n-1)/2,j+(n-1)/2)=s/(n*n);%将模板各元素的均值赋给模板中心位置的元素endendd=uint8(x1);subplot(1,2,1),imshow(x);title('均值滤波前图像');subplot(1,2,2),imshow(d);title('均值滤波后图像');(3)实际操作,代码如下:A=imread('D:\上官军\medical image\woman.jpg');Y=avefilt(A,3);滤波前图像滤波后图像4.直方图的均衡处理(1)图像直方图利用MATLAB工具箱中imhist产生,根据直方图均衡计算公式:编写直方图均衡函数(2)建立新的M文件,直方图均衡代码如下:function s=zhifangtu(r)s1= r;[m,n]=size(s1);%检测图像大小count=0;s2=zeros(m,n);% s2是行列分别为m、n的0矩阵s3=zeros(1,255);figure,imhist(s1);[counts]=imhist(s1);for k=1:255count=count+counts(k); s3(k)=255*count/(m*n); end%根据直方图均衡公式编写for x=1:mfor y=1:ns2(x,y)=s3(s1(x,y)+1); endends=s2;s=mat2gray(s);s=im2uint8(s);subplot(1,2,1),imshow(s);title('均衡后的图片');subplot(1,2,2),imhist(s);title('均衡后的直方图');(3)实际操作,代码如下:A=imread('D:\上官军\medical image\woman.jpg'); Y=zhifangtu(A)均衡后的图片501001502002500均衡后的直方图(注:可编辑下载,若有不当之处,请指正,谢谢!)。

图像处理作业(MATLAB的数字图像增强应用)

图像处理作业(MATLAB的数字图像增强应用)

图像处理作业(MATLAB的数字图像增强应用)目录MATLAB的数字图像增强应用 (2)前言 (2)一、数字图像处理的历史与发展应用 (2)二、MATLAB与数字图像处理 (3)(一)MATLAB简介 (3)(二)MATLAB用于数字图像增强的优势 (4)(三)基于MATLAB的图像增强方法和算法 (4)三、图像增强应用 (6)(一)直方图增强 (6)(二)直方图均衡化 (9)(三)图像二值化 (12)(四)对比度增强 (13)1.伪彩色增强 (16)2.真色彩增强 (17)四、实训总结 (18)MATLAB的数字图像增强应用前言基于数字图像增强对图像处理的重要性,将计算软件MATLAB应用于数字图像增强中,使用这一软件完成图像的对比度增强、直方图均衡化、平滑滤波、锐化、彩色增强等操作,并给出了处理前后的对照图像。

同时论述了MATLAB在进行图像处理试验时简洁、高效的特点。

关键词:图像增强,MATLAB,直方图均衡化,平滑滤波,锐化,彩色。

一、数字图像处理的历史与发展应用数字图像处理是20世纪60年代发展起来的一门新兴学科。

随着微型计算机性能的提高,数字图像处理技术也得到了广泛的普及,当前图像处理技术在工业自动化、工业检测、医学、遥感探测等各个方面都发挥着十分重要的作用。

对于图像处理系统来说,处理流程基本可以划分为三个阶段,首先是对获得的原始图像进行预处理;其次是抽取图像特征;最后是识别分析。

其中图像预处理阶段即图像增强阶段极为重要,如果此阶段选择的处理方式不当,后面的工作将很难得成功。

在具体的应用过程中,获取的原始图像未必是最适合处理的,例如由于光照、移动、噪声等原因,导致了图像的质量不高。

但是受条件所限又不能再次取样,这就需要对采集的图像进行增强,使其比原始图像更适合于特定的应用。

因为针对的具体应用并不相同,因此图像增强并没有通用的理论。

其具体的方法分为两大类:空间域方法和频域方法。

“空间域”一词是指图像平面自身,这类方法是以对图像的像素点直接处理为基础的,通过点运算处理将产生一幅新的图像,是一种既简单又重要的图像处理技术。

基于matlab软件的图像频率域增强实验

基于matlab软件的图像频率域增强实验

基于matlab 软件的图像频率域增强实验一.实验内容:1 滤波器定义2 频率域的处理3 频率域处理的评价<一> 滤波器定义1 首先知道定义低通滤波器(1) 定义截止频率D0(2) 根据低通滤波的三个公式:A 理想低通滤波器的定义一个二维的理想低通滤波器(ILPF )的转换(传递)函数满足(是一个分段函数)B 一个截止频率在与原点距离为D 0的n 阶Butterworth 低通滤波器(BLPF )的转换函数:H(u,v) = 0.5, 当 D 0 = D(u,v)C 高斯滤波器 FFT图像 F(u,v)H(u,v) H(u,v)FFT -增强图⎩⎨⎧>≤=0),(0),(1),(D v u D D v uD v u H 其中:D 0 为截止频率 D(u,v)为距离函数 D(u,v)=(u 2+v 2)1/22 能够用定义的滤波器与频率图像计算1) 图像傅立叶变换F=fft2(I);F=fftshift(F);2) 图像与滤波器点击G(u,v)=F(u,v)H(u,v)3) 图像反傅立叶变换G=ifftshift(G);g=abs(ifft2(G));二.实验目的:利用matlab 软件对图像进行处理,要求利用傅里叶变换函数fft2进行对图像的傅里叶变换,利用频谱中心化函数fftshift 对图像进行频谱中心化操作,最后检查保存处理后的图像。

三.实验步骤:1.打开matlab 软件,读取目标图像2.利用函数fft2对图像进行傅里叶变换操作3.利用函数fftshift 对图像进行频谱中心化处理4.检查并保存处理后图像四.实验结果:1/222(,)22M N D u v u v ⎡⎤⎛⎫⎛⎫=-+-⎢⎥ ⎪ ⎪⎝⎭⎝⎭⎢⎥⎣⎦五.实验心得:通过本次实验,学习了matlab软件对图像进行频率域增强处理时的基本功能和函数指令操作,让我认识到matlab软件功能的强大,以及自己在研究软件处理图像时的不足,对傅里叶变换和频谱中心操作时函数指令的认识和理解不够透彻。

图像增强实验

图像增强实验

图像增强实验报告实验要求:1.用matlab自编程序,实现图像的加权平均平滑滤波(p78页W4模板)2.用matlab自编程序,实现图像的拉普拉斯锐化(p91页的W2模板)实验内容:一. 图像的加权平均平滑滤波程序:function gg=jiaquan4(t,quan) %4-领域加权平均法% t %图片矩阵% quan %加权变量if nargin>2error('输入变量过多');%输入变量两个以上显示错误endif nargin==1quan=2;%默认权值end[m1 n1 k]=size(t);if k==3t=rgb2gray(t);%彩色图转换灰度图endq=4+quan;%比例因子的倒数w=[0 1 0;1 quan 1;0 1 0];%4领域加权(3*3)模板w=uint8(w);m2=m1-1;n2=n1-1;m3=m1-2;n3=n1-2;g=zeros(m3,n3);for m=2:m2for n=2:n2ff=[t(m-1,n-1),t(m-1,n),t(m-1,n+1);t(m,n-1),t(m,n),t(m,n+1);t(m+1,n-1),t(m+1,n),t(m+1,n+1)]; %与模板同样大小的图块g(m-1,n-1)=sum(sum(ff.*w))/q;%模板平滑后的灰度值(非整数)endendgg=uint8(g);%取整并把数据格式转换为uint8imshow(gg);%显示(1)原图(2)4-领域加权平均平滑滤波后的图结论:原图白的很白而黑的很黑,平滑后的图灰度分布比较均匀。

二. 拉普拉斯锐化程序function gg=lplsrhuan(t,af) %4-领域拉普拉斯锐化% t %图片矩阵% af %锐化强度系数if nargin>2error('输入变量过多');%输入变量两个以上显示错误endif nargin==1af=2;%默认锐化强度系数end[m1 n1 k]=size(t);if k==3t=rgb2gray(t);%彩色图转换灰度图endw=[0 -af 0;-af 1+4*af -af;0 -af 0];%4领域锐化(3*3)模板w=uint8(w);m2=m1-1;n2=n1-1;m3=m1-2;n3=n1-2;g=zeros(m3,n3);for m=2:m2for n=2:n2ff=[t(m-1,n-1),t(m-1,n),t(m-1,n+1);t(m,n-1),t(m,n),t(m,n+1);t(m+1,n-1),t(m+1,n),t(m+1,n+1)]; %与模板同样大小的图块g(m-1,n-1)=sum(sum(ff.*w));%模板锐化后的灰度值(非整数)endendgg=uint8(g);%取整并把数据格式转换为uint8imshow(gg);%显示(1)锐化强度系数为0.1时(2)锐化强度系数为0.5时(3)锐化强度系数为1时:结论:锐化强度系数越大则图像变得更加亮且轮廓模糊。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像增强实验
一:试验目的
熟悉并掌握数字图像空域增强:空域变换增强,空域滤波增强 二:实验内容
(1)直方图均衡化进行图像增强代码: imag=imread('pout.tif'); imag=im2double(imag);
subplot(2,2,1);imshow(imag);title('原始图像');
subplot(2,2,2);imhist(imag);title('原始图像的直方图'); imag1=histeq(imag);
subplot(2,2,3);imshow(imag1);title('直方图均衡化后的图像');
subplot(2,2,4);imhist(imag1);title('直方图均衡化后的图像的直方图'); 直方图均衡化进行图像增强效果图
(2)对图像加入椒盐噪声,并分别用中值滤波和自适应的方法进行去噪处理的代码:
imag2=imnoise(imag,'salt',0.02); imag3=medfilt2(imag2); imag4=wiener2(imag2);
subplot(2,2,1);imshow(imag);title('原始图像');
subplot(2,2,2);imshow(imag2);title('加入椒盐噪声后的图像'); subplot(2,2,3);imshow(imag3);title('进行中值滤波后的图像'); subplot(2,2,4);imshow(imag4);title('进行自适应滤波后的图像');
对图像加入椒盐噪声,并分别用中值滤波和自适应的方法进行去噪处理的效果
原始图像
0.5
1
原始图像的直方图
直方图均衡化后的图像
0.5
1
0直方图均衡化后的图像的直方图
(3)对比度增强代码:
I=imread('C:\Documents and Settings\Administrator\桌面\测试图像\rice.tif'); J=imadjust(I,[0.3,0.7],[]);
subplot(2,2,1);imshow(I);title('原始图像'); subplot(2,2,2);imshow(J);title('');
subplot(2,2,3);imhist(I);title('原始图像的灰度直方图');
subplot(2,2,4);imhist(J);title('进行对比度增强后的图像的灰度直方图'); 对比度增强效果
原始图
像加入椒盐噪声后的图

进行中值滤波后的图
像进行自适应滤波后的图像
原始图

100
200
0500
1000
原始图像的灰度直方图
100
200
0500
10001500
2000进行对比度增强后的图像的灰度直方图。

相关文档
最新文档