数字图像处理实验指导书模板
- 格式:doc
- 大小:270.00 KB
- 文档页数:59
实验一:图像文件类型转换实验目的:理解数字图像文件的几种基本类型掌握在MATLAB中进行图象文件类型转换的方法观察图象转换前后的效果加深对图象文件类型的理解熟悉图象格式、颜色系统间的转换实验内容:1)灰度图像与索引图像的相互转换2)RGB图像与索引图像的相互转换3)将图像转换为二值化图像实验方法:利用MATLAB工具进行实验一、灰度图像到索引图像的转换启动MATLAB,新建一个自己的工作文件夹(如下图中的“MYFIG”)。
并把它设置在当前的工作路径(Current Directory)下。
1)在该文件夹中拷入个灰度图片,比如“2.jpg”文件。
2)在MATLAB命令输入窗中,调用函数info=imfinfo('2.jpg')观查2.jpg是否为灰度图像在ColorType: 'grayscale' 属性行如此显示,则说明以2.jpg命名的文件为灰度图像。
3)输入如下命令完成转换RGB=imread('2.jpg'); % 将图像“2.jpg”的数据赋给变量RGBfigure(3); % 设定显示窗口3imshow(RGB); % 显示原“2.jpg”文件figure(1); % 设定显示窗口1[RGB1,map1]=gray2ind(RGB,128); % 指定灰度级128,进行灰度图像到索引图像转换imshow(RGB1,map1) ; % 显示索引图像1figure(2); % 设定显示窗口2[RGB2,map2]=gray2ind(RGB,16); % 指定灰度级16,进行灰度图像到索引图像转换imshow(RGB2,map2) ; % 显示索引图像2imwrite(RGB1,map1,'3.bmp'); % 将索引图像1保存为名为“3.bmp”的文件imwrite(RGB2,map2,'4.bmp'); % 将索引图像2 保存为名为“4.bmp”的文件运行并观察结果和现象。
数字图像处理课程实验报告班级学号姓名实验一常用MATLAB图像处理命令一、实验目的1、熟悉并掌握MATLAB工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、常用函数●读写图像文件1、imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')2、imwriteimwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',‟tif‟)3、imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif')●图像的显示1、imageimage函数是MATLAB提供的最原始的图像显示函数,如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2、imshowimshow函数用于图像文件的显示,如:i=imread('e:\w01.tif');imshow(i);title(…原图像‟)%加上图像标题3、colorbarcolorbar函数用显示图像的颜色条,如:i=imread('e:\w01.tif');imshow(i);colorbar;4、figurefigure函数用于设定图像显示窗口,如:figure(1);/figure(2);5、subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。
6 、plot绘制二维图形plot(y)Plot(x,y)xy可以是向量、矩阵。
图像类型转换1、rgb2gray把真彩图像转换为灰度图像i=rgb2gray(j)2、im2bw通过阈值化方法把图像转换为二值图像I=im2bw(j,level)Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%3、imresize改变图像的大小I=imresize(j,[m n])将图像j大小调整为m行n列图像运算1、imadd两幅图像相加,要求同样大小,同种数据类型Z=imadd(x,y)表示图像x+y2、imsubtract两幅图像相减,要求同样大小,同种数据类型Z=imsubtract(x,y)表示图像x-y3、immultiplyZ=immultiply(x,y)表示图像x*y4、imdivideZ=imdivide(x,y)表示图像x/y四、实验内容1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
《数字图像处理》实验指导书前言本实验指导书可作为电子信息工程、通信工程、生物医学工程等专业《数字图像处理》课程的实验指导书。
实验指导书共提供了6个实验,要求在VB环境下实现。
实验名称与学时安排详见下表。
实验名称与学时安排表实验教学基本要求:1、在实验前,认真准备,熟悉和掌握相关实验内容的基本算法和程序设计技术。
2、根据实验目的和要求,按时认真完成各实验的上机操作。
3、实验结束后,要及时提交经调试正确的程序源代码、生成的可执行文件、实验报告书等文档。
实验一图象的读取保存及图像的二值化处理一、实验目的1、熟悉《数字图像处理》的实验平台。
2、了解VB对图像进行处理的基本方法。
3、熟悉彩色图像变成灰度图象以及灰度图像转换成二值图像的基本原理及处理过程。
二、实验准备1、复习彩色图像变成灰度图象以及灰度图像的二值化处理的基本原理。
2、阅读下列内容,了解VB对图像进行处理的基本方法。
(1)读取图像通过扫描仪、摄像机等输入计算机以.bmp、.ico或.wmf存储的图像文件,可用LoadPicture函数把图像文件装入窗体、图片框或图像框中,例如:picture1.picture=loadpicture(“c:\image\flower.bmp”)可以把路径为c:\image\flower.bmp的图像文件装入图片框picture1中。
为了使图片框的大小与图像相匹配,应将图片框的autosize属性设置为True。
(2)用Point方法获取彩色图像的颜色值Point方法的功能是获取图像上指定像素的颜色值。
格式为:Object.Point(x,y)其中,Object表示获取颜色的对象名,(x,y)为取得颜色的坐标位置。
Point 方法将指定位置的像素的颜色值返回一个长整形数。
例如,求图片框picture 1中图像在位置(x,y)的像素颜色值(col)时,可写为:dim col as longcol=picture1.Point(x,y)(3)用Pset方法画点Pset方法的功能是在指定的位置画一个指定颜色的点。
数字图像处理实验指导书电气信息工程系实验中心2008年8月目 录实验一、数字图像获取实验二、图像的傅立叶变换实验三、图像增强实验四、图像压缩实验一、数字图像获取一、实验目的1.掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法;2.修改图像的存储格式。
二、实验仪器1.计算机;2.扫描仪(或数码相机、数字摄像机)及其驱动程序盘;3.图像处理软件(画图,photoshop, Microsoft photo edit等);4.记录用的笔、纸。
三、 实验内容用扫描仪获取图像也是图像的数字化过程的方法之一,扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。
扫描仪的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。
各类扫描仪都标明了它的光学分辨率和最大分辨率。
分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。
扫描仪工作时,首先由光源将光线照在欲输入的图稿上,产生表示图像特征的反射光(反射稿)或透射光(透射稿)。
光学系统采集这些光线,将其聚焦在CCD上,由CCD将光信号转换为电信号,然后由电路部分对这些信号进行A/D转换及处理,产生对应的数字信号输送给计算机。
当机械传动机构在控制电路的控制下,带动装有光学系统和CCD的扫描头与图稿进行相对运动,将图稿全部扫描一遍,一幅完整的图像就输入到计算机中去了。
图1.1扫描仪的工作原理扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。
为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。
数字图像处理实验指导书上机讲座 (1)实验一数字图像的运算 (2)实验1.1 直方图 (2)实验1.2 3*3均值滤波 (4)实验1.3 3*3中值滤波 (5)实验1.4 图像的缩放 (6)实验1.5 图像旋转 (8)实验二数字图像的离散余弦变换 (9)实验三基于直方图均衡化的图像增强 (15)1.直方图修改处理图像的概念及方法.............................. 错误!未定义书签。
2.直方图均衡化增强图像对比度的MATLAB程序:.... 错误!未定义书签。
实验四图像分割(常见的边缘检测算子——Sobel、Prewitt、Log) .............. 0上机讲座1. 灰度图像的显示(1)256色下显示64级灰度图像调色板设置:R=G=B=I=0 - 63 可显示64级真灰度。
(2)16、24或32位真彩下同理可显示更多灰度级的灰度图像。
(3)Windows 下可显示格式为*.bmp 、*.pcx 、*.jpg 和*.gif 等Windows 能识别并能显示的格式图像。
2. 图像处理用图像数据 (1)无格式图像图像处理中,常使用无格式(不带格式)图像数据。
(2)上机给定无格式图像数据① 人头像:lena.img256×256×8(分辨率/大小:256×256,灰度级:28=256级)。
② 显微医学细胞图像:cell_128.img128×128×8(分辨率/大小:128×128,灰度级:28=256级)。
③ 指纹图像:fing_128.img128×128×8(分辨率/大小:128×128,灰度级:28=256级)。
⎪⎪⎪⎩⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧→→⎪⎩⎪⎨⎧→→→→→⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧−−−−→−打印存盘编辑图文混排下的粘贴打印存盘编辑粘贴编辑下的“画图”下按选择一幅图显示图象word word windows CopyFigure Edit No..Figure No..Figure windows MATLAB 2211 4. MA TLAB 命令简介MATLAB 的命令很多很难记,为了帮助用户找到命令,MA TLAB 通过其广泛的在线帮助功能提供帮助。
《课程名称》实验指导书适用专业:自动化课程代码: 84018091 学时: 6 学分: 0.5 编写单位:机械工程及自动化学院编写人:蒋代君审核人:审批人:目录实验一 Matlab图像处理工具箱的初步练习 .............................................................................................. - 2 - 实验二图像的空域处理方法 ....................................................................................................................... - 5 - 实验三图像的空域处理方法 ....................................................................................................................... - 8 - 实验四图像分割和目标识别 ..................................................................................................................... - 13 -实验一 Matlab图像处理工具箱的初步练习一、实验目的和任务1、初步了解与掌握MATLAB语言的基本用法;2、掌握MA TLAB语言中图象数据与信息的读取方法;3、掌握在MA TLAB语言中图像类型的转换。
二、实验仪器、设备及材料1、计算机2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)3、实验所需要的图片三、实验原理将数字图像的RGB表示转换为YUV表示;Y=0.30R+0.59G+0.11BU=0.70R-0.59G-0.11BV=-0.30R-0.59G+0.89B四、实验步骤1、阅读资料并熟悉MatLab的基本操作2、读取MATLAB中的图象数据3、显示MATLAB中的图象文件。
《数字图像处理》实验指导书实验一、空域图像处理一、 实验目的1熟悉CCS 集成开发环境的操作和基本功能;2熟悉MATLAB 基本图像操作;3结合实例学习如何在程序中增加图像处理算法;4理解和掌握图像的线性变换和直方图均衡化的原理和应用;5了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;6 了解噪声模型及对图像添加噪声的基本方法。
二、 实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f a y x f y x f y x g b a γβαn y m x ,2,1 ,,,2,1==2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。
按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k n n r p k k r 通过转换公式获得:1,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。
将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。
三、实验步骤1 启动MA TLAB程序,对图像文件分别进行灰度线性变换、直方图均衡化、均值滤波、中值滤波和拉普拉斯锐化操作;添加噪声,重复上述过程观察处理结果。
2 记录和整理实验报告四、实验仪器1计算机;2 MA TLAB程序;3记录用的笔、纸。
数字图像处理实验指导书臧兰云电子工程学院实验一图像基本运算一、实验目的:1、了解数字图像处理基础2、掌握数字图像处理的基本运算方法3、学习利用matlab进行数字图像处理的基本方法二、实验内容:1、根据图像采样原理,试对lena图像分别进行4和16倍减采样,查看其减采样效果。
2、对一幅图像加入椒盐噪声,并通过减法运算提取出噪声。
3、两幅二值图像进行逻辑与、或、非运算。
4、实现把一幅图像旋转45°,并分别采用把转出显示区域的图像截去和扩大显示区域范围以显示图像的全部两种方式。
5、选取一幅大小为256*256像素的图像,分别将图比例放大1.5倍,比例缩小0.7倍,非比例放大到420*384像素,非比例缩小到150*180像素。
三、思考与总结:1、将一幅图像如果进行4倍、16倍和64倍增采样会出现什么情况?是否有其他方法可以实现图像的采样?2、图像的选转会导致图像的失真吗?若有,有什么办法可以解决这个问题?3、由非比例缩放得到的图片能够恢复到原图片吗?为什么?实验二图像变换及增强一、实验目的:1、掌握图像变换的应用2、掌握数字图像处理的空间域及频域的增强方法二、实验内容:1、构造一幅图像并对其旋转一定的角度,求原始图像及旋转后图像的频谱图。
2、对一幅灰度图像进行均衡化,灰度等级为8级。
3、对一幅灰度图像采用多种方法实现平滑、锐化滤波。
4、对一幅图像进行幂次变换。
三、思考与总结:1、图像变换在图像处理中的应用?2、什么是傅里叶变换的旋转性?3、以上实验分别可以应用到那些实际问题中? 实验三图像压缩编码一、实验目的:1、掌握图像压缩编码的概念2、比较图像压缩编码的各种方法二、实验内容:1、计算一幅灰度图像的熵。
2、选择一种方法对图像进行压缩,并计算压缩比。
三、思考与总结:1、注释程序功能2、以上实验可以应用到那些实际问题中?实验四图像分割及彩色图像处理一、实验目的:1、掌握图像分割的基本原理2、掌握彩色图像处理方法二、实验内容:1、用全局阈值法对图像进行分割2、实现sobel算子及Roberts等算子的边缘提取算法3、生成一幅大小为256*256的RGB图像。
数字图像处理实验报告目录实验一MATLAB数字图像处理初步 (1)实验二图像的代数运算 (7)实验三图像增强—灰度变换 (15)实验四图像增强—直方图变换 (17)实验五图像增强—空域滤波 (20)实验六图像的傅立叶变换 (23)实验七图像增强—频域滤波 (26)实验八彩色图像处理 (29)实验九图像分割 (33)实验十形态学运算 (36)附录MATLAB简介 (39)实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验原理1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。
例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。
因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
采样和量化的过程如图1所示。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。
图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。
《数字图像处理》实验指导书(vc)实验指导书一、概述............................................................. .. (2)二、建立程序框架............................................................. ..............................................2三、建立图像类............................................................. ..................................................3四、定义图像文档实现图像读/写............................................................. ...................10五、实现图像显示............................................................. ............................................12六、建立图像处理类............................................................. ........................................18七、实现颜色处理功能............................................................. ....................................19(一)亮度处理............................................................. ...................................................19(二)对比度处理............................................................. ...............................................22(三)色阶处理............................................................. ...................................................24(四)伽马变换............................................................. ...................................................25(五)饱和度处理............................................................. ...............................................25(六)色调处理............................................................. ...................................................29八、实现几何变换功能............................................................. ....................................29(一)图像缩放............................................................. ...................................................29(二)旋转............................................................. ...........................................................31(三)水平镜像............................................................. ...................................................35(四)垂直镜像............................................................. ...................................................36(五)右转90度............................................................. .................................................36(六)左转90度............................................................. .................................................37(七)旋转180度............................................................. ...............................................37九、实现平滑锐化功能............................................................. (38)十、图像处理扩展编程............................................................. (38)一、概述实验项目:图像处理程序编程运行环境:Window某P/2000编程工具:ViualC++6.0主要内容:(1)建立程序框架,实现图像的读取、保存、显示;(2)编写颜色处理、几何变换、平滑锐化等图像处理代码,并实现其调用;(3)自行编写实现扩展的图像处理功能。
《数字图像处理》实验指导书《数字图像处理实验》课程组二0一0年六月目录实验预备实验环境和工具使用 3实验一图像显示,直接灰度变换 7实验二直方图处理:均衡化,规定华 9实验三空域滤波增强:平滑增强 12实验四空域滤波增强:锐化滤波 20实验五图像边缘的提取 23实验六图像的分割 26实验七二值化处理:腐蚀和膨胀 28实验八对带噪声干扰的图像的综合处理 47 实验九在复杂背景图片中提取有用信息 63实验预备实验环境和工具使用多文件应用程序的开发过程一、实验目的与要求Visual C++提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率,本实验通过学习Visual C++ 6.0界面的常用组成情况,并学习各种常用的窗口、菜单、按钮的意义和功能,并通过一些简单的程序设计,目的是使学生对用户界面、菜单和工具栏有一个全面的了解并掌握主要菜单命令。
● 了解Visual C++集成开发环境的界面组成;● 理解菜单命令的含义● 掌握“New:”菜单命令、“Breakpoints”菜单命令、“Build”菜单命令、“Source Brower”菜单命令、工具栏的定制和修改、联机帮助。
● 简单的程序设计二、实验设备与平台实验设备要求每个学生一台电脑,其中运行环境为VC++ 6.0系统。
三、实验内容及步骤1. 上机实验内容● Visual C++集成开发环境的用户界面识别;● 新文件、新工程项目、工作区的创建;● 设置、查看和删除断点;● 编译和运行程序;● 浏览资源信息;● 工具栏的定制和修改;● 联机帮助的使用;● 熟悉Visual C++编写控制台模式程序的方法;上机输入例题,调试并运行,并观察结果;● 上机编写一个程序实验1调试并编译程序。
在Visual C++下,编写控制台模式的程序和在DOS下编写程序相似,具有简单方便的特点,一般用于后台程序的编写。
实验五:图像压缩一. 实验目的通过调用Matlab有关二维余弦变换和小波变换函数对图像进行压缩与重构, 从而对图像压缩的变换域主要方法和图像压缩的效果有更为直观的认识.二. 实验设备装有Matlab软件的PC机.三. 实验内容和原理1.使用二维离散余弦变换(DCT)进行图像压缩。
显示原图像、DCT系数图像、重构图像与误差图像(原图像与重构图像之差),并计算均方误差MSE。
原始图像被转换成为8⨯8大小的块进行压缩与重构,重构时IDCT仅使用DCT系数的子集。
压缩后,仅保留具有较大方差的若干个DCT系数,丢弃其它的有较小方差的DCT系数,因为它们对重构的影响较小。
压缩应该做到在最合理地近似原图像的情况下使用最少的系数。
MATLAB程序如下:%Exam3%function Exam3(trueImage,Cnum)%trueImage:待压缩的原图像%Cnum:压缩时保留的系数的个数trueImage=double(trueImage)/255;%转化为双精度型figure;imshow(trueImage);title('original image');%显示原始图像%以下为对图像进行DCT变换,%得到图像的DCT系数矩阵及DCT系数方差矩阵dctm=dctmtx(8);%计算DCT矩阵,返回8⨯8DCT变换矩阵imageDCT=blkproc(trueImage,[8 8],'P1*x*P2',dctm,dctm.');%对图像实行不同的块处理DCTvar=im2col(imageDCT,[8 8],'distinct').';%重排图像块为矩阵列%求矩阵的行数DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).^2)/n;[dum,order]=sort(DCTvar);%排序%以下为显示系数图像%1表示保留的系数,0表示丢弃的系数Cnum=64-Cnum;mask=ones(8,8);%全1矩阵mask(order(1:Cnum))=zeros(1,Cnum);im8x8=zeros(9,9);im8x8(1:8,1:8)=mask;im128x128=kron(im8x8(1:8,1:8),ones(16));%Kronecher张量积figure;imshow(im128x128);title('DCT coefficients');%显示DCT系数图像%以下为重构及显示图像dctm=dctmtx(8);newImage=blkproc(imageDCT,[8 8],'P1*(x.*P2)*P3',dctm.',mask(1:8,1:8),dctm);figure;imshow(newImage);title('reconstructed image');figure;imshow(trueImage-newImage+0.45);title('error image');%显示误差图像error=(trueImage.^2-newImage.^2);MSE=sum(error(:))/prod(size(trueImage))%计算归一化图像的均方误差2. 使用小波变换进行图像压缩利用小波变换进行图像压缩过程如下:(1)对图像进行小波分解。
《数字图象处理》实验和大作业指导书计算机科学与工程学院目录目录 (1)实验一:数字图像读取及色彩、亮度、对比度变化 (2)实验二:数字图像变换与伽马校正 (3)实验三:数字图像的噪声去除 (4)实验四:图像的空间域锐化(拉普拉斯算子) (5)实验五:频率域低通和高通滤波 (6)实验六:数字图像复原 (7)实验七:人脸皮肤颜色分层 (8)大作业 (9)实验一:数字图像读取及色彩、亮度、对比度变化一、实验目的:了解数字图像的存储格式,并学会对图像的某些视觉特征作简单处理。
二、实验要求:1.从最常用的“.BMP”图像格式中读取图像数据;2.对数字图像的表示方式(如RGB、YUV)及各种表示方式之间的转换有初步了解;3.根据输入参数改变数字图像的色彩、亮度、对比度。
三、实验步骤:1.根据BMP格式,将图像内容读入内存数组;2.通过访问数字图像RGB三个通道的对应矩阵,改变数字图像的色彩;3.将数字图像的RGB表示转换为YUV表示;Y=0.30R+0.59G+0.11BU=0.70R-0.59G-0.11BV=-0.30R-0.59G+0.89B4.通过访问Y(亮度)通道,改变数字图像的亮度;5.通过Y(亮度)通道作灰度的线性变换,改变数字图像的对比度。
四、实验图像:实验二:数字图像变换与伽马校正一、实验目的:了解数字图像的灰度反变换和γ(0.4,0.6,0.8)校正。
二、实验要求:1. 对图像进行灰度变换。
2. 对图像进行γ校正。
三、实验步骤:1. 将BMP图像内容读入内存数组。
2. 调整图像的灰度,对图像进行灰度变换(反变换)。
3. 对图像进行γ较正,分别取值为0.4,0.6,0.8.四、实验图像:灰度变换γ较正实验三:数字图像的噪声去除一、实验目的:学会用滤波器去除图像中的噪声。
二、实验要求:1.用均值滤波器去除图像中的噪声; 2.用中值滤波器去除图像中的噪声; 3.比较两种方法的处理结果三、实验步骤:1.根据BMP 格式,将图像内容读入内存数组; 2.用均值滤波器去除图像中的噪声;3.用中值滤波器去除图像中的噪声;将两种处理方法的结果与原图比较; 4.注意两种处理方法对边缘的影响。
《数字图像处理》实验指导书工程学院信息技术教研室2011.10目录实验一图像基本操作 (1)实验二图像运算 (3)实验三图像增强——空域滤波 (5)实验四图像的傅立叶变换 (7)实验五图像增强——频域滤波 (9)实验六图像分割 (12)实验一图像基本操作一、实验目的了解MatLab软件/语言,学会使用MatLab的图像处理工具箱(Image Processing Toolbox),使学生初步具备使用该软件处理图像信息的能力,并能够利用该软件完成本课程规定的其他实验和作业。
熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换二、实验要求在MATLAB环境下完成下列操作:1、读入图像;2、保存图像;3、图像的显示方法三、实验方法使用函数imread可以将图像读入MA TLAB环境,imread的语法为:imread( ‘filename’ )imread所支持的文件格式包括:TIFF---------- .tif .tiffJPEG-------- .jpg .jpegGIF----------- .gifBMP--------- .bmpPNG--------- .pngXWD--------- .xwd使用函数imwrite可以将图像保存在磁盘上,imwrite的语法为imwrite( f, ‘filename’ )使用函数size可以察看图像大小,size的语法为size( )使用函数imfinfo可以察看图像信息,imfinfo的语法为imfinfo filename使用函数imshow 可以显示图像缩略图,imshow 的语法为imshow ( )使用函数imview 可以显示图像原图,imview 的语法为imview ( )使用函数figure可以开辟一个新的窗口,figure的语法为figure, imshow ( )figure, imview ( )figure, plot ( )…………………使用数据类型转换函数可以转换图像数据类型,如im2uint8 ( ) ------------------ convert image to uint8im2uint16 ( ) ---------------- convert image to uint16mat2gray ( ) ----------------- convert image to double, range[0 , 1]im2double ( ) ---------------- convert image to doubleim2bw ( ) --------------------- convert image to logical四、实验过程使用函数imread 打开一幅灰度图像(lena_gray.jpg),使用函数imwrite 将图像另存为不同的文件名;在此过程中观察图像矩阵的形式,并记录5×5的矩阵片断;使用函数size察看图像大小,使用函数imfinfo察看图像信息;记录图像信息;分别使用函数imshow 和函数imview 显示图像;记录两种方式的区别。
数字图像处理实验指导书电气信息综合实验中心试验一MA TLAB程序实用及数字图像信号的基本运算一、实验目的:1、进一步熟悉MATLAB的指令。
2、熟悉使用MATLAB进行数字图像的读入、读出和显示。
3、熟悉掌握数字图像的基于灰度变换的空域处理方法。
二、实验设备:计算机、MATLAB6.5软件。
三、实验说明:1、本实验在MATLAB上调试运行,学生应对MATLAB的相关指令、函数等有一定的了解。
2、实验的结果应与课堂上的相关内容印证,加深对理论算法的理解。
四、实验内容及步骤:1、内容包括:计算出一幅灰度图像的直方图、对灰度图像进行简单的灰度线形变换、看其直方图的对应变化和图像对比度的变化、图像二值化处理。
2、实验步骤:打开MATLAB6.5,参照给定的参考程序完成实验。
参考程序:(一)直方图灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
1、灰度直方图(1)计算出一幅灰度图像的直方图clearclose allI=imread('004.bmp');imhist(I)title('实验一(1)直方图');(2)对灰度图像进行简单的灰度线形变换,figuresubplot(2,2,1)imshow(I);title('试验2-灰度线性变换');subplot(2,2,2)histeq(I);(3)看其直方图的对应变化和图像对比度的变化。
原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)figuresubplot(2,2,1)imshow(I)J=imadjust(I,[0.3,0.7],[0,1],1);title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换');subplot(2,2,2)imshow(J)subplot(2,2,3)imshow(I)J=imadjust(I,[0.5 0.8],[0,1],1);subplot(2,2,4)imshow(J)(4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像)figuresubplot(2,2,1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 实验一(4)图像二值化( 域值为150 )'); subplot(2,2,2)imshow(I)clc;I=imread('14499.jpg');bw=im2bw(I,0.5);%选取阈值为0.5figure;imshow(bw) %显示二值图象实验二图像滤波一、实验目的:1、进一步加深对滤波器、数字滤波的理解。
《数字图像处理》实验指导书编写: 罗建军海南大学三亚学院10月目录一、概述 ....................................................................... 错误!未定义书签。
二、建立程序框架 ....................................................... 错误!未定义书签。
三、建立图像类 ........................................................... 错误!未定义书签。
四、定义图像文档实现图像读/写.............................. 错误!未定义书签。
五、实现图像显示 ....................................................... 错误!未定义书签。
六、建立图像处理类................................................... 错误!未定义书签。
七、实现颜色处理功能............................................... 错误!未定义书签。
(一) 亮度处理................................................................. 错误!未定义书签。
(二) 对比度处理............................................................. 错误!未定义书签。
(三) 色阶处理................................................................. 错误!未定义书签。
(四) 伽马变换................................................................. 错误!未定义书签。
(五) 饱和度处理............................................................. 错误!未定义书签。
(六) 色调处理................................................................. 错误!未定义书签。
八、实现几何变换功能............................................... 错误!未定义书签。
(一) 图像缩放................................................................. 错误!未定义书签。
(二) 旋转......................................................................... 错误!未定义书签。
(三) 水平镜像................................................................. 错误!未定义书签。
(四) 垂直镜像................................................................. 错误!未定义书签。
(五) 右转90度................................................................. 错误!未定义书签。
(六) 左转90度................................................................. 错误!未定义书签。
(七) 旋转180度............................................................... 错误!未定义书签。
九、实现平滑锐化功能............................................... 错误!未定义书签。
十、图像处理扩展编程............................................... 错误!未定义书签。
一、概述实验项目: 图像处理程序编程运行环境: Windows XP/编程工具: Visual C++ 6.0主要内容:(1) 建立程序框架, 实现图像的读取、保存、显示;(2) 编写颜色处理、几何变换、平滑锐化等图像处理代码, 并实现其调用;(3) 自行编写实现扩展的图像处理功能。
二、建立程序框架预备工作: 在本机的硬盘上以自己完整的学号和姓名建立一个文件夹。
上机编程的内容全部保存在该文件夹中。
每次下机前将该文件夹拷贝到网络服务器上本班的文件夹中; 下次上机时再从服务器上将文件夹拷贝到本机。
1. 新建应用程序运行Visual C++ 6.0;点击菜单”文件——新建”, 打开”新建”对话框;点击”工程”选项页; 选中”MFC AppWizard(exe)”; 在”位置”编辑框中选中自己所建立的文件夹; 在”工程名称”编辑框中输入DIP???, 其中???为自己姓名的拼音缩写, 如DIPLJJ; 按”确定”按钮, 进入向导过程。
2. 应用程序向导步骤1: 选择”单文档”, 其它不变,步骤2: 不作改变, 点击”下一步”;步骤3: 不作改变,步骤4: 取消”打印和打印预览”; 按下”高级”按钮, 在”文件扩展名”编辑框中输入bmp, 关闭; 点击”下一步”;步骤5: 选择”作为静态的DLL”, 点击”下一步”;步骤6: 将CDIPLJJView类的基类选择为CScrollView, 其它不变, 点击”完成”。
点击”确定”。
3. 应用程序框架及基本操作在完成向导过程后, 将建立一套应用程序框架, 该框架中包含如下几个类:CDIPLJJApp ——应用程序类CMainFrame ——主窗口框架类CDIPLJJDoc ——文档类CDIPLJJView ——视图类CAboutDlg ——关于对话框类( 其中LJJ应换为自己姓名的拼音缩写, 后同)每个类都有一个类定义文件.h, 和类实现文件.cpp。
在VC主界面左侧的组合窗口中, 切换到”ClassViev”选项页, 点击展开”DIPLJJ Classes”, 将列出该应用程序的所有类。
双击某个类, 将在编辑窗口中打开该类的.h文件; 点击展开类, 双击类中已实现的某个成员函数, 将打开该类的.cpp文件。
4. 修改”关于”对话框在VC主界面左侧的组合窗口中, 切换到”ResourceView”选项页, 展开”DIPLJJ resources”,展开”Dialog”, 双击”IDD_ABOUTBOX”, 对”关于”对话框进行编辑, 在”版权所有(C) ”之前加上自己的学号和姓名, 然后保存。
5. 组建和运行程序点击菜单”组建——组建”, 或点击相应的工具条按钮, 生成可执行程序( exe) ;点击菜单”组建——执行”, 或点击相应的工具条按钮, 运行该程序, 在程序中打开”关于”对话框。
三、建立图像类1. 建立类文件点击菜单”插入——类”, 打开”新建类”对话框; 在类的类型中选中”Generic Class”; 在名称中输入”LImage”; 确定。
建立起LImage 类的头文件LImage.h和源文件LImage.cpp。
2. 编写类定义代码打开LImage.h文件, 将LImage类的定义代码添加到该头文件中( 灰底部分为文件中已有的代码, 后同) :class LImage{public:LImage();virtual ~LImage();BOOL Create(int a_Width,int a_Height);void Destroy();BOOL IsValid();BOOL CopyFrom(LImage *a_pImg);BOOL LoadBmpFile(CString a_Filename);BOOL SaveBitmap(CString a_Filename);//属性int m_Width,m_Height; //图像的宽度, 高度, 以象素计int m_WidthBytes; //每行象素所占字节数int m_ImageSize; //象素数据总字节数BYTE* m_pBits; //图像数据块CDC m_DC;//显示BOOL BitBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_Width,int a_Height,int a_SrcX,int a_SrcY,DWORD a_Rop=SRCCOPY);BOOL StretchBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_DestWidth,int a_DestHeight,int a_SrcX,int a_SrcY,int a_SrcWidth,int a_SrcHeight,DWORD a_Rop=SRCCOPY);int FitBlt(HDC a_DestDC,int a_DestX,int a_DestY,int a_DestWidth,int a_DestHeight,int a_SrcX,int a_SrcY,int a_SrcWidth,int a_SrcHeight,DWORD a_Rop=SRCCOPY);protected:HBITMAP m_hBitmap;HDC m_hMemDC;private:HBITMAP m_hOldBitmap;};#endif// !defined(AFX_LIMAGE_H__4BFB411F_B5D3_4A26_8188_919613CE D4A8__INCLUDED_)3. 编写类实现代码打开LImage.cpp文件, 将LImage类的实现代码添加到该文件中。
(1) 构造及析构函数LImage::LImage(){m_hBitmap = NULL;m_pBits = NULL;m_hMemDC = NULL;}LImage::~LImage(){Destroy();}(2) 图像空间创立函数按给定的图像尺寸分配图像的内存空间, 并定义相关参数。
BOOL LImage::Create(int a_Width,int a_Height){Destroy();if( a_Width==0 || a_Height==0 ) return FALSE;if( a_Width<0 ) a_Width = -a_Width;if( a_Height<0 ) a_Height = -a_Height;BITMAPINFO bi;bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);bi.bmiHeader.biWidth = a_Width;bi.bmiHeader.biHeight = -a_Height; //使图像原点在左上角; 若为正数则在左下角。