中国地质大学(武汉)
数
字
图
像
处
理
实
验
报
告
教师:
学号:
班级:
姓名:
第一部分图像的空域处理
一、灰度变换
6,根据教本中图4.1.3的方法对P106实施灰度取反。
Matlab程序如下:
I=imread('F:\数字图像处理\P106.TIF')
J=imadjust(I,[0,1],[1,0],1)
subplot(2,2,1),imshow(I)
subplot(2,2,2),imshow(J)
subplot(2,2,3),imhist(I)
subplot(2,2,4),imhist(J)
程序运行结果如图:
二、图像的统计特征
3,计算图像P113的灰度中值(中值是最大灰度和最小灰度的中间值)。Matlab程序如下:
I=imread('F:\数字图像处理\P113.TIF')
disp(size(I))
Hmax=0;
Hmin=255;
for j=1:1:512
for i=1:1:512
Htemp=I(j,i);
if (Htemp>Hmax)
Hmax=Htemp;
end
if(Htemp Hmin=Htemp; end end end disp((Hmax+Hmin)/2) 程序运行结果: >> disp((Hmax+Hmin)/2) 127 三、直方图统计及变换 4,对图象P114进行直方图统计,并完成该图的直方图压缩。Matlab程序如下: I=imread('F:\数字图像处理\P114.TIF') [M,N]=size(I); for i=1:M for j=1:N J(i,j)=0.5*I(i,j); end end subplot(2,2,1),imshow(I) subplot(2,2,2),imshow(J) subplot(2,2,3),imhist(I) subplot(2,2,4),imhist(J) 程序运行结果如图: 四利用Matlab产生噪声 4,对图象P114施加瑞利噪声。 Matlab程序如下: I=imread('F:\数字图像处理\P114.TIF') J=raylrnd(im2double(I)) subplot(1,2,1),imshow(I) subplot(1,2,2),imshow(J) 程序运行结果如图: 五、空间域滤波 6,对加噪的P114图象按照左和右的5边形邻域实施最大均匀平滑法和中值滤波。Matlab程序如下: 最大均匀平滑法: I=imread('F:\数字图像处理\P114.TIF'); J=raylrnd(im2double(I)); [M,N]=size(J); u=zeros(1,9); for i=3:255 for j=2:255 u(1)=J(i,j);u(2)=J(i,j+1);u(3)=J(i-1,j+1); u(4)=J(i-1,j);u(5)=J(i-1,j-1);u(6)=J(i,j-1); u(7)=J(i-2,j-1);u(8)=J(i-2,j);u(9)=J(i-2,j+1); u(5)=(u(1)+u(2)+u(3)+u(4)+u(5)+u(6)+u(7)+u(9)+u(8))/9; K(i,j)=u(5); end end for i=3:M-1 for j=2:N-1 if abs(J(i,j)-K(i,j)<1) K(i,j)=J(i,j); end end end subplot(2,2,1),imshow(I); subplot(2,2,2),imshow(J); subplot(2,2,3),imshow(K); 程序运行结果如图: 中值滤波: I=imread('F:\数字图像处理\P114.TIF') J=raylrnd(im2double(I)) u=zeros(1,9); for i=3:255 for j=2:255 u(1)=J(i,j);u(2)=J(i,j+1);u(3)=J(i-1,j+1); u(4)=J(i-1,j);u(5)=J(i-1,j-1);u(6)=J(i,j-1); u(7)=J(i-2,j-1);u(8)=J(i-2,j);u(9)=J(i-2,j+1); for p=1:8 for q=1:8-p if u(q)>u(q+1) k=u(q);u(q)=u(q+1);u(q+1)=k; end end end K(i,j)=u(5); end end subplot(2,2,1),imshow(I) subplot(2,2,2),imshow(J) subplot(2,2,3),imshow(K) 程序运行结果如图: 六空间域锐化 6利用Sobel算子,按公式4.3.7对图象P106计算Matlab程序如下: I=imread('F:\数字图像处理\P106.TIF') p=[-1 0 1; -2 0 2; -1 0 1;]; J=conv2(I,p,'same'); subplot(1,2,1),imshow(I) subplot(1,2,2),imshow(J) 程序运行结果如图: 七空间高通滤波 2,根据教本98页的H1模板对P112进行计算Matlab程序如下: I=imread('F:\数字图像处理\P112.TIF') subplot(1,2,1),imshow(I) H=[1,-2,1;-2,5,-2;1,-2,1]; J=conv2(im2double(I),H,'same'); subplot(1,2,2),imshow(J) 程序运行结果如图: