- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理试验一
数字图像处理实验一
图像变换
实验目的
了解matlab有关图像的基本操作,如图像的读写,显示等。掌握二维DFT变换及其物理意义,掌握基本的灰度变换方法。
实验要求
在Matlab workspace中生成一幅大小为512×512像素的8位灰度图, 背景为黑色,中心有一个宽40像素高20像素的白色矩形。如下图所示:
将这幅图像保存为文件test.bmp。
从文件test.bmp中读出图像到变量I。
在Matlab图形界面中显示变量I所代表的图像。
对I作二维DFT变换,结果保存到变量F。注意将频域原点调整至中心位置。
将傅立叶频谱,即|F|的取值范围调整为0-255并显示。
将上题结果作对数变换后再进行显示,结果应与课本Figure 4.3(b)一致。说明对数变换能使频谱显示效果更好的原因。
对频谱图的物理意义作简要说明。
实验流程
理论知识
在8位灰度图中,像素值大小为0-255。0代表黑色,255代表白色。
二维DFT计算公式为 。
由于二维DFT是一种行列可分离的变换,其结果也可以由在两个方向上先后做一维DFT得到。具体流程为:
对图像每一行(即某个值),做一维DFT,得到的结果保存为矩阵的一行。
对矩阵的每一列(即某个值),做一维DFT,得到的结果保存为矩阵的一列。
直接对图像做傅立叶变换,结果的原点处于图像左下角。将傅立叶变换结果的原点移到矩阵中心位置可利用公式。
傅立叶变换结果一般为复数,它的模的大小反映了图像在不同频率上能量的分布。一般用来显示和比较傅立叶变换的结果。
当用8位灰度来显示图像时,将图像灰度级调整至0-255范围内可以充分利用屏幕的显示范围。这时可利用一个线性变换将图像最小值变换至0,将图像最大值变换至255,其余灰度值做相应平移和拉伸。其变换函数为:
对数变换也是一种常用的灰度转换函数。其变换函数为
常数c用于调整s的动态范围,在本实验中为0-255。
从频谱图可以看出图像大致的方向性和灰度变化的快慢。
Matlab基础知识
Matlab中基本变量都是以矩阵的形式保存的。一幅图像即是一个二维的矩阵。变量名区分大小写,如a和A表示两个不同的变量。图像I中第i行第j列的像素用I(i,j)表示,其中行号和列号都从1开始计数。要了解更多关于Matlab的基本知识,可看Matlab help下的Matlab目录。
本实验可能用到的matlab函数有:zeros,imwrite,imread,imshow,FFT2,abs,log,min,max,查询具体的函数用法可以在Matlab help中查找,或在Matlab command window中打
help (空格) 函数名。
在Matlab command window中的命令在打回车后直接执行。也可以在m-file editor中编写程序,存盘为.m文件后,按Debug菜单下的Run,自动逐条执行命令。Debug菜单下还提供了设置断点,逐行执行等调试命令。做本实验时可先在command window中熟悉Matlab命令与函数,最后所有命令应保存在一个m文件中,便于检查和调试。
每次画图前可用figure命令新开一个图像窗口,否则前一次显示的图像会被新的图像覆盖。也可用figure(n)命令规定当前图像窗口序号。
用二维DFT公式直接计算图像的傅立叶变换要用到4重循环,在matlab中会比较慢。如果利用DFT的可分离性质,用两次一维DFT来实现,可减少循环次数,提高程序效率。Matlab自带了FFT2函数,速度较快。可比较几种算法结果是否一致。
实验评分
当场检查程序内容及结果
实验报告,包括实验目的,算法流程,结果分析等。
创建测试图
保存测试图
读出测试图
显示测试图
2维DFT
原点调整预处理
频性谱调图整灰 及度 显 线 示
频数谱调图整灰 及度 显 对 示
文档评论(0)