数字图像处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图形处理实验报告
姓名:谌敦斌
班级:0312413
学号:031241318
指导老师:廖红华
实验一:熟悉MATLAB的图象处理工具箱
一、实验课题: 熟悉MATLAB的图象处理工具箱
二、实验内容: 熟悉Matlab编程,通过调用imread命令读取数字图像,完成图像间的相互转换和图像的打开与闭合操作以及打开与闭合组操作。
三、实验目标:
1.掌握图像读取函数imread()和subimage(),完成彩色图像转灰度图像,彩色图像转二值,灰度图像转索引图像,彩色图像转换为索引图像。
2.实现图像打开与关闭操作以及图像打开与关闭组操作。
四、实验原理:
1.图像间的转换的原理其实就是像素值的转换,用rgb2gray()将彩色图像转换为灰度图像,im2bw()将彩色图像转换为二值图像,用rgb2ind()将彩色图像转换为索引图像,gray2ind()将灰度图像转换为索引图像。
2.用imopen()和imclose()进行打开和关闭操作。
五、实验结果与分析:
1.图像间的变换:
A:彩色图像变灰度图像
用imread()函数读入一张自己的图片,再利用函数rgb2gray()可将彩色图像转换为灰度图像,用imshow()配合subplot()加以显示。
B.彩色图像变索引图像
用imread()函数导入一张自己的图片,再利用函数rgb2ind()可将彩色图像转换为灰度图像。
C.彩色图像变为二值图像
同上,主要用的是im2bw()函数,注意二值与灰度的区别,二值只有白和黑两种颜色。
D.灰度图像变为索引图像
道理同上,可能灰度图像现在难以寻找,可先将彩色图像转换为灰度图像,再进行灰度到索引的变换,主要函数为gray2ind()。本部分内容为图像导入与变换基本操作,用于熟悉matlab界面,便于后续实验。
2.开闭操作:
A.开启和闭合操作
在图像处理后进行打开和关闭操作有助于提高操作系统运行效率,达到流畅的效果。该打开和关闭操作一般适合于灰度图像,因为图像变换操作一般就是在灰度状态下进行的。用imopen()和imclos ()函数加以实现。
然而此种操作开与闭是分开,适用于单个操作。若遇到工程项目显然解决不了问题。因此,下面我们引入了开启与关闭组合操作。
B.开启与关闭组合操作
在拥有闭合与开启单个操作的同时,我们看到该组操作,增添了从open状态转向close状态以及从close状态转向open状态。
此外,在此实验中要明白imshow与subimage()的区别,其实两者区别不是很大,都是用于获取图
像,不同的是subimage()带有坐标系,便于位置标记。还有axes()与subplot()的区别,两者
都可以作为图像显示的介质函数,不同的是前者适用于坐标系,后者适合于行列位的固定。显然对于
工程项目用subplot()更加灵活。
六、实验心得:
初次接触matlab难免有些不适应,不习惯它简单的代码风格,不过经过慢慢探索,明白了matlab的
内核代码是用java写的,只不过给我们用户提供的是很多接口函数。通过查资料和帮助文档,对matlab
慢慢熟悉了,开始模仿着编码,中间出现过很多错误,通过看command窗口的error然后分析改正。
熟能生巧,多加练习,错误就慢慢少了。
实验二:数字图像增强处理的编程实现
一、实验课题: 数字图像增强处理的编程实现和图像几何变换的实现
二、实验内容:灰度图像的线性变换,直方图的滤波、锐化和添加噪声,以及图像的几何变换,包括平移,旋转、镜像、放缩和剪切。
三、实验目标:
1.完成灰度图像的线性变换和非线性变换
2.完成几种算子的滤波和锐化以及添加椒盐噪声
3.完成图像的平移、旋转、放缩、镜像和剪切
四、实验原理
1.对于灰度图像的线性变换,就是采用线性函数对像素值进行变换,非线性变换就是运用非线性函数
2.使用中值滤波和均值进行滤波,使用sobal、robort、prewitt算子进行锐化,添加椒盐噪声。
3.运用数学函数进行相应的几何变换。
五、实验结果与分析:
1.图像增强:
A.灰度图像增强
a.灰度线性变换
适用于灰度图像,对于线性变换就是,采用一次函数对像素值0-255
做现行操作,比如y=ax+b,主要操作是imadjust()如图该变换比较明显,像素值呈线性分布。
b.灰度非线性变换
对于非线性变换,则采用非线性函数,比如二次函数,三次函数,指数函数,对数函数等等,上图采用的就是对数函数,可见其整体偏白,像素分布不是很明显。
B.直方图增强
a.直方图均衡
对于某些灰度图片,我们需要对其直方图进行均衡,以达到校正图片的目的
如图所示,该均衡其实就是一种数字化离散化的实验,将连续的进行取点离散,达到均衡的目的。b.滤波
滤波操作也是针对灰度图像,其不外乎中值滤波与均值滤波。其中均值滤波用到fspecial()算子函数,中值滤波则用到了medfilt2()函数,一个取的是平均值,一个取的是中间值。当然该部分增强中你也可以通过imnoise()添加椒盐噪声。
c.锐化
锐化是一种抽象的增强,当然图像可能并不好看,但对于提取一些局部信息非常重要。一般采用sobal 算子,prewitt算子,robort算子以及laplace算子。如上图所示,Laplace算子比较清晰,显示出了基本骨架,另外三种则比较模糊。Sobal算子与prewitt算子相差不是太大,只有局部的一点不同。Robort算子则完全碎片化了。
2.图像几何变换
A.平移
平移不外乎就是横纵坐标值的加减运算,比较容易理解,主要用到了translate()获取坐标需要平移的值,然后再交给imdilate()函数进行平移操作。为了便于观察结果,运用subimage()显示图像。B.旋转
旋转操作对于我们来说也是比较熟悉的,利用正弦余弦函数变换所得。在matlab中则主要用到了imrotate()函数,其中角度正为逆时针,负则为顺时针。
C.放缩