数字图像处理实验报告(matlab)

更新时间:2024-03-25 11:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099

2011年10月

数字图像处理

实验一 直方图均衡化

一、 实验目的:

1. 熟悉图像数据在计算机中的存储方式; 2. 掌握图像直方图均衡化这一基本处理过程。

二、 实验条件:

PC微机一台和MATLAB软件。

三、 实验内容:

1. 读入图像数据到内存中,并显示读入的图像; 2. 实现直方图均衡化处理,显示处理前后图像的直方图。 3. 显示并保存处理结果。

四、 实验步骤:

1.打开Matlab编程环境;

2.获取实验用图像。用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。

3.获取输入图像的直方图:用’imhist’函数处理图像。 4.均衡化处理:用’histeq’函数处理图像即可。

5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。 6.保存实验结果:用’imwrite’函数处理。

五、 实验程序及结果:

1、实验程序

subplot(6,2,1);

i=imread('test1-1.jpg'); imhist(i);title('test1-1 hist'); subplot(6,2,2); i=im2double(i);

imshow(i);title('test1-1 ?-í???'); subplot(6,2,3); s=histeq(i);

imhist(s);title('test1-1 balancedhist'); subplot(6,2,4);

imshow(s);title('test1-1 ?ùoa?ˉoóμ?í???');

2

数字图像处理

subplot(6,2,5);

i=imread('test1-2.jpg'); imhist(i);title('test1-2 hist'); subplot(6,2,6); i=im2double(i);

imshow(i);title('test1-2 ?-í???'); subplot(6,2,7); s=histeq(i);

imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);

imshow(s);title('test1-2 ?ùoa?ˉoóμ?í???');

subplot(6,2,9);

i=imread('test1-3.jpg'); imhist(i);title('test1-3 hist'); subplot(6,2,10); i=im2double(i);

imshow(i);title('test1-3 ?-í???'); subplot(6,2,11); s=histeq(i);

imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);

imshow(s);title('test1-3 ?ùoa?ˉoóμ?í???');

3

数字图像处理

2、实验结果

test1-1 hist5000005000005000005000000.10.20.30.40.50.6test1-3 hist0.70.80.91test1-3 原图像50100150test1-2 balancedhist200250test1-2 均衡化后的图像0.10.20.30.40.50.6test1-2 hist0.70.80.91test1-2 原图像50100150test1-1 balancedhist200250test1-1 均衡化后的图像test1-1 原图像50000050100150test1-3 balancedhist200250test1-3 均衡化后的图像5000000.10.20.30.40.50.60.70.80.91

六、 实验思考

1. 数字图像直方图均衡化之后直方图为什么不是绝对平坦的?

答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。因此在对图像进行均衡化处理时,只将直方图上灰度分布较密的部分拉伸,较稀疏的部分压缩,使图像的对比度在总体上得到增强,因此数字图像直方图均衡化之后直方图为什么不是绝对平坦的。

2. 如何实现图像局部直方图均衡化?

答:对图像中每个像素点所在的淋浴范围求出弧度转换函数,然后仅应用于该中心点处。先在定义的邻域内计算灰度直方图,然后利用这一直方图来获得关于直方图均衡化的灰度变换函数,实现该邻域内中心像素点的增强,然后将邻域的中心移到相邻的像素并重复以上过程。

4

数字图像处理

实验二 频域平滑滤波

一、 实验目的:

1. 熟悉图像数据在频率域的表示; 2. 掌握频域图像增强的基本步骤。

二、 实验条件:

PC微机一台和MATLAB软件。

三、 实验内容:

1. 综合利用所学的数字图像基本存储结构、图像变换、图像增强等知识实现频率

域图像增强;

2. 在频率域进行用半径值分别为5,15,30,80和230的理想低通滤波器对图像进行平滑,并观察滤波效果。

四、 实验步骤:

1.打开Matlab编程环境;

2.获取实验用图像。用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。

3.将图像’uint8’格式转换为’double’格式,并将各点数据乘以-1的(x+y)次方以便FFT变换后的结果中低频数据处于图像中央。

4.用’fft2’函数对图像数据进行二维FFT变换,得到频率域图像数据。 5.计算频率域图像的幅值并进行对数变换,利用’imshow’显示频率域图像。 6.在频率图像上去除滤波半径意外的数据(置0)。

