图像运算 实验报告
图像处理实验报告
图像处理实验报告实验⼀基于matlab 的⼈脸识别技术⼀、实验⽬的1.熟悉⼈脸识别的⼀般流程与常见识别⽅法;2.熟悉不同的特征提取⽅法在⼈脸识别的应⽤;3.了解在实际的⼈脸识别中,学习样本数等参数对识别率的影响;4.了解⾮⼈脸学习样本库的构建在⼈脸识别的重要作⽤。
使⽤MATLAB 平台编程,采⽤K-L 变换、特征提取及图像处理技术,实现⼈脸识别⼆、实验内容与实验仪器、设备1.构建⾮⼈脸学习样本库;2.观测不同的特征提取⽅法对⼈脸识别率的影响;3.观测不同的学习样本数对⼈脸识别率的影响;1. PC 机-系统最低配置 512M 内存、P4 CPU ;2. Matlab 仿真软件- 7.0 / 7.1 / 2006a 等版本的Matlab 软件。
3. CBCL ⼈脸样本库三、实验原理1.⼈脸特征提取的算法通过判别图像中所有可能区域是否属于“⼈脸模式”的⽅法来实现⼈脸检测。
这类⽅法有:特征脸法、⼈⼯神经⽹络法、⽀持向量机法;积分图像法。
本次使⽤的是PCA(主成分分析法)其原理是:利⽤K-L 变换抽取⼈脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到⼀组投影系数,通过与各个⼈脸图像⽐较进⾏识别。
对于⼀幅M*N 的⼈脸图像,将其每列相连构成⼀个⼤⼩为D=M*N 维的列向量。
D 就是⼈脸图像的维数,即是图像空间的维数。
设n 是训练样本的数⽬;X j 表⽰第j 幅⼈脸图像形成的⼈脸向量,则所需样本的协⽅差矩阵为:1()()m Ti i i S x u x u ==--∑ (1)其中U 为训练样本的平均图像向量:11mi i u x n ==∑ (2)令A=[x 1-u,x 2-u,...x n -u],则有S r =AA T ,其维数为D ×D 。
根据K-L 变换原理,需要求得的新坐标系由矩阵AA T 的⾮零特征值所对应的特征向量组成。
直接计算的计算量⽐较⼤,所以采⽤奇异值分解(SVD)定理,通过求解A T A 的特征值和特征向量来获得AA T 的特征值和特征向量。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=”BM” bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebiXPelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pixels DIB图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数 ,一般放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显示时不进行缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI 位图.5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits 的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
数字图像处理图像变换实验报告
实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。
点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。
如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。
一旦灰度变换函数确定,该点运算就完全确定下来了。
另外,点运算处理将改变图像的灰度直方图分布。
点运算又被称为对比度增强、对比度拉伸或灰度变换。
点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。
图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。
下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。
图像处理实验报告
大学新闻与传播学院实验教学中心实验报告实验名称图像处理指导教师洪杰文华滢年级08 学号23 成绩一、预习部分1、实验目的2、实验基本原理3、主要仪器设备(含必要的元器件、工具)1、实验目的:(1)熟悉和掌握数字图像的基本概念和技术指标,掌握色彩模式、图像分辨率、图像深度、图像文件格式与图像的显示效果、文件容量的关系。
(2)了解和掌握数字图像压缩的概念,观察不同的压缩比对图像的影响。
(3)了解和掌握图像中色彩的确定及选取方法,掌握前景色和背景色的概念及调整方法,掌握色彩填充的基本概念及应用。
(4)了解和掌握图像处理软件Photoshop的基本功能和基本使用方法,熟练掌握图层与选择区的基本使用方法。
(5)通过创造性的构图和对布局及色彩等的巧妙处理,一幅好的图画可以将一个主题以含蓄而又深刻的方式予以提示,并往往具有比单纯的语言文字更强的表现力。
在掌握图像处理基本概念和Photoshop基本使用方法的基础上,对已有的数字图像做一些基本的创意设计和编辑处理。
2、实验基本原理:基于photoshop软件的图像处理。
3、主要仪器设备(含必要的元器件、工具):Adobe Photoshop二、实验操作部分1、实验操作过程2、实验数据、观察到的实验现象1、实验操作过程:1.图像的基本变换(1)自选一幅不小于400×400pixel的彩色数字图像。
在Photoshop中打开该图像,记录其技术参数:文件格式、文件容量,图像尺寸(pixel和cm)、分辨率、色彩模式等。
文件格式:JPEG 图像;文件容量:59.7kb;图像尺寸(pixel和cm):600×600pixel;分辨率:72像素/英寸;色彩模式:RGB模式。
(2)对该图像重采样,要求采样后的图像分辨率为150dpi,图像尺寸为300×300pixel。
色彩模式分别变换成灰度、Indexed和RGB模式,按BMP格式分别保存成不同名称的图像文件;重新打开并观察变换后的显示效果,并记录各个文件的容量。
关于图形图像处理实训报告总结【九篇】
关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。
通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。
下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。
通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。
2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。
我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。
3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。
通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。
4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。
通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。
5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。
通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。
6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。
通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。
7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。
通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。
8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。
实验二 图像运算
实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法2.了解图像几何运算的简单应用3.了解图像的邻域操作二、实验步骤1、打开MATLAB软件,设置工作路径,新建M文件。
2、将图片放到当前工作路径下3、写入图像运算(包括点运算、代数运算、几何运算和图像剪切)程序保存并调试运行。
程序具体要求:(1)图像点运算:读入图像,通过图像点运算改变对比度。
(2)图像的代数运算:图像加法运算、减法运算、乘法运算。
(3)图像的几何运算:A)改变图像的大小:读入图像,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
B)旋转一幅图像将上述图像顺时针和逆时针旋转任意角度,观察显示效果。
C)图像剪切:通过交互式操作,从一幅图像中剪切一个矩形区域。
4、保存实验结果并完善实验报告。
三、实验程序1. 图像点运算%读入图像‘rice.jpg’,通过图像点运算改变对比度rice=imread('rice.jpg');subplot(131),imshow(rice)I=double(rice); %转换为双精度类型J=I*0.43+60;rice2=uint8(J); %转换为uint8subplot(132),imshow(rice2)rice3=uint8(J); %转换为uint8subplot(133),imshow(rice3)2.图像的代数运算a)图像加法运算I=imread('rice.jpg ');imshow(I)J=imread('cameraman.jpg');figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,'uint16');figure,imshow(K2,[])RGB=imread('flowers.jpg');RGB2=imadd(RGB,50);imshow(RGB)figure,imshow(RGB2)RGB3=imadd(RGB,100);figure,imshow(RGB3)b)图像减法运算I=imread('rice.jpg');imshow(I)background = imopen(I,strel('disk',15)); %估计背景图像figure, imshow(background);I2=imsubtract(I,background); %从原始图像中减去背景图像figure, imshow(I2)c)图像乘法运算I=imread('flowers.jpg');J=immultiply(I,1.2);K=immultiply(I,0.5);figure,imshow(J)figure,imshow(K)d)*图像除法运算I=imread('rice.jpg');J=imdivide(I,1.2);K=imdivide(I,0.8);imshow(I)figure,imshow(J)figure,imshow(K)3.图像的几何运算a)改变图像的大小读入图像‘cameraman.jpg’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告
实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
图像运算 实验报告
实验报告课程名称医学图像处理实验名称图像运算专业班级姓名学号实验日期实验地点2015—2016学年度第 2 学期一、实验目的MATLAB的图像处理工具箱提供了图像运算函数。
本实验将具体介绍Matlab中的图像点运算、代数运算、几何和邻域操作运算。
二、实验环境1、硬件配置:处理器:Intel(R)Core(TM) i7-3770 CPU @3.40GHz 3.40GHz安装内存(RAM):4.00GB 系统类型:64位操作系统2、软件环境:MATLAB R2013b软件三、实验内容利用Matlab对图像进行点运算、加法运算、减法运算、乘法运算、除法运算、改变图像的大小、旋转图像、图像的剪切、图像的邻域操作。
四、实验结果与分析(包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)注:本项可以增加页数例1图像点运算skull=imread('skull.tif'); %读取图像subplot(131),imshow(skull) %生成一行三列三块区域,并在第一块区域绘制图像I=double(skull); %转换为双精度类型J=I*0.43+60; %利用该函数对输出图像进行压缩,使其对比度减小,图像变暗skull2=uint8(J); %转换为uint8subplot(132),imshow(skull2) %在第二块区域绘制图像J=I*1.5-60; %利用该函数对输出图像进行对比度级数拓展,使其对比度增强,图像变亮skull3=uint8(J); %转换为uint8subplot(133),imshow(skull3) %在第三块区域绘制图像运行结果:图1 原图像图2 对比度减小的图像图3 对比度增强的图像分析:1)subplot是用于将多个图像画到一个平面上的函数。
subplot(m,n,p,)中的m表示m行,n 表示n列,p表示从左到右的第几块区域;2)uint8表示8位无符号的整型数据类型,以此方式存储的图像称作8位图像;而Matlab中数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时,应先把skull图像转化为double格式;3)线性灰度变换函数当a=1,b=0时,输出图像像素不发生变化;当a=1,0b时,输≠出图像所有灰度值上移或下移;当1<a时,输出图像灰度级压缩,对比度减小,0<如图2所示;当1<aa时,输出图像灰度级拓展,对比度增强,如图3所示;当0>时,输出图像暗区域变亮,亮区域变暗,图像求反。
图像处理综合实验报告
专业综合实验报告——图像处理学院:专业:班级:学号:姓名:指导教师:2011.12.1实验二 图像变换一、实验目的学习灰度变换修正图像的颜色和灰度的方法。
学习图像直方图的生成和修正技术的原理和实现方法,理解其对于观察图像的意义。
了解图像变换的意义和手段,熟练掌握傅里叶变换等图像正交变换方法,了解二维频谱的分布特点。
二、实验要求1.掌握灰度变换函数的用法,对图像进行灰度变换,增强对比度,显示变换前后的图像以及它们的灰度直方图。
2.选择一幅直方图不均匀的图像,对其作直方图均衡化处理,显示处理前后的图像以及它们的灰度直方图。
三、实验内容1.直方图均衡化处理I1=imread('h1.bmp'); % 读入原图像 I2=imread('h2.bmp'); % 读入原图像 I3=imread('h3.bmp'); % 读入原图像 I4=imread('h4.bmp'); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理 imshow(I); %显示原图像title('原图像'); %给原图像加标题名figure,imshow(J); %对原图像进行屏幕控制;显示直方图均衡化后的图像 title('直方图均衡化所得图像'); %给直方图均衡化后的图像加标题名figure;subplot(121); %对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图 imhist(I,64); %将原图像直方图显示为64级灰度 title('原图像直方图'); %给原图像直方图加标题名 subplot(122); %作第2幅子图imhist(J,64); %将均衡化后图像的直方图显示为64级灰度 title(‘均衡变换后的直方图’); %给均衡化后图像直方图加标题名2.显示图像频谱I=imread('chuizhi.bmp'); %读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化figure; %设定窗口imshow(A); %显示原图像的频谱四、思考题1.直方图是什么概念?它反映了图像的什么信息?答:直方图是图像亮度分布的概率密度函数,是图像最基本的统计特征,它反映的是图像的灰度值的分布情况和图像的明暗分布规律,。
数字图像处理实验报告实验三
代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
图5-2 添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-Miss Transform:击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3 击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
SE = strel('square',W)
构造一个正方形的矩阵。
图像处理和分析技术实验报告
图像处理实验报告学院:指导老师:专业:班级:学号:姓名:实验一:图像处理基础及图像变换(一)【实验目的】:掌握使用Matlab进行图像处理的基本知识,掌握对图像进行变换的方法,观察图像变换的效果,加深对图像变换知识的理解。
【实验内容】:Matlab的安装和基本的操作以及傅立叶变换实验步骤:1、熟悉Matlab的安装和基本的操作,包括对基本图像处理函数的掌握(imread, imshow, figure, subplot)2、傅立叶变换(fft2, ifft2, fftshift)1) 调入图像文件。
2) 对图像做傅立叶变换,观察图像的原始频谱。
3) 对傅立叶变换的进行移动,观察移位以后的频谱。
4) 对移动后的频谱进行增强,观察增强以后的频谱。
5) 对图像傅立叶变换进行逆变换,比较原图像和经过傅立叶变换和逆变换以后获得的图像。
【源程序】:close all;clear all;A=imread('Fig6.38(a).jpg');subplot(2,3,1);imshow(A);title('原图像');B=rgb2gray(A);subplot(2,3,2);imshow(B);title('原图像灰度图像');C=FFT2(B);subplot(2,3,3);imagesc(abs(C),[0 2000]);title('傅里叶变换图像');subplot(2,3,4);imshow(log(1+abs(C)),[0 10]);title('增强');% subplot(2,2,3);imshow((F.*F),[0 10]);subplot(2,3,5);imshow(fftshift(C));title('移位图像');D=ifft(double(B));subplot(2,3,6);imshow(D);title('傅里叶反变换图像');【实验结果】:傅呈叶变换因傅.100200300400500100 200 300 40& 50C移宜囲傑條里叶反驾拽團像实验二:图像处理基础及图像变换(二)【实验目的】:掌握使用Matlab 进行图像处理的基本知识,掌握对图像进行变换的方法,观察图像变换的效果,加深对图像变换知识的理解。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即ImageProcessingT oolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread (‘tire.tif'');”。
其基本格式为:“A=imread(‘filename.fmt'')”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,''test_image.jpg'');”。
其基本格式为“imwrite(a,filename.fmt)”。
调用imshow函数显示图像。
例如“imshow(‘tire.tif'');”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用"读图像文件I/O”函数读入图像ltaly.jpg。
(2)利用"读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、Formatversion(格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType(彩色类型)、CodingMethod(编码方法)等。
数据图像处理实验报告
//对y方向进行快速付立叶变换
FFT(&TD[w * i], &FD[w * i], wp);
}
//保存变换结果
for(i = 0; i < h; i++)
{
for(j = 0; j < w; j++)
{
TD[i + h * j] = FD[j + w * i];
}
}
for(i = 0; i < w; i++)
YCBCR空间图像中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。主要的子采样格式有YCbCr 4:2:0、YCbCr 4:2:2和YCbCr 4:4:4。
2、图像灰度变换与代码编写
a)在VC6.0环境下打开“医学图像处理系统”代码,进行编译调试,打开实验前准备的医学图像,进行灰度变换曲线调整如下图,观察图像进行灰度调整后的效果;
实验二 图像的FFT变换实验
一、实验目的:
1、练习Visual C++的一些FFT变换的算法实现方式;
2、编写Visual C++关于图像的FFT变换函数的编写和调试;
3、熟悉FFT变换在图像处理中的作用及功能;
4、熟悉FFT变换后的显示基本算法;
5、学会编写图像的FFT变换相关函数:
二、实验原理:
}
return TRUE;
}
3、灰度运算对于图像处理的作用,对照观察灰度变换前后的图像,了解各种灰度变换的作用
使图像加亮使图像减暗
提高图像对比度降低图像对比度
灰度级切片
四、思考题
1、要设计一个功能完善的图像灰度变换处理软件,需要在那些功能上进行完善和设计;
实验报告二 Matlab图像代数运算和几何变换
实验二Matlab图像代数运算和几何变换一、实验目的1、掌握不同图像类型的转换2、掌握图像代数运算和几何变换的方法;3、掌握灰度级插值法的实验方法。
二、实验内容1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73);2、练习课本6.3.2(p139-p143)图像代数运算的内容;3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;4、练习灰度级插值法(p171)。
三、实验步骤和结果1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(1)mat2gray()函数I=imread('rice.png');>> J=filter2(fspecial('sobel'),I);>> K=mat2gray(J);>> imshow(I);>> figure,imshow(K)(2)、grayslice()函数>> I=imread('snowflakes.png');>> X=grayslice(I,16);>> imview(I)imview(X,jet(16))(3)、rgb2ind()函数> RGB=imread('peppers.png');>> imshow(RGB);>> figure,imshow(RGB)>> [X,map]=rgb2ind(RGB,128);>> figure,imshow(X,map) (4)、im2bw()函数>> load trees>> BW=im2bw(X,map,0.4);>> figure,imshow(X,map)>> figure,imshow(BW)(5)、ind2gray()函数load trees>> I=ind2gray(X,map);>> figure,imshow(X,map)>> figure,imshow(I)(6)、dither()函数>> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map);>> BW=dither(I);>> imshow(RGB,map);>> figure,imshow(RGB,map); >> figure,imshow(BW)Result:(1)转换后图像(2)索引色图像(3)索引色图像(4)索引色图像(4)二值化后的图像(5)转换后的灰度图像(6)索引色图像(6)抖动转换图像2、练习课本6.3.2(p139-p143)图像代数运算的内容(1)加法运算I=imread('rice.png');>> figure(1),imshow(I,[])>> I2=imread('cameraman.tif')>> figure(2),imshow(I2,[])>> K=imadd(I,I2,'uint16');>> figure(3),imshow(K,[])>> I=imread('lena.bmp');>> I2=imadd(I,50);>> figure(1),imshow(I)>> figure(2),imshow(I2)(2)、减法运算>> I=imread('rice.png'); >> I2=imread('cameraman.tif'); >> I3=imsubtract(I,I2);>> figure,imview(I3)(3)乘法&除法运算>> I=imread('lena.bmp');>> I2=immultiply(I,0.5);>> figure,imshow(I)>> figure,imshow(I2)>> I3=immultiply(I,1.5);>> figure,imshow(I3)>> I4=imdivide(I,0.5);>> figure,imshow(I4)>> I5=imdivide(I,1);>> figure,imshow(I5)Result:(1)加法运算后的图像(1)加入常数后的图像(2)减法运算(3)乘以0.5后的图像乘以1后的图像除以0.5后的图像除以1后的图像3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;(a)图像平移>> I=imread('trees.tif');>> figure,imshow(I)>> I=double(I);>> I_movesult=zeros(size(I));>> H=size(I);>> Move_x=50;>> Move_y=50;>>I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1:H(1)-Move_x,1:H(2)-Move_y);>> figure,imshow(uint8(I_movesult))(b)图像比例变换J=imread('trees.tif');>> figure,imshow(J);>> X1=imresize(J,2);>> X2=imresize(J,0.5);>> figure,imshow(X1)>> figure,imshow(X2)(C)图像旋转变换>> I=imread('peppers.png');>> figure,imshow(I)>> X1=imrotate(I,30,'nearest');>> figure,imshow(uint8(X1))>> X2=imrotate(I,45,'nearest');>> figure,imshow(uint8(X2))>> X3=imrotate(I,60,'nearest');>> figure,imshow(uint8(X3))>> X4=imrotate(I,90,'nearest');>> figure,imshow(uint8(X4))(d)图像镜像变换>> I=imread('forest.tif');>> I=double(I);>> figure,imshow(uint8(I));>> H=size(I);>> figure(2),>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));>> imshow(uint8(I2));>> figure,imshow(uint8(I2));>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);>> figure,imshow(uint8(I3));>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1);>> figure,imshow(uint8(I4));(e)图像切割>> I1=imread('peppers.png');>> I2=imcrop(I1,[75 68 220 100]);>> imview(I2)I3=imcrop(I1,[30 40 120 100]);>> imview(I3)(a)平移后的图像(b)放大后图像(b)缩小后的图像(c)旋转30°后的图像旋转45°后的图像旋转60°后的图像旋转90°后的图像(d)原始图像垂直镜像水平镜像对角镜像(e)原始图像一次切割后图像二次切割后图像4、练习灰度级插值法(p171)>> I=imread('lena.bmp');>> X1=imresize(I,1);>> X2=imresize(I,1,'bilinear');>> X3=imresize(I,1,'bicubic');>> figure,imshow(X1)>> figure,imshow(X2)>> figure,imshow(X3)最近邻差值法双线性插值法三次插值法四、实验体会在本次实验中掌握不同图像类型的转换,掌握了转换函数及其语法格式,如ind2rgb()函数将索引图像转换成真彩色。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告第一章总论数字图像处理是计算机图形学、数字信号处理等学科交叉的一门学科。
它是基于数字计算机对图像信号进行数字处理的一种方法。
数字图像处理技术已广泛应用于医学影像诊断、遥感图像处理、图像识别、安防监控等领域,在当今社会中具有不可替代的重要作用。
本次实验主要介绍了数字图像处理的基本方法,包括图像采集、图像增强、图像恢复、图像分割、图像压缩等几个方面。
在实验过程中,我们采用了一些常用的数字图像处理方法,并通过 Matlab 图像处理工具箱进行实现和验证。
第二章实验过程2.1 图像采集在数字图像处理中,图像采集是一个重要的步骤。
采集到的图像质量直接影响到后续处理结果的准确性。
本次实验使用的图像是一张 TIF 格式的彩色图像,通过 Matlab 读取图像文件并显示,代码如下:```Matlabim = imread('test.tif');imshow(im);```执行代码后,可以得到如下图所示的图像:![image_1.png](./images/image_1.png)2.2 图像增强图像增强是指利用某些方法使图像具有更好的视觉效果或者变得更适合某种应用。
本次实验我们主要采用直方图均衡化、灰度变换等方法进行图像增强。
2.2.1 直方图均衡化直方图均衡化是一种常用的增强方法,它可以增加图像的对比度和亮度,使图像更加清晰。
代码实现如下:```Matlabim_eq = histeq(im);imshow(im_eq);```执行代码后,会得到直方图均衡化后的图像,如下图所示:![image_2.png](./images/image_2.png)可以看出,经过直方图均衡化处理后,图像的对比度和亮度得到了明显提高。
2.2.2 灰度变换灰度变换是一种用于调整图像灰度级别的方法。
通过变换某些像素的灰度级别,可以增强图像的视觉效果。
本次实验我们采用对数变换和幂函数变换两种方法进行灰度变换。
数字图像处理实验报告
目录实验一:数字图像的基本处理操作 (2)1。
1:实验目的 (2)1。
2:实验任务和要求 (2)1.3:实验步骤和结果 (2)1。
4:结果分析 (6)实验二:图像的灰度变换和直方图变换 (7)2.1:实验目的 (7)2.2:实验任务和要求 (7)2。
3:实验步骤和结果 (7)2。
4:结果分析 (11)实验三:图像的平滑处理 (12)3.1:实验目的 (12)3。
2:实验任务和要求 (12)3。
3:实验步骤和结果 (12)3。
4:结果分析 (16)实验四:图像的锐化处理 (17)4.1:实验目的 (17)4.2:实验任务和要求 (17)4。
3:实验步骤和结果 (17)4.4:结果分析 (19)实验一:数字图像的基本处理操作1.1:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
1。
2:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题.3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
1.3:实验步骤和结果1.对实验任务1的实现代码如下:a=imread(’d:\tp.jpg’);i=rgb2gray(a);I=im2bw(a,0。
5);subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title(’灰度图像’);subplot(1,3,3);imshow(I);title('二值图像’);subplot(1,3,1);imshow(a);title('原图像');结果如图1。
光学微分和加减法实验报告
光学图像微分与加减实验实验一光学图像加减实验引言图像加减是相干光学处理中的一种基本的光学‐数学运算, 是图像识别的一种主要手段。
其中比较感兴趣的是图像相减,因为通过相减可以求出两张相近照片的差异, 从中提取差异信息。
例如:通过在不同时期拍摄的两张照片相减, 在医学上可用来发现病灶的变化; 在军事上可以发现地面军事设施的增减; 在农业上可以预测农作物的长势; 在工业上可以检查集成电路掩膜的疵病, 等等。
还可用于地球资源探测、气象变化以及城市发展研究等各个领域。
实现图像相减的方法很多, 本实验介绍利用正弦光栅作为空间滤波器实现图像相减的方法。
一.实验目的和教学要求:1 .采用正弦光栅作滤波器,对图像进行相加和相减实验,加深对空间滤波概念的理解;2 .通过实验,加深对傅里叶光学相移定理和卷积定理的认知。
二.实验原理:设正弦光栅的空间频率为f0 , 将其置于4 f 系统的滤波平面P2 上, 如图1 所示, 光栅的复振幅透过率为:式中,f 为傅里叶变换透镜的焦距;表示光栅条纹的初位相,它决定了光栅相对于坐标原点的位置。
将图像A 和图像B 置于输入平面P1 上,且沿x1 方向相对于坐标原点对称放置,图像中心与光轴的距离均为b。
选择光栅的频率为f0,使得, 以保证在滤波后两图像中A 的+ 1 级像和B 的- 1 级像能恰好在光轴处重合。
于是, 输入场分布可写成:在其频谱面P2 上的频谱为:由于及,因此。
上式可以写成经过光栅滤波后的频谱为:图1 光学图像加减原理图通过透镜L2 进行傅立叶逆变换,在输出平面P3 上的光场为:讨论:(1)当光栅条纹的初相位时,上式变为:结果表面在输出平面P3 的光轴附近,实现了图像相加。
(2)当光栅条纹的初相位时,上式变为:结果表面在输出平面P3 的光轴附近,实现了图像相减。
从相加状态转换到相减状态,光栅的横向位移量应等于1/4 周期,即满足:因此,小心缓慢的横向水平移动光栅时,将在输出平面的光轴附近观察到图像A、B 交替的相加相减的效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告课程名称医学图像处理实验名称图像运算专业班级姓名学号实验日期实验地点2015—2016学年度第 2 学期一、实验目的MATLAB的图像处理工具箱提供了图像运算函数。
本实验将具体介绍Matlab中的图像点运算、代数运算、几何和邻域操作运算。
二、实验环境1、硬件配置:处理器:Intel(R)Core(TM)*******************.40GHz安装内存(RAM):4.00GB 系统类型:64位操作系统2、软件环境:MATLAB R2013b软件三、实验内容利用Matlab对图像进行点运算、加法运算、减法运算、乘法运算、除法运算、改变图像的大小、旋转图像、图像的剪切、图像的邻域操作。
四、实验结果与分析(包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)注:本项可以增加页数例1图像点运算skull=imread('skull.tif'); %读取图像subplot(131),imshow(skull) %生成一行三列三块区域,并在第一块区域绘制图像I=double(skull); %转换为双精度类型J=I*0.43+60; %利用该函数对输出图像进行压缩,使其对比度减小,图像变暗skull2=uint8(J); %转换为uint8subplot(132),imshow(skull2) %在第二块区域绘制图像J=I*1.5-60; %利用该函数对输出图像进行对比度级数拓展,使其对比度增强,图像变亮skull3=uint8(J); %转换为uint8subplot(133),imshow(skull3) %在第三块区域绘制图像运行结果:图1 原图像图2 对比度减小的图像图3 对比度增强的图像分析:1)subplot是用于将多个图像画到一个平面上的函数。
subplot(m,n,p,)中的m表示m行,n 表示n列,p表示从左到右的第几块区域;2)uint8表示8位无符号的整型数据类型,以此方式存储的图像称作8位图像;而Matlab中数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时,应先把skull图像转化为double格式;3)线性灰度变换函数当a=1,b=0时,输出图像像素不发生变化;当a=1,0b时,输≠出图像所有灰度值上移或下移;当1<a时,输出图像灰度级压缩,对比度减小,0<如图2所示;当1a<>a时,输出图像灰度级拓展,对比度增强,如图3所示;当0时,输出图像暗区域变亮,亮区域变暗,图像求反。
2、图像的代数运算例2图像加法运算skull=imread('skull.tif'); %读取图像imshow(skull) %显示图像J=imread('cameraman.tif'); %读取图像figure,imshow(J) %显示图像I=imresize(skull,[256,256]); %将skull图像转换为256256⨯的大小K=imadd(I,J); %对两幅图像的灰度值进行加法运算figure,imshow(K) %显示图像K2=imadd(I,J,'uint16'); %对两幅图像的灰度值进行加法运算,并转化为uint16 figure,imshow(K2,[]) %显示图像RGB=imread('skull.tif'); %读取图像RGB2=imadd(RGB,50); %将图像skull与常数50相加imshow(RGB) %显示RGB图像figure,imshow(RGB2) %显示亮度增强50的RGB图像RGB3=imadd(RGB,100);%将图像skull与常数100相加figure,imshow(RGB3) %显示亮度增强100的RGB图像运行结果:图4 skull原图像图5 cameraman原图像图6 两幅相加后的图像图7 转化为uint16的图像图8 RGB原图图9 亮度增强50后的图像图10 亮度增强100后的图像分析:1)imadd是用于实现两图像灰度值相加的函数,imadd(I,J)中的I和J要求大小相等,由于我读取的skull图像的尺寸为10241280⨯,因此在进行I和J的加法运算前须利用imresize函数把skull图像转换为256256⨯的大小;2)I和J进行相加后的图像如图6所示,而在I和J相加的基础上将其转换为uint16的图像如图7所示,我们可以清楚的发现图6比图7的更亮,但细节比图7的模糊,这是由于Matlab在运算后会自动将图像转换为double型,因此uint16的图像是比double型的图像更清晰;3)imadd(RGB,50)是将一个常数50加到RGB图像上,即使图像的灰度级增强了50,如图9所示,以此类推,图10为灰度级增强了100的图像。
例3 图像减法运算I=imread('skull.tif'); %读取图像imshow(I) %显示图像background=imopen(I,strel('disk',15)); %估计圆盘半径为15的背景图像figure,imshow(background); %显示背景图I2=imsubtract(I,background); %从原始图像中减去不均匀的背景图运行结果:图11 skull原图图12 背景图图13 减去背景图后的图像分析:1)imopen开运算属于形态图像处理,是先腐蚀后膨胀,可以使边界平滑,消除尖刺,断开窄小的连接,保持面积大小不变;strel是用于构建结构元素对象,imopen(I,strel('disk',15))就是构建圆盘半径为15的背景图,如图12所示;2)imsubtract函数是用于两幅图像的相减运算,如图13所示,减去不均匀的部分后,图像变得更加平滑。
例4 图像的乘法运算I=imread('skull.tif'); %读取图像J=immultiply(I,1.2); %图像的乘法,缩放因子是1.2>1,增强图像的亮度K=immultiply(I,0.5); %图像的乘法,缩放因子是0.5<1,减小图像的亮度imshow(I) %显示原图像figure,imshow(J) %显示亮度增强图像figure,imshow(K) %显示亮度减小图像运行结果:图14 skull原图图15 亮度增强后的图像图16 亮度减小后的图像分析:1)乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分2)一幅图像乘以一个常数通常被称为缩放。
immultiply(I,1.2),使用的缩放因数大于1,那么将增强图像的亮度,如图15所示;immultiply(I,0.5)中的因数小于1则会使图像变暗,如图16所示。
例5 图像除法运算I=imread('skull.tif'); %读取原图像J=double(I)*0.43+80; %利用该函数对输出图像进行处理,是对比度减小,图像变暗J=uint8(J); %转换成uint8K=imdivide(I,J); %除法运算imshow(I) %显示原图像figure,imshow(J) %显示对比度减小的图像figure,imshow(K) %显示灰度级相除后的图片运行结果:图17 skull原图图18 对比度减小的图片图19 灰度级相除后的图片分析:1)J=double(I)*0.43+80是将skull图像转换为double型再对其进行灰度变换运算,使其灰度级减小,如图18所示;2)imdivide(I,J)要求I和J数据类型一致,因此在进行此运算时,须先将double型的J 转换为uint8,两幅图像的灰度级相除后的到的结果为[0,1],因为其灰度级极其相近且小,肉眼无法分辨,故我们所看到的输出图像几近与纯黑色,如图19所示;3)除法运算是用于校正成像设备的非线性影响。
例6 图像的几何运算I=imread('skull.tif'); %读取图像J=imresize(I,1.25); %返回图像J,其长宽是图像I的长宽的1.25倍,即放大图像K=imresize(I,0.8); %返回图像K,其长宽是图像I的长宽的0.8倍,即缩小图像imshow(I) %显示原图figure,imshow(J) %显示尺寸放大的图像figure,imshow(K) %显示尺寸减小的图像Y=imresize(I,[100,150]); %返回图像Y,高度为100,宽度为150figure,imshow(Y) %显示150100⨯的图像运行结果:图20 skull的原图像图21 尺寸放大的图像图22 尺寸减小的图像图23 150100⨯的图像分析:1)imresize函数可改变图像输出图像的大小,J=imresize(I,1.25)为返回图像J,其长宽是图像I的长宽的1.25倍,即放大图像,如图21所示;K=imresize(I,0.8)为返回图像K,其长宽是图像I的长宽的0.8倍,即缩小图像,如图22所示;2)Y=imresize(I,[100,150])是直接指定输出图像真实的大小,即返回图像Y,高度为100,宽度为150。
例7 旋转一幅图像I=imread('skull.tif'); %读取图像J=imrotate(I,30,'bilinear'); %将图像skull绕图像的中心点旋转30度J1=imrotate(I,30,'bilinear','crop');%crop:通过对旋转后的图像进行裁剪,保持旋转后输出图像J1的尺寸和输入图像skull的尺寸一样。
imshow(I) %显示原图figure,imshow(J) %显示逆时针旋转30度的图像figure,imshow(J1) %显示裁剪后的图像J2=imrotate(I,-15,'bilinear'); %将图像顺时针旋转15度,进行双线性插值figure,imshow(J2) %显示顺时针旋转15度的图像运行结果:图24 skull的原图像图25 逆时针旋转o30的图像图26 裁剪后的图像图27 顺时针旋转o15的图像分析:1)Imrorate(x,n)是用于对图像进行旋转的函数,其中X若为正数则表示逆时针旋转,数则表示顺时针旋转;J=imrotate(I,30,'bilinear')表示逆时针旋转30度,如图25所示;其中bilinear 为双线性插值,在两个方向分别进行一次线性插值;J2=imrotate(I,-15,'bilinear')则表示顺时针旋转15度,如图27所示;2)J1=imrotate(I,30,'bilinear','crop')中的crop是通过对旋转后的图像进行裁剪,保持旋转后输出图像J1的尺寸和输入图像skull的尺寸一样,如图26所示。