数字图像处理实验报告 本文关键词:图像处理,实验,数字,报告
数字图像处理实验报告 本文简介:数字图像处理实验班级:05611002报学号:1120101383告姓名:张欣数字图像的运算1.1直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。三.程序设计在matlab环境中,程序首先读取
数字图像处理实验报告 本文内容:
数
字
图
像
处
理
实
验
班级:05611002
报
学号:1120101383
告
姓名:张欣
数字图像的运算
1.1
直方图
一.实验目的
1.熟悉matlab图像处理工具箱及直方图函数的使用;
2.理解和掌握直方图原理和方法;
二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计
在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread(
cameraman.tif
);%读取图像
subplot(1,2,1),imshow(I)
%输出图像
title(
原始图像
)
%在原始图像中加标题
subplot(1,2,2),imhist(I)
%输出原图直方图
title(
原始图像直方图
)
%在原图直方图上加标题
四.实验步骤
1.
启动matlab双击桌面matlab图标启动matlab环境;
2.
在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像
(b)原始图像直方图
六.实验报告要求
1、给出实验原理过程及实现代码:
I=imread(
coins.png
);%读取图像
subplot(1,2,1),imshow(I)
%输出图像
title(
原始图像
)
%在原始图像中加标题
subplot(1,2,2),imhist(I)
%输出原图直方图
title(
原始图像直方图
)
%在原图直方图上加标题
2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
1.2
3*3均值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及均值滤波函数的使用;
2.理解和掌握3*3均值滤波的方法和应用;
二.实验设备:1.PC机一台;2.软件matlab
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
I
=
imread(
cameraman.tif
);
figure,imshow(I);
J=filter2(fspecial(‘average’,3),I)/255;
figure,imshow(J);
四.实验步骤
1.
启动matlab
双击桌面matlab图标启动matlab环境;
2.
在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像增强(均值滤波)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果:
观察matlab环境下原始图像经3*3均值滤波处理后的结果。
(a)原始图像
(b)3*3均值滤波处理后的图像
六.实验报告要求
输入一幅灰度图像,给出其图像经3*3均值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行均值滤波,看看对25个点取均值与对9个点取中值进行均值滤波有什么区别?有没有其他的算法可以改进滤波效果。
(a)原始图像
(b)3*3均值滤波处理后的图像
1.3
3*3中值滤波
一.实验目的
1.熟悉matlab图像处理工具箱及中值滤波函数的使用;
2.理解和掌握中值滤波的方法和应用;
二.实验设备:1.PC机一台;2.软件matlab
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。
I
=
imread(
cameraman.tif
);
figure,imshow(I);
J=medfilt2(I,[5,5]);
figure,imshow(J);
四.实验步骤
1.
启动matlab
双击桌面matlab图标启动matlab环境;
2.
在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下原始图像经3*3中值滤波处理后的结果。
(a)原始图像
(b)3*3中值滤波处理后的图像
六.实验报告要求
输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。看看对25个点取中值与对9个点取中值进行中值滤波有什么区别?
(a)原始图像
(b)3*3中值滤波处理后的图像
1.4
图像的缩放
一.实验目的
1.熟悉matlab图像处理工具箱及图像缩放函数的使用;
2.掌握图像缩放的方法和应用;
二.实验设备:1.PC机一台;2.软件matlab
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I
=
imread(
cameraman.tif
);
figure,imshow(I);
scale
=
0.5;
J
=
imresize(I,scale);
figure,imshow(J);
四.实验步骤
1.
启动matlab
双击桌面matlab图标启动matlab环境;
2.
在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察matlab环境下图像缩放后的结果。
(a)原始图像
(b)缩放后的图像
六.实验报告要求
输入一幅灰度图像,给出其图像缩放后的结果,然后改变缩放比率,观察图像缩放后结果柄进行分析。
(a)原始图像
(b)缩放后的图像
数字图像的离散余弦变换
一.实验目的
1.验证二维傅里叶变换的平移性和旋转不变性;
2.实现图像频域滤波,加深对频域图像增强的理解;
二.实验设备
1.PC机一台;
2.软件matlab;
三.实验内容及步骤
(1)产生如图3.1所示图像(128×128大小,暗处=0,亮处=255),用MATLAB中的fft2函数对其进行FFT:
①
同屏显示原图和的幅度谱图;
②
若令,重复以上过程,比较二者幅度谱的异同,简述理由;
图3.1
实验图象f1(x,y)
③
若将顺时针旋转45度得到,试显示的幅度谱,并与的幅度谱进行比较。
1.%生成图形f1
f1=zeros(128,128);
f1((64-30):(63+30),(64-10):(63+10))=1;
%FFT变换
fft_f1=log(1+abs(fftshift(fft2(f1))));
figure;
subplot(121);imshow(f1);title(
Image
f1
);
subplot(122);imshow(fft_f1,[]);title(
FFT
f1
);
2.%计算f2
f2=zeros(128,128);
for
i=1:128;
for
j=1:128;
f2(i,j)=((-1)^(i+j))*f1(i,j);
end
end
fft_f2A=log(1+abs(fft2(f2)));
fft_f2B=log(1+abs(fftshift(fft2(f2))));
figure;
subplot(131);imshow(f2);title(
Image
f2
);
subplot(132);imshow(fft_f2B,[]);title(
FFT
f2
);
subplot(133);imshow(fft_f2A,[]);title(
FFT
f2
Without
FFTShift
);
分析:根据傅里叶变换对的平移性质:
;
当且时,有:
因此可得到:
所以,就是频谱中心化后的结果。
3.%计算f3
f3=imrotate(f2,-45,nearest
);
fft_f3=log(1+abs(fftshift(fft2(f3))));
figure;
subplot(121);imshow(f3);title(
Image
f3
);
subplot(122);imshow(fft_f3,[]);title(
FFT
f3
);
(2)对如图3.2所示的数字图像lena.img(256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。
图3.2
实验图象lena.img
低通滤波:
fid=fopen(
D:/matlab7/image/lena.img,r
);
data=(fread(fid,[256,256],uint8
))
;
subplot(1,2,1)
imagesc(data);
colormap(gray);
title(
LENA,Color,r
);
fft_lena=fft2(data);
f=fftshift(fft_lena);
for
i=1:256
for
j=1:256
if
sqrt((i-128)^2+(j-128)^2)>30
f(i,j)=0;
end
end
end
subplot(1,2,2);
[x,y]=meshgrid(1:1:256);
surf(x,y,f)
高通滤波:
fid=fopen(
D:/matlab7/image/lena.img,r
);
data=(fread(fid,[256,256],uint8
))
;
subplot(1,2,1)
imagesc(data);
colormap(gray);
title(
LENA,Color,r
);
fft_lena=fft2(data);
for
i=1:256
for
j=1:256
if
sqrt((i-128)^2+(j-128)^2)T
im_T(i,j)=im_L(i,j);
else
im_T(i,j)=J(i,j);
end
end
end
colormap(gray);
subplot(2,2,1);imshow(im);title(
Image
);
subplot(2,2,2);imshow(J);title(
Noise
);
subplot(2,2,3);imshow(im_L);title(
四邻域平滑后
);
subplot(2,2,4);imshow(im_T);title(
加门限后
);
对高斯噪声的处理效果:
对脉冲噪声的处理效果:
图像分割(常见的边缘检测算子——Sobel、Prewitt、Log)
一.实验目的
1.熟悉matlab图像处理工具箱及图像边缘检测函数的使用;
2.理解和掌握图像边缘检测(Sobel、Prewitt、Log边缘算子)的方法和应用;
二.实验设备
1.PC机一台;
2.软件matlab;
三.程序设计
在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log边缘算子)函数,设置相关参数,再输出处理后的图像。
I
=
imread(
cameraman.tif
);
J1=edge(I,sobel
);
J2=edge(I,prewitt
);
J3=edge(I,log
);
subplot(1,4,1),imshow(I);
subplot(1,4,2),imshow(J1);
subplot(1,4,3),imshow(J2);
subplot(1,4,4),imshow(J3);
四.实验步骤
1.
启动matlab
双击桌面matlab图标启动matlab环境;
2.
在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的边缘检测(Sobel边缘算子、Prewitt边缘算子、Log边缘算子)函数,设置参数;最后输出处理后的图像;
3.浏览源程序并理解含义;
4.运行,观察显示结果;
5.结束运行,退出;
五.实验结果
观察经过图像边缘检测(Sobel、Prewitt、Log边缘算子)处理后的结果。
(a)原始图像
(b)Sobel边缘算子
(c)Prewitt边缘算子
(d)Log边缘算子
六.实验报告要求
输入一幅灰度图像,给出其图像边缘检测(Sobel、Prewitt、Log边缘算子)后的结果并进行分析对比。
代码:
fid=fopen(
lena.img,r
);
im=(fread(fid,[256,256],uint8
))
;
im=im2double(uint8(im));
im_R=edge(im,Roberts
);
im_P=edge(im,Prewitt
);
im_S=edge(im,Sobel
);
im_L=edge(im,Log
);
colormap(gray);
subplot(321);imshow(im);title(
源图像
);
subplot(323);imshow(im_R);title(
Roberts检测
);
subplot(324);imshow(im_P);title(
Prewitt检测
);
subplot(325);imshow(im_S);title(
Sobel检测
);
subplot(326);imshow(im_L);title(
Log检测
);
14