7.计算频率域图像的幅值并进行对数变换,利用’imshow’显示频率域图像。 8.用’fft2’函数对图像数据进行二维FFT逆变换,并用’real’函数取其实部,得到处理过的空间域图像数据。

9.将图像数据各点数据乘以-1的(x+y)次方。

10.用’imshow’函数显示处理结果图像数据,并用’imwrite’函数保存图像处理结果数据。

5

数字图像处理

五、 实验程序及结果:

1、实验程序

I=imread('test2.jpg');

subplot(1,2,1),imshow(I);title('test2 ?-í???'); f=double(I); g=fft2(f); g=fftshift(g); [M,N]=size(g);

m=fix(M/2);n=fix(N/2);clc for i=1:M for j=1:N

d=sqrt((i-m)^2+(j-n)^2); if d>r h=0; else h=1; end

result(i,j)=h*g(i,j); end end

result=ifftshift(result); J1=ifft2(result); J2=unit8(real(J1));

subplot(1,2,2),imshow(J2);title('àí??μíí¨??2¨′|àíoóμ?í???'); imwrite(J2,'J2.jpg')

6

数字图像处理

2、实验结果

r=5

r=15

r=30

7

数字图像处理

r=80

r=230

六、 实验思考

1. 在FFT变换前后,为什么要将各点数乘以-1的(x+y)次方?不乘能否实现

低滤波?

答:在FFT变换前后,将各点数乘以-1的(x+y)次方,是为了将图像处理后它的中低频数据处于图像中央位置。

2. 与空间域图像增强相比,频率域图像处理有什么优点?

答:频率域图像处理是把图像看成一种二维信号,对其进行基于二维傅里叶变化的信号增强;空间域图像增强的方法是直接对图像中的像素进行处理的过程。

8

数字图像处理

实验三 图像去噪

一、 实验目的:

1. 熟悉图像高斯噪声的特点;

2. 掌握利用中值滤波器去除图像噪声的方法。

二、 实验条件:

PC微机一台和MATLAB软件。

三、 实验内容:

编写代码实现中值滤波算法,并观察增强效果。

四、 实验步骤:

1. 打开Matlab 编程环境。

2. 利用’imread’ 函数读入包含噪声的原始图像数据。 3. 利用’imshow’ 显示所读入的图像数据。

4. 编写代码实现中值滤波算法,并对原始噪声图像进行滤波处理。 5. 利用’imshow’ 显示处理结果图像数据。 6. 利用’imwrite’函数保存图像处理结果数据。

五、 实验程序及结果:

1、实验程序

I=imread('test3.jpg'); subplot(1,2,1);

imshow(I);title('test3 原图像'); L=medfilt2(I,[5 5]); subplot(1,2,2);

imshow(L);title('test3 中值滤波图像'); imwrite(L,'L.jpg');

9

数字图像处理

2、实验结果

test3 原图像test3 中值滤波图像

六、 实验思考

1. 与均值滤波相比,中值滤波算法的处理速度是快还是慢?

答:中值滤波算法处理速度快。均值滤波对一个像素,取其周围的像素均值作为当前像素的值;中值滤波对一个像素,取其周围的像素的中间值作为当前像素的值,不需要求出均值,因此中值滤波算法较快。

2. 如何实现中点滤波算法,它的速度比中值滤波算法快还是慢?

答:先得到图像的频率空间,然后对得到的二维空间数据进行比较得到最大值和最小值,求这两个值的平均值得到。它比中值滤波算法慢。

10

数字图像处理

☆实验总结:

1.对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,今后务必注意。

2.动手能力和自学能力有进一步提高,平日要多加练习,熟悉操作环境。尤其是这款软件是英文版的,所以会造成一些语言上的不适应。熟能生巧,多加练习就能很快适应了。

11

数字图像处理

☆实验总结:

1.对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,今后务必注意。

2.动手能力和自学能力有进一步提高,平日要多加练习,熟悉操作环境。尤其是这款软件是英文版的,所以会造成一些语言上的不适应。熟能生巧,多加练习就能很快适应了。

11

本文来源:https://www.bwwdw.com/article/k738.html

Top