数字图像处理作业(第三次)直方图处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理作业(第三次)直方图处理
第一题第二题(例3.6)
1. 问题:
1)编写函数Y=MyHisteq(X), 对灰度图象X进行直方图均衡化,得到均衡化后的图像Y,假设X的数据类型为uint8。
2)利用自己编写的直方图均衡化函数,重现例3.6中的实验,即对图3.16中的图像进行直方图均衡化。2.程序:
(1) 函数程序:
function Y = MyHisteq(X)
%对灰度图象X进行直方图均衡化,得到均衡化后的图像Y
[m,n]=size(X);
A=zeros(1,256);
for k=0:255
A(k+1)=length(find(X==k))/(m*n);
end
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=A(j)+S1(i); %算Sk
end
end
S2=round(S1*256);
for i=1:256
B(i)=sum(A(find(S2==i)));
end
figure,bar(0:255,B,'b');
title('均衡化后的直方图');
xlabel('灰度'),ylabel('出现概率')
Y=X;
for i=0:255
Y(find(X==i))=S2(i+1);
end
end
(2)主程序:
X=imread('Fig0316(1)(top_left).tif');
figure,imshow(X);
Y=MyHisteq(X);
figure,imshow(Y);
3. 实验结果:
第三题(例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);
for i=2:m-1
for j=2:n-1
X2=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);
end
end
end
figure,imshow(X1);
放大了约130倍的钨丝的SME图像:全局直方图均衡的结果:使用局部直方图统计增强后的图像:
1. 问题:
用自己编写编程实现中值滤波,用96页例3.14的图测试。
2.程序:
(1) 函数程序:
function Y=mid_filter(X,n)
%自编的中值滤波函数。X是需要滤波的图像,n是模板大小(即n×n)
[height, width]=size(X); %输入图像是p×q的,且p>n,q>n
X1=double(X);
X2=X1;
for i=1:height-n+1
for j=1:height-n+1
C=X1(i:i+(n-1),j:j+(n-1)); %取出X1中从(i,j)开始的n行n列元素,即模板(n×n的)
E=C(1,:); %是C矩阵的第一行
for k=2:n
E=[E,C(k,:)]; %将C矩阵变为一个行矩阵
end
mm=median(E); %mm是中值
X2(i+(n-1)/2,j+(n-1)/2)=mm;%将模板各元素的中值赋给模板中心位置的元素end
end
Y=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);
被椒盐噪声污染的电路板X射线图像:用3×3中值滤波器降噪后的图像: