计143吴彦博1430631数字图像处理作业(第三次)直方图处理第一题第二题(例3.6)1.问题:1)编写函数Y=MyHisteq(X),对灰度图象X进行直方图均衡化,得到均衡化后的图像Y,假设X的数据类型为uint8。2)利用自己编写的直方图均衡化函数,重现例3.6中的实验,即对图3.16中的图像进行直方图均衡化。2.程序:(1)函数程序:functionY=MyHisteq(X)%对灰度图象X进行直方图均衡化,得到均衡化后的图像Y[m,n]=size(X);A=zeros(1,256);fork=0:255A(k+1)=length(find(X==k))/(m*n);endS1=zeros(1,256);fori=1:256forj=1:iS1(i)=A(j)+S1(i);%算SkendendS2=round(S1*256);fori=1:256B(i)=sum(A(find(S2==i)));endfigure,bar(0:255,B,'b');title('均衡化后的直方图');xlabel('灰度'),ylabel('出现概率')Y=X;fori=0:255Y(find(X==i))=S2(i+1);endend(2)主程序:X=imread('Fig0316(1)(top_left).tif');figure,imshow(X);Y=MyHisteq(X);figure,imshow(Y);3.实验结果:计143吴彦博1430632计143吴彦博1430633第三题(例3.12)1.问题:编写程序,重现例3.12中的实验,产生图3.27。2.程序:X=imread('Fig0327(a)(tungsten_original).tif');figure,imshow(X);Y=histeq(X);figure,imshow(Y);E=4.0;k0=0.4;k1=0.02;k2=0.4;[m,n]=size(X);X1=X;Mg=sum(X1(:))/(m*n);Vg=sum(sum((X1-Mg).^2))/(m*n);fori=2:m-1forj=2:n-1X2=X1(i-1:i+1,j-1:j+1);Ms=sum(X2(:))/9;Vs=sum(sum((X2-Ms).^2))/9;if(Ms=k0*Mg&&k1*Vg=Vs&&Vs=k2*Vg)X1(i,j)=E*X1(i,j);endendendfigure,imshow(X1);3.实验结果:放大了约130倍的钨丝的SME图像:全局直方图均衡的结果:使用局部直方图统计增强后的图像:计143吴彦博14306341.问题:用自己编写编程实现中值滤波,用96页例3.14的图测试。2.程序:(1)函数程序:functionY=mid_filter(X,n)%自编的中值滤波函数。X是需要滤波的图像,n是模板大小(即n×n)[height,width]=size(X);%输入图像是p×q的,且pn,qnX1=double(X);X2=X1;fori=1:height-n+1forj=1:height-n+1C=X1(i:i+(n-1),j:j+(n-1));%取出X1中从(i,j)开始的n行n列元素,即模板(n×n的)E=C(1,:);%是C矩阵的第一行fork=2:nE=[E,C(k,:)];%将C矩阵变为一个行矩阵endmm=median(E);%mm是中值X2(i+(n-1)/2,j+(n-1)/2)=mm;%将模板各元素的中值赋给模板中心位置的元素endendY=uint8(X2);end(2)主程序:X=imread('Fig0335(a)(ckt_board_saltpep_prob_pt05).tif');figure,imshow(X);n=3;Y=mid_filter(X,n);figure,imshow(Y);3.实验结果:被椒盐噪声污染的电路板X射线图像:用3×3中值滤波器降噪后的图像: