MATLAB图像直方图及均衡化处理报告.doc
文本预览下载声明
电信 信息工程3班 卢国梁 200730213246 23
1、用matlab作出图像的直方图
clear;
I=imread(2222.jpg);
I=rgb2gray(I);
add=[];
tab1=zeros(1,256);
for n=0:255
X=I==n;
add=[add;sum(sum(X))];
end;
[a,b]=size(I);
final=add/(a*b);
figure;
stem(final,Marker,none);
figure(2)
imshow(I)
2、用matlab实现图像的直方图均衡化
均衡化前 均衡化后
程序:
clear;
I=imread(2222.jpg);
I=rgb2gray(I);
I2=I;
add=[];
add1=[];
tab1=zeros(1,256);
tab2=zeros(1,256);
for n=0:255
X=I==n;
add=[add;sum(sum(X))];
end;
[a,b]=size(I);
final=add/(a*b);
for n=1:256
for i=1:n
tab1(n)=tab1(n)+final(i);
end;
end;
tab1=tab1*255;
tab2=round(tab1);
for n=1:a
for m=1:b
for t=0:255
if I(n,m)==t
I2(n,m)=tab2(t+1);
end;
end;
end;
end;
for n=0:255
X1=I2==n;
add1=[add1;sum(sum(X1))];
end;
[a1,b1]=size(I2);
final1=add1/(a1*b1);
figure;
stem(final,Marker,none);
figure(2)
imshow(I2);
figure(3)
stem(final1,Marker,none)
均衡化后直方图
实验心得体会:这次先是把老师的课件都看了一次,知道了各种方法,包括多幅图像去噪声啊,中值滤波啊等等,看了一些参考的程序,请教了同学,就写了这么几个程序,中间遇到了一些问题,比如在均衡化的时候判断的时候用错了序列,结果图像处理之后变得更加难看,思量着不可能越处理越糟糕,就里里外外看了好久的程序,毕竟是当局者,看不出来,请教了同学帮忙看错误,才找出了那个错误:if I(n,m)==add(t);I2(n,m)=tab2(t+1);后来改为if I(n,m)==t;I2(n,m)=tab2(t+1);图像也好看很多了!
显示全部