图像处理实验报告.docx
《图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《图像处理实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
![图像处理实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/9/74f30e06-e9df-4e46-b0c1-f253b37e0089/74f30e06-e9df-4e46-b0c1-f253b37e00891.gif)
图像处理实验报告
实验报告
实验课程名称图像处理(第二版)
指导老师邓天明
学院交通运输年级2012级
专业及班级交通信息与控制工程二班
学生姓名田飞学号631205090230
开课时间2014至2015学年第2学期
总成绩
教师签名
实验名称
直方图均衡化
实验类型
验证型
实验时间
2015/6/2
实验地点
基础实验楼北501
实验目的:
1.熟悉图像数据在计算机中的存储方式;
2.掌握图像直方图均衡化这一基本处理过程。
仪器、设备名称:
PC微机一台和MATLAB软件。
实验要求及注意事项:
本次实验注意事项总结如下:
1、要学会利用Matlab中的帮助信息,因为很多函数的调用方法都是可以在帮助中找到的。
在调用函数时应重点看Examples中的方式。
2、在Matlab中进行重复操作时,可以用方向上键重复命令,也可以在命令窗口中进行复制粘贴。
3、使用软件处理图像时,注意不要使用复杂图像,以免处理时间过长且显示效果不理想。
实验内容、操作步骤:
实验内容:
1.读入图像数据到内存中,并显示读入的图像;
2.实现直方图均衡化处理,显示处理前后图像的直方图。
3.显示并保存处理结果。
实验步骤:
1.打开Matlab编程环境;
2.获取实验用图像。
用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。
3.获取输入图像的直方图:
用’imhist’函数处理图像。
4.均衡化处理:
用’histeq’函数处理图像即可。
5.获取均衡化后的直方图并显示图像:
用’imhist’和’imshow’函数。
6.保存实验结果:
用’imwrite’函数处理。
实验结果分析(含数据、图表整理):
程序源代码:
A=imread(‘D:
\\TF.gif’,‘gif’);
imshow(A);
imhist(A);
histeq(A);
Imhist(A);
Imshow(A);
Imwrite(A,‘D:
\TF.gif’,‘GIF’);
处理结果:
图1灰度图
图2均衡化图
图3直方图
实验收获、心得及建议:
直方图均衡化是直方图变换方法中的一种,进行图像增强的方法是以概率论为基础的。
直方图均衡化主要用于增强动态范围偏小的图像的反差。
这个方法基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度德效果。
数字图像直方图均衡化之后直方图不是绝对平坦的,因为不能将同一个灰度值的各个像素变换到不同灰度级(或说此时仅根据灰度值区分不开不同的像素),所以数字图像直方图均衡化的结果一般只是近似均衡化的直方图。
在本次实验中发现:
直方图均衡化在增强反差的同时也增强了图像的可视粒度。
实验名称
频域平滑滤波
实验类型
验证型
实验时间
2015/6/9
实验地点
基础实验楼北501
实验目的:
1.熟悉图像数据在频率域的表示;
2.掌握频域图像增强的基本步骤。
仪器、设备名称:
PC微机一台、MATLAB软件、GIF格式图片一张。
实验要求及注意事项:
在选择图片时应当选择TTF格式或者GIF格式的图片,若不是这种格式则应该在画图工具中改为上述格式,因为其他格式都打不开。
实验内容、操作步骤:
实验内容:
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’函数保存图像处理结果数据。
实验结果分析(含数据、图表整理):
程序源代码:
functionidlvbo(r)
I=imread('E:
\tu\bailong1.gif');
subplot(1,2,1),imshow(I);%显示原图
title('bailong2原图');
k=double(I);%‘uint8格式转换为‘double’
g=fft2(k);%傅里叶变换
g=fftshift(g);%实现低频数据处于图像中心
figure,imshow(g);
%除去滤波半径以外的数据
[M,N]=size(g);%计算幅值
m=fix(M/2);
n=fix(N/2);
%m=round(M/2);
%n=round(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
ifd<=r
h=1;
else
h=0;
end
y(i,j)=h*g(i,j);
end
end
y=ifftshift(y);
E1=ifft2(y);
E2=uint8(real(E1));
subplot(1,2,2),imshow(E2);
title('处理后的图像');
imwrite(E2,'E2.tif','tif');
处理结果:
原图
r=5的结果图
r=15的结果图
r=30的结果图
r=80的结果图
r=230的结果图
实验收获、心得及建议:
在频域空间,图像的信息表现为不同频率分量的组合。
如果能让某个范围内的分量或某些频率的分量受到抑制而让其他分量不受影响,就可以输出图的频率分布,达到不同的增强目的。
频域空间的增强方法有三个步骤:
1、将图像从图像空间转换到频域空间;
2、在频域空间对图像进行增强;
3、将增强后的图像再从频域空间转换到图像空间;
本次试验中在FFT变换前后,将各点数乘以-1的(x+y)次方,是为了将图像处理后它的中低频数据处于图像中央位置。
频率域图像处理是把图像看成一种二维信号,对其进行基于二维傅里叶变化的信号增强;空间域图像增强的方法是直接对图像中的像素进行处理的过程。
实验名称
图像去噪
实验类型
验证型
实验时间
2015/6/9
实验地点
基础实验楼北501
实验目的:
1.熟悉图像高斯噪声的特点;
2.掌握利用中值滤波器去除图像噪声的方法。
仪器、设备名称:
PC微机一台、MATLAB软件、GIF格式图片一张。
实验要求及注意事项:
在选择图片时应当选择TTF格式或者GIF格式的图片,若不是这种格式则应该在画图工具中改为上述格式,因为其他格式都打不开。
实验内容、操作步骤:
实验内容:
编写代码实现中值滤波算法,并观察增强效果。
操作步骤:
1.打开Matlab编程环境。
2.利用’imread’函数读入包含噪声的原始图像数据。
3.利用’imshow’显示所读入的图像数据。
4.编写代码实现中值滤波算法,并对原始噪声图像进行滤波处理。
5.利用’imshow’显示处理结果图像数据。
6.利用’imwrite’函数保存图像处理结果数据。
实验结果分析(含数据、图表整理):
程序源代码:
I1=imread('D:
\tf\YUAN.jpg');
I3=rgb2gray(I1);
I2=imnoise(I3,'salt&pepper',0.02);
subplot(1,2,1);
imshow(I2);
title('jiazaoyin');
L=medfilt2(I2);
subplot(1,2,2);
imshow(L);
title('中值滤波所得图像');处理结果:
去噪声后的图像对比
实验收获、心得及建议:
噪声是常见的退化因素之一,也是图像恢复中重点研究的主要内容。
图像中的噪声可定义为图像中不希望有的部分,或图像中不需要的部分。
中值滤波算法处理速度快。
均值滤波对一个像素,取其周围的像素均值作为当前像素的值;中值滤波对一个像素,取其周围的像素的中间值作为当前像素的值,不需要求出均值,因此中值滤波算法较快。
先得到图像的频率空间,然后对得到的二维空间数据进行比较得到最大值和最小值,求这两个值的平均值得到。
它比中值滤波算法慢。
本次实验中,通过相关软件自带函数对图像进行处理,实现图像噪点的处理。
实验名称
Matlab在数字图像处理中的应用
实验类型
验证行
实验时间
2015/6/16
实验地点
基础实验楼北501室
实验目的:
1.熟悉图像的四种类型。
2.熟练掌握图像的读、写操作以及显示方法。
3.熟悉图像的类型转换以及格式转换。
仪器、设备名称:
计算机、MATLAB软件、《图像处理实验指导(电子版)》、MATLAB相关书籍
实验要求及注意事项:
1、注意在Matlab中不同图像对应的格式。
在Matlab中采用4种不同的方式把图像数据矩阵中的元素值(又称像素值)解释为对应像素的颜色。
2、使用Matlab中自带的函数可以实现不同格式的图像的格式间的转换。
要熟悉相应的函数的使用参数。
实验内容、过程记录:
1.利用imread()函数分别读取四种类型的图像。
2.读取一幅RGB图片,并将它转换成其他几种图像类型。
3.读取一幅TIF格式的图像,将它转换成JPG文件格式,并尝试使用不同的压缩品质(使用helpimwrite查询其‘quality’参数的用法)压缩文件,比较压缩前后文件的大小和图像质量。
4(选做).读取一幅索引图像,将图像显示出来。
尝试修改MAP颜色矩阵的值,再将图像显示出来,对比观察图像颜色的变化。
实验分析结果(含数据、图表整理):
程序源代码:
functiondutu
I=imread('C:
\ABCDEFG-------TF\tf\tf.jpg');
subplot(2,2,1),imshow(I);
title('RGB原图');
A=dither(I,gray);
subplot(2,2,2),imshow(A);
title('索引图');
imwrite(A,'suoyin.tif','tif');
B=rgb2gray(I);
subplot(2,2,3),imshow(B);
title('灰度图');
imwrite(B,'huidu.tif','tif');
C=im2bw(I,0.4);
subplot(2,2,4),imshow(C);
title('二值图');
imwrite(C,'erzhi.tif','tif');
end
functiongaitu
clc
clear
I=imread('C:
\ABCDEFG-------TF\tff.tif');
subplot(2,2,1),imshow(I);
title('TF1.tif');
imwrite(I,'TF1.jpg','jpg');
B=imread('C:
\ABCDEFG-------TF\TF1.jpg');
subplot(2,2,2),imshow(B);
title('TF1.jpg');
imwrite(I,'TF1(25).jpg','quality',25);
C=imread('C:
\ABCDEFG-------TF\TF1(25).jpg');
subplot(2,2,3),imshow(C);
title('TF1(25).jpg');
imwrite(I,'TF1(50).jpg','quality',50);
D=imread('C:
\ABCDEFG-------TF\TF1(50).jpg');
subplot(2,2,4),imshow(D);
title('TF1(50).jpg');
end
1、图像格式间的转换
结果见下图
图1图像格式转换结果图
使用imread函数读入一张RGB图像,然后使用“dither”、“rgb2gray”、“im2bw”函数实现RGB图像向索引图像、灰度图像、二值图像的转换。
图像结果使用“imwrite”函数进行保存。
2.读取一幅TIF格式的图像,将它转换成JPG文件格式
图2tif格式转换为jpg格式结果
使用imwrite函数使“tif”格式转换为“jpg”格式,然后使用“imwrite(I,'TF1(25).jpg','quality',25)”和“imwrite(I,'TF1(50).jpg','quality',50)”使图像分别以25和50的质量进行压缩保存。
实验收获、心得及建议:
实验中主要注意的时使用函数时,要与函数要求的格式相对应。
处理不同类型的图像,所使用的函数语句是不一样的,对于结果的显示也会有所不同。
有时图像的改变在显示时改变的迹象可能不太明显,这时可以通过查看图像的格式,具体的属性参数直观的看到改动。
查看文件的格式时可以根据其文件的后缀名。
或者查看imread函数读到的矩阵格式。
比如TIFF格式的文件,其文件包含文件头、参数指针表与参数域、参数数据表和图像数据4部分,这样读入到MATLAB中的矩阵格式就会为格式。