数字图象处理实验报告1.docx
- 文档编号:10195829
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:18
- 大小:1.87MB
数字图象处理实验报告1.docx
《数字图象处理实验报告1.docx》由会员分享,可在线阅读,更多相关《数字图象处理实验报告1.docx(18页珍藏版)》请在冰豆网上搜索。
数字图象处理实验报告1
数字图像处理实验报告
班级:
学号:
姓名:
实验一、图像的特性及基本运算与图像的边缘检测
一.实验目的:
熟悉数字图像的输入、输出显示、运算、边缘检测的一般方法
二.实验内容:
熟悉数字图像的类型和构成,熟悉图像读写和显示、运算的Matlab函数;对图象进行加、减、乘、除、放缩、旋转、剪切、转换等处理,得到要求的处理结果。
熟悉数字图像边缘检测的一般方法。
熟悉下列模块函数
1.imageread/writeandshow:
(图像读写和显示函数)
2.Imageprocess&conversion(图像运算处理和转换函数)
3.在灰度图像中检测边缘
三.实验用设备仪器及材料:
电脑、MATLAB软件
四.实验方法、步骤及要求:
(注意图像的格式、图像尺寸的大小要一致)
1.编写M文件,读入三幅彩色图像文件,用写图像函数转换图像为jpg的格式。
并观察转换前后图像文件大小的变化,说明原因。
2.编写M文件,对两幅图像文件分别进行加、减、乘、除处理,并用多画面窗口显示(要求显示原图和处理后的图,二行三列)。
3.编写M文件,对一再幅有人像的图像进行剪切,只保留头部,再进行放大2倍,并右旋45度,通过多个窗口分别显示原图和结果图像。
4.编写M文件,将一幅彩色图像取反、转换成灰度图像,再转换成黑白二值图像。
在一个窗口内显示原彩图、取反图、灰度图、二值图(一行四列或二行二列)。
5.练习图像边缘检测的Matlab命令。
取两幅图像,分别用Sobel等三种方法进行边缘检测,并通过多个窗口显示原图和检测后的图像,观察分析何种图像用何种方法检测效果较好。
五.实验结果:
1.步骤一的程序如下:
(m文件)
I=imread('3.jpg')
J=imread('4.jpg')
K=imread('5.jpg')
Imwrite(I,'3.jpg')
Imwrite(J,'4.jpg')
Imwrite(K,'5.jpg')
Imshow(I)
Imshow(J)
Imshow(K)
figure,imshow(J)
subplot(1,3,1),imshow(I)
subplot(1,3,2),imshow(J)
subplot(1,3,3),imshow(K)
步骤一的截图如下:
步骤一的问题如下:
观察转换前后图像文件大小的变化,说明原因。
解答:
由实验程序的输出图片观察可知格式转换后图片变小,原因经过查询得出是因为:
jpg是有损压缩,出来的图片会有一定的损失
2.步骤二的程序如下:
(m文件)
I=imread('10.jpg')
J=imread('24.jpg')
Imwrite(I,'myimag.jpg')
Imwrite(J,'myimag.jpg')
A=imadd(I,J)
B=imsubtract(I,J)
C=immultiply(I,J)
D=imdivide(I,J)
Imshow(I)
Imshow(J)
Imshow(A)
Imshow(B)
Imshow(C)
Imshow(D)
figure,imshow(I)
figure,imshow(J)
figure,imshow(A)
figure,imshow(B)
figure,imshow(C)
figure,imshow(D)
subplot(2,3,1),Imshow(I)
subplot(2,3,2),Imshow(J)
subplot(2,3,3),Imshow(A)
subplot(2,3,4),Imshow(B)
subplot(2,3,5),Imshow(C)
subplot(2,3,6),Imshow(D)
步骤二的截图如下:
3.步骤三的程序如下:
(m文件)
I=imread('19.jpg')
%Imwrite(I,'myimag.jpg')
A=imcrop(I,[250,50,250,250]);
B=imresize(A,2,'nearest');
C=imrotate(B,45,'nearest');
imshow(A)
figure,imshow(I)
figure,imshow(B)
figure,imshow(C)
步骤三的截图如下:
4.步骤四的程序如下:
(m文件)
I=imread('3.jpg')
Imwrite(I,'myimage.jpg')
E=imcomplement(I)
K=rgb2gray(E)
M=im2bw(K,0.5)
Imshow(I)
Imshow(E)
Imshow(K)
Imshow(M)
figure,imshow(I)
figure,imshow(E)
figure,imshow(K)
figure,imshow(M)
Subplot(1,4,1),imshow(I)
Subplot(1,4,2),imshow(E)
Subplot(1,4,3),imshow(K)
Subplot(1,4,4),imshow(M)
步骤四的截图如下:
5.步骤五的程序如下:
(m文件)
A=imread('3.jpg')
B=imread('11.jpg')
I=rgb2gray(A)
J=rgb2gray(B)
Imwrite(I,'myimage.jpg')
Imwrite(J,'myimage.jpg')
I1=edge(I,'Sobel')
I2=edge(I,'Prewitt')
I3=edge(I,'Roberts')
J1=edge(J,'Sobel')
J2=edge(J,'Prewitt')
J3=edge(J,'zerocross')
Imshow(I1)
Imshow(I2)
Imshow(I3)
Imshow(J1)
Imshow(J2)
Imshow(J3)
figure,imshow(I1)
figure,imshow(I2)
figure,imshow(I3)
figure,imshow(J1)
figure,imshow(J2)
figure,imshow(J3)
Subplot(2,3,1),imshow(I1)
Subplot(2,3,2),imshow(I2)
Subplot(2,3,3),imshow(I3)
Subplot(2,3,4),imshow(J1)
Subplot(2,3,5),imshow(J2)
Subplot(2,3,6),imshow(J3)
步骤五的截图如下:
步骤五的问题如下:
观察分析何种图像用何种方法检测效果较好
解答:
对第一张图片做边缘检测三种方法下,观察处理后的图片是第二种方法即Prewitt得到的图像比较清晰,对第二张图片做边缘检测三种方法下,观察处理后的图片是第三种方法即zerocross得到的图像比较清晰,由于我不知道怎么由处理的图片的效果的差异来判断如何才是表示检测方法好,所以我不知道这个问题的准确答案
思考题:
(1)将灰度图像转换成二值图像时,阈值的作用是什么?
阈值在什么范围内取值?
答:
阈值在0~1之间
(2)对图像进行乘除法运算时有时会使图像变成全白或全黑的原因是什么?
如何避免这种结果发生?
答:
或许是因为选用的两张图像大小非常不一致,导致运行的结果不是正常的
(3)索引图像和真彩色(RGB)图像显示色彩的原理有什么不同?
答:
索引图像最多含有256种颜色,索引图像的实际数据只是对应颜色表中的体格索引,而并不是实际的像素值。
真彩色图像,图像中的每个像素都分成R,G,B三个基色分量,每个基色分量直接决定其基色的强度。
实验二、图像的增强和图像滤波
一.实验目的:
熟悉数字图像增强和图像滤波的一般方法
二.实验内容:
2.练习图像增强、图像加噪声和图像滤波的Matlab命令。
熟悉下列模块函数:
Imageenhancement.图像增强函数
histeq使用直方图均衡法增强图像的对比度.
用法:
A=histeq(B)
imadjust调节灰度图像的亮度或彩色图像的颜色矩阵。
用法:
J=imadjust(I,[Li;Hi],[Lo;Ho])
其中[Li;Hi]和[Lo;Ho]分别是原图像和输出图像的灰度调整范围,取0~1的数,缺省为[0,1]
imhist(J,M)求出并显示图像J的M条线直方图。
此函数用于显示,不能用于赋值。
M取32,64,128等2的N次方。
如imhist(J,64)
Imagenoising.&Imagefiltering图像噪声处理和图像滤波函数
imnoise图像加噪声。
用法:
J=imnoise(I,type,parameters)
参数Type对应的噪声类型,parameters是相应的参数。
简介如下:
g=imnoise(f,'gaussian',m,var)将均值M,方差为var的高斯噪声加到图像f上,默认值为均值是0,方差是0.01的噪声。
g=imnoise(f,'salt&pepper',d)用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。
因此,大约有d*numel(f)个像素受到影响。
默认的噪声密度为0.05。
g=imnoise(f,'speckle',var)用方程g=f+n*f)将乘性噪声添加到图像f上,其中n是均值为0,方差为var的均匀分布的随机噪声,var的默认值是0.04。
medfilt2-进行二维中值滤波.
语法格式为:
B=medfilt2(A) 用3×3的滤波窗口对图像A进行中值滤波。
B=medfilt2(A,[mn]) 用指定大小为m×n的窗口对图像A进行中值滤波
wiener2-进行二维处适应去噪滤波(魏纳滤波).语法格式同上。
三.实验用设备仪器及材料:
电脑、MATLAB软件
四.实验方法、步骤及要求:
.图像增强、.图像加噪声和图像滤波
a.从路径C:
\MALAB6p5\toolbox\images\imdemos下读入图像。
b.使用函数imshow和imhist显示图像和它的直方图(一行二列)。
c.使用直方图均衡法增强图像的对比度。
d.显示处理后图像及其直方图。
e.对比前后图像的质量,讨论质量增强的原因。
.
f.读入一幅图像,对图像加噪声,如gaussian,salt&pepper,speckle噪声,比较不同均值和方差的影响。
g.用中值滤波函数medfilt2和维纳滤波函数wiener2滤除在图像上所加噪声。
比较处理过的图像和原始图像的质量,讨论不同方法和参数的去除噪声效果。
五.实验结果:
(1)程序如下:
(m文件)
I=imread('tire.tif')
Imwrite(I,'myimag.jpg')
%Imshow(I)
J=histeq(I)
subplot(2,2,1),Imshow(I)
subplot(2,2,2),Imshow(J)
subplot(2,2,3),imhist(I,64)
subplot(2,2,4),imhist(J,64)
问题:
对比前后图像的质量,讨论质量增强的原因
答:
处理后的图像质量更高,因为直方图均衡化处理之后,原来比较少像素的灰度会被分配到别的灰度去,像素相对集中,处理后灰度范围变大,对比度变大,清晰度变大,所以能有效增强图像。
(2)程序如下:
(m文件)
I=imread('cameraman.tif')
J=imnoise(I,'gaussian',0.005)
K=wiener2(J,[5,5])
subplot(1,3,1),imshow(I)
subplot(1,3,2),imshow(J)
subplot(1,3,3),imshow(K)
问题:
比较处理过的图像和原始图像的质量,讨论不同方法和参数的去除噪声效果。
答:
处理过的图像比原始图像的质量更好,中值滤波函数medfilt2和维纳滤波函数wiener2,中值滤波:
基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。
中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。
其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。
很容易自适应化。
Wiener维纳滤波:
使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。
对于去除高斯噪声效果明显。
维纳滤波函数wiener2效果更好
六.实验要求及思考题:
图像的图像边缘检测、图像增强和图像滤波在具体图像处理中分别可作何种应用?
答:
图像的边缘检测可用于进行模式识别,图像信息提取等方面。
图像增强可以有目的地强调图像的整体或局部特性,可以改善图像质量,可以加强判读和识别等。
图像滤波可以去除噪声,提高图像的质量
心得体会
通过两次数字图像处理实验,我对数字图像处理的方法与对matlab的使用有了更深入的理解,第一个实验我们主要熟悉了数字图像的类型和构成,熟悉图像读写和显示、运算的Matlab函数,对图象进行加、减、乘、除、放缩、旋转、剪切、转换等处理,得到要求的处理结果。
熟悉数字图像边缘检测的一般方法。
熟悉数字图像增强和图像滤波的一般方法。
其中要注意的是使用的两个图片需要大小一样才可以正常的被运算得出结果。
第二个实验主要熟悉数字图像增强和图像滤波的一般方法,练习图像增强和图像加噪声和图像滤波的Matlab命令。
在操作过程中,尽管有些不熟练,但只要掌握了方法,按照步骤进行,最后运行的结果就是正确的。
这次实验要感谢老师的耐心辅导和讲解,让我对数字图像处理方面的操作有了更深一步的理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图象处理 实验 报告