数字图像处理作业(第三次)直方图处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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中值滤波器降噪后的图像:

相关文档
最新文档