版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一数字图像文件基本类型转换一、实验目的1.了解Matlab支持4种图像类型:灰度图像、二值图像、索引图像和RGB图像。2.学会运用MATLAB实现4种类型之间的转换。3.熟练掌握在MATLAB中如何读取和存储图像。4.掌握图像间的基本运算。二、实验原理数字图像处理就是将图像信号转换成数字格式并利用计算机对其进行一系列的操作,以得到所期望的结果。它基本的步骤可分为图像信息的获取、存储、处理、传输、输出和显示。数字图像处理的基本方法包括图像数字化、图像变换、图像增强、图像恢复、图像压缩编码、图像分割、图像分析与描述和图像识别分类。应用领域则是非常广泛,主要包括有宇宙探测、通信工程、遥感、生物医学、工业生产、军事公安、信息安全和信息检索等。1、数字图像的特点⑴相比于语音等其他信号,图像具有信息量大、占用频带宽的特点。在图像通信中,有限信道根本无法实时传输图像,这对图像频带压缩提出了很高的要求。⑵像素间相关性大。在同一帧内各相邻像素间具有相同或相近的灰度可能性很大,而运动图像的相邻帧相关性更大。这些都说明数字图像中存在着大量的冗余,通过减少或消除这些冗余,进行图像压缩的可能性很大。在数字图像处理中,一方面要充分考虑人的视觉特性,简化处理过程。2、图像的读取及存储⑴图像的读取读取图像函数:imread()格式:变量名=imread(‘路径\文件名’,‘文件格式’)例:x=imread('city.jpg','jpg');需要注意的是这是简略的写法,说明这幅图片在MATLAB的默认路径下。⑵图像的保存①将图像写到文件imwrite()格式:imwrite(变量名,‘新文件名’)例:imwrite(x,'new_image.bmp')此时图片会自动存入默认路径下。②将图像用save命令以mat文件形式保存到磁盘中,以后可用load命令调用。格式:save保存的文件名变量名(图像)load保存的文件名3、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1-1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。图1-1图像的采样和量化根据图像数据矩阵解释方法的不同,MATLAB把其处理为4类:索引图像(Indexedimages)灰度图像(Intensityimages)二值图像(Binaryimages)RGB图像(RGBimages)MATLAB图像处理工具箱为开发者提供了丰富的图像处理函数,内容包括图像I/O、图像空间变换、图像配准、图像变换、线性滤波及滤波器设计、邻域与块处理、图像增强、图像模糊消除、感兴趣区域操作和图像形态学分析等。⑴索引图像索引图像包括图像矩阵与颜色图数组。其中颜色图是按照图像中颜色值进行排序后的数组。对于每个象素,图像矩阵包含一个值,这个值就是颜色图数组中的索引。索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。颜色图为m*3双精度值矩阵,各行分别指定红、绿、蓝单色值。图像矩阵与颜色图的关系依赖于图像矩阵是双精度还是无符号8位整数(unit8)。⑵灰度图像灰度图像也成为亮度图像,一幅灰度。图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1]⑶二值图像二值图像也成为二进制图像,一幅二值图像是一个取值只有0和1的逻辑数组。而一幅取值只包含0和1的uint8类数组,在MATLAB中并不认为是二值图像。使用logical函数可以把数值数组转化为二值数组或逻辑数组。创建一个逻辑图像,其语法为:B=logical(A)其中,B是由0和1构成的数值数组。要测试一个数组是否为逻辑数组,可以使用函数:islogical(c)若C是逻辑数组,则该函数返回1;否则,返回0。⑷RGB图像一幅RGB图像就是彩色像素的一个M×N×3数组,M和N表示图像像素的行列数。其中每一个彩色相似点都是在特定空间位置的彩色图像相对应的红、绿、蓝三个分量。按照惯例,形成一幅RGB彩色图像的三个图像常称为红、绿或蓝分量图像。令fR,fG和fB分别代表三种RGB分量图像。一幅RGB图像就利用cat(级联)操作将这些分量图像组合成彩色图像:rgb_image=cat(3,fR,fG,fB)在操作中,图像按顺序放置。4、数据类和图像类型间的转化⑴数据类型间的转换表1-1中列出了MATLAB表示像素所支持的各种数据类。表中的前8项称为数值数据类,第9项称为字符类,最后一项称为逻辑数据类。工具箱中提供了执行必要缩放的函数(见表1-2)。以在图像类和类型间进行转化。预览:表1-1MATLAB和IPT支持数据类型表1-2格式转换函数⑵图像类型间的转换MATLAB支持BMP(windows位图格式)、JPG(联合图像专家组格式)、PCX(windows画刷格式)、PNG(可移动网络图形格式)、TIF(编制图像文件格式)等多种图像文件格式。①灰度图像与索引图像的相互转换:gray2ind(),ind2gray()。格式:[X,MAP]=gray2ind(I,[n])其中,I表示存放灰度图像的变量,n为颜色值(缺省64)。I=ind2gray(X,MAP)其中,X表示图像矩阵变量,MAP表示颜色图数组变量。②RGB图像与灰度图像的转换:rgb2gray()。格式:I=rgb2gray(RGB)表示将真彩图像RGB转换为灰度级亮度图像I。注意!灰度图像是不能转成RGB图像的。③RGB图像与索引图像的相互转换:rgb2ind(),ind2rgb()。格式:[X,MAP]=rgb2ind(RGB)RGB=ind2rgb(X,MAP)其中X表示索引图像变量名,MAP为索引图像调色板。预览:④将索引图像、灰度图像、RGB图像转换为二值图像:im2bw()。需要注意的是,只有灰度图像可以直接调用im2bw()来转成二值图像,而其他类型的图像都需要先转成灰度级图像再转成二值图像。输出图像在输入图像所有亮度小于给定值(level)像素点处均为0,在其他地方均为1。level值得取值范围为[0,1]。格式:BW=im2bw(I,level)BW=im2bw(X,MAP,level)BW=im2bw(RGB,level)5、图像的运算和空间域操作⑴图像的运算图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。使用MATLAB的基本算术符(+、-、*、/等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图像代数运算函数。表1-3图像处理工具箱中的代数运算函数使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。代数运算的结果很容易超出数据类型允许的范围。例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。图像可以和常数进行运算,它表示对图像中的每一个像素点来进行相应的操作,相当于把矩阵中所有元素都进行扩大或缩小的操作。所以,如果是图像和图像间的逻辑运算,必须要让两幅图的尺寸,也就是长和宽保持一致,相当于操作的两个数组是同样的大小,即维数相同,并且运算后会得到相同维数的数组,也就是说进行了逻辑运算以后的图像尺寸并不会改变。能够进行逻辑运算的两幅图像除了要满足尺寸一致这个条件以外,还需要满足图像类型一致的条件。图像加法(函数:imadd())功能:实现两幅图像相加或图像加上一个常数两幅图像的像素值相加时产生的结果很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出情况最为常见。当数据值发生溢出时,imadd函数将数据截取为数据类型所支持的最大值,这种截取效果称之为饱和。为了避免出现饱和现象,在进行加法计算前最好将图像转换为一种数据范围较宽的数据类型。例如,在加法操作前将uint8图像转换为uint16类型。图像减法(函数:imsubtract())功能:实现两幅图像相减或图像减去一个常数。图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。图像减法可以作为许多图像处理工作的准备步骤。例如,可以使用图像减法来检测一系列相同场景图像的差异。图像减法与阈值化处理的综合使用往往是建立机器视觉系统最有效的方法之一。在利用图像减法处理图像时往往需要考虑背景的更新机制,尽量补偿由于天气、光照等因素对图像显示效果造成的影响。减法操作有时会导致某些像素值变为一个负数,对于uint8或uint16类型的数据,如果发生这种情况,那么imsubtract函数自动将这些负数截取为0。为了避免差值产生负值,同时避免像素值运算结果之间产生差异,可以调用函数imabsdiff。imabsdiff将计算两幅图像相应像素差值的绝对值,因而返回结果不会产生负数。该函数的调用格式与imsubtract函数类似。图像乘法(函数:immultiply())功能:实现两幅图像相乘或图像的亮度缩放。两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。一幅图像乘以一个常数通常被称为缩放,这是一种常见的图像处理操作。如果使用的缩放因子大于1,那么将增强图像的亮度,如果因子小于1则会使图像变暗。缩放通常将产生比简单添加像素偏移量自然得多的明暗效果,这是因为这种操作能够更好地维持图像的相关对比度。此外,由于时域的卷积或相关运算与频域的乘积运算对应,因此乘法运算有时也被作为一种技巧来实现卷积或相关处理。uint8图像的乘法操作一般都会发生溢出现象。Immultiply函数将溢出的数据截取为数据类型的最大值。为了避免产生溢出现象,可以在执行乘法操作之前将uint8图像转换为一种数据范围较大的图像类型,例如uint16。图像除法(函数:imdivide())功能:实现两幅图像相除或图像的亮度缩放。除法运算可用于校正成像设备的非线性影响,这在特殊形态的图像(如断层扫描等医学图像)处理中常常用到。图像除法也可以用来检测两幅图像间的区别,但是除法操作给出的是相应像素值的变化比率,而不是每个像素的绝对差异,因而图像除法也称为比率变换。⑵图像的空间域操作①图像的缩放(函数:imresize())格式:J=imresize(I,n),其中n为缩放比例②图像的旋转(函数:imrotate())格式:J=imrotate(I,旋转度数,‘方法’,‘crop’)其中旋转度数一般在[0,360]之间,‘方法’一般来说有3种'nearest'(最邻近插值法),'bilinear'(双线性插值法),'bicubic'(三次卷积插值法)。不同的插值方法得到的旋转图像有细微的差,缺省时matlab默认为选最邻近插值法,此时图像会有一定的失真,这个失真主要是因为matlab在计算每个点的新坐标的时候得到的数值不是整数,要去整所造成的。最后如果加上‘crop’表示旋转完成以后,将新得到的图像裁剪到跟原来同样的大小。③图像的剪切(函数:imcrop())格式:J=imcrop(I,[xminyminxmaxymax],)xminyminxmaxymax表示剪切时,从原图什么地方开始和终止的坐标。三、实验例题1、任选一幅图像对其进行各种图像变换a=imread('city.jpg','jpg');预览:subplot(2,2,1)subimage(a)title('原彩色图像')i=rgb2gray(a);subplot(2,2,2)subimage(i)title('灰度图像')[X,MAP]=rgb2ind(a,256);subplot(2,2,3)subimage(X)title('索引图像')2、为图像中每个像素增加亮度x=imread('aaa.tif');I=rgb2gray(x);J=imadd(I,100);subplot(1,2,1);subimage(I);subplot(1,2,2);subimage(J);预览:四、实验报告要求1、简述实验目的及实验原理。2、选取两幅大小一样的图像,首先转换成灰度图像,然后对其中一幅进行旋转(旋转角度自定),再对两幅图像进行代数运算,并附上程序及处理前后的图像。3、对实验结果进行总结。
实验二数字图像变换一、实验目的1、了解图像变换的意义和手段2、熟悉傅立叶变换的基本性质3、熟练掌握FFT变换方法及应用4、通过实验了解二维频谱的分布特点5、掌握图片的压缩技术原理二、实验原理1、应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。离散傅里叶变换具有许多重要的性质,这些性质为实际运算提供了极大的方便。例如,根据变换核的可分离性,二维离散傅里叶变换可以通过两次一维离散傅里叶变换来实现;根据周期性,只需要一个周期就可以将整个变换完全确定;根据共轭对称性,只需要半个周期的变换就可以获得整个频谱。图像傅里叶变换是将图像从图形的空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理,使运算变得简单。2、傅立叶(Fourier)变换的定义对于二维信号,二维Fourier变换定义为:F(u,v)uy)dxdy(uxj2f(x,y)ef(x,y)uy)dudv(uxF(u,v)ej2二维离散傅立叶变换为:预览:11Nn)1N(mj2ik00kf(i,k)eNiNNF(m,n)逆变换:n)NN(mik1j21NF(m,n)eN00nNm1f(i,k)图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。3、离散傅里叶变换计算机处理傅立叶变换用离散傅立叶变换,输入/输出数据均为离散,便于计算机处理。在使用离散傅立叶变换时,可以使用其快速算法FFT。MATLAB提供的相关函数:FFT、FFT2、FFTn。对二值图像进行傅里叶变换以后观察其频谱,我们会发现直流成分主要集中在右上角,分辨率比较低。所以必须通过fftshift函数提供补零和直流成分显示区域调整后得到调整,再进行观察。4、离散余弦变换使用傅立叶变换时存在一个问题,它的参数均为复数,数据描述上相当于实数的两倍,也就是说数据的计算量比较大,而离散余弦变换较好的解决了这个问题。离散余弦变换,根据实的偶函数的离散傅里叶变换只包含余弦项(实部)的特性,可将实图像构造成实的偶函数,再求它的离散傅里叶变换,从而构成所谓的离散余弦变换(DCT)。它是实的正交变换,变换核可分离且具有对称性,可以通过傅里叶变换的实部求得,所以具有快速算法。DCT变换具有良好的信息压缩能力,因而在图像的压缩编码等领域具有广泛的应用。离散余弦的MATLAB实现一种是基于图像离散余弦变换的算法,这是通过MATLAB工具箱提供的dct2函数和idct2函数实现的;另一种是DCT变换矩阵方法。变换矩阵方法非常适合做8*8或16*16的图像块的DCT变换,工具箱提供了dctmtx函数来计算变换矩阵。离散余弦变换具有很强的“能量集中”特性,而且能量主要集中在左上角处,因此在实际图像应用中,能量不集中的地方可在余弦编码中忽略。于是我们可以通过对mask矩阵进行变换来实现,即将mask矩阵左上角置1,其余全部置0。然后通过离散余弦反变换后,图像得以恢复,这种处理方法叫做图像的压缩。5、沃尔什变换由于傅里叶变换和余弦变换的变换核由正弦、余弦函数组成,运算速度受影响。在特定问题中,往往引进不同的变换方法,以求运算简单且变换核矩阵产生方便。沃尔什变换中的变换矩阵简单(只有1和-1),占用存储空间少,产生容易,有快速算法,所以在需要实时处理大量数据的图像处理问题中,应用广泛。6、图像的压缩离散余弦变换是先将整体图像分成N×N像素块,然后对N×N像素块逐一进行离散余弦变换。由于大多数图像的高频分量较小,相应于图像高频分量的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可以用更粗的量化。这样起到压缩图像的目的,使传输的数码率要远远小于实际图像的数码率,接收端通过反变换得到的恢复图像也不会有明显的改变。图像压缩主要任务是取不同的DCT系数,观察即满足不影响图像质量有能达到较大的压缩率。对图像进行分块处理时,我们会用到函数blkproc()。调用格式:B=blkproc(A,[mn],fun,parameter1,parameter2,...)B=blkproc(A,[mn],[mbordernborder],fun,...)B=blkproc(A,'indexed',...)参数说明:[mn]:图像以m*n为分块单位,对图像进行处理(如8*8)Fun:应用此函数对分别对每个m*n分块的像素进行处理parameter1,parameter2:要传给fun函数的参数mbordernborder:对每个m*n块,上下进行mborder个单位的扩充,左右进行nborder个单位的扩充,扩充的像素值为0,fun函数对整个扩充后的分块进行处理。这里:fun='P1*x*P2',fun的参数P1,P2,将T,T'传递给fun的参数,即:P1=T,P2=T'。预览:三、实验例题1、有一矩形函数f(m,n),矩形区域为1,其余为0,对该矩形作傅立叶变换。clear;N=100;f=zeros(50,50);f(15:35,23:28)=1;subplot(2,1,1)imshow(f)subplot(2,1,2)F=fft2(f);imshow(log(abs(F)))2、fftshift函数实现补零操作和改变图象显示象限N=100;f=zeros(50,50);f(15:35,23:28)=1;subplot(2,1,1)imshow(f)F=fft2(f,256,256);F2=fftshift(F);subplot(2,1,2)imshow(log(abs(F2)));3、对图像进行离散余弦变化,观察其余弦变换系数及余弦反变换后恢复图像。⑴将变换后小于10的元素忽略I=imread('cameraman.tif');%装入原始图像subplot(3,1,1);imshow(I);J=dct2(I);%对I进行二维DCTsubplot(3,1,2);imshow(log(abs(J)),[]);预览:%图像大部分能量集中在左上角处J(abs(J)<10)=0;%将DCT变换值小于10的元素设为0K=idct2(J)/255;%对逆DCT变换值归一化subplot(3,1,3);imshow(K);⑵将变换后小于255的元素忽略I=imread('cameraman.tif');%装入原始图像figuresubplot(1,3,1);imshow(I);J=dct2(I);%对I进行二维DCTsubplot(1,3,2);imshow(log(abs(J)),[]);%图像大部分能量集中在左上角处J(abs(J)<255)=0;%将DCT变换值小于255的元素设为0K=idct2(J)/255;%对逆DCT变换值归一化subplot(1,3,3);imshow(K);预览:4、选取一幅图像,取不同的压缩度,对其进行压缩处理。A=imread('aaa.tif');I=rgb2gray(A);trueImage=im2double(I);%转换图像矩阵为双精度型imshow(trueImage);title('原始图像');dctm=dctmtx(8);%计算离散余弦变换imageDCT=blkproc(trueImage,[88],'P1*x*P2',dctm,dctm.');%对图像I的每个不同8*8数据块应用矩阵式’P1*x*P2’进行处理。M10=[1111000011100000110000001000000000000000000000000000000000000000];%二值掩模,用来压缩DCT的系数newImage2=blkproc(imageDCT,[88],'P1*(x.*P2)*P3',dctm',M10,dctm);figure;imshow(newImage2);title('压缩图像M10');预览:预览:A=imread('aaa.tif');I=rgb2gray(A);trueImage=im2double(I);%转换图像矩阵为双精度型imshow(trueImage);title('原始图像');dctm=dctmtx(8);%计算离散余弦变换imageDCT=blkproc(trueImage,[88],'P1*x*P2',dctm,dctm.');%对图像I的每个不同8*8数据块应用矩阵式’P1*x*P2’进行处理。M10=[1111111111111110111111001111100011110000111000001100000010000000];%二值掩模,用来压缩DCT的系数newImage2=blkproc(imageDCT,[88],'P1*(x.*P2)*P3',dctm',M10,dctm);figure;imshow(newImage2);title('压缩图像M10');四、实验报告要求1、简述实验目的及实验原理。2、调试参考程序,掌握工具函数的使用方法。3、验证图像的傅立叶变换的旋转性质。(方法:对正方形图像进行旋转操作,观察原图的傅立叶频谱与旋转后的傅立叶频谱的对应关系。)4、选取图像,利用余弦变换,观察变换后图像的变换情况。(图像分块压缩)5、对实验结果进行总结。
实验三数字图像增强一、实验目的1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。2、学会对图像直方图的分析。3、掌握直接灰度变换的图像增强方法。4、掌握图片的滤波。二、实验原理术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作其表达式为g(x,y)=T[f(x,y)]其中,f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容。一般来说,图像增强的目的有两点:一是改善图像的视觉效果,提高清晰度,二是增强感兴趣部分,提高可懂度。图像增强包括直接变换增强、滤波增强、变换增强。直接变换增强也称为灰度级调整,是将图像的灰度级映射到一个新的范围,在新的范围内能够容纳图像多数的灰度级,使图像的对比更加鲜明。滤波增强就是消除噪声的图像增强方法,有均值滤波、中值滤波、自适应滤波。变换增强称为频域增强,包括低通、高通滤波。①空间域增强空间域增强是指在空间域中,通过线性或非线性变换来增强构成图像的像素。增强的方法主要分为点处理和模板处理。点处理就是作用在单个像素,包括图像灰度变换、直方图处理和伪彩色处理等。模板处理是指作用于像素领域的处理方法,包括图像平滑和图像锐化等技术。②频率域增强频率域增强是增强技术的重要组成部分,它通过傅立叶变换,可以把空间域混叠的成分在频率域中分离出来,从而提取或滤去相应的图像成分,达到图像增强的目的。这一过程中的核心基础为傅立叶变换。频率域图像增强技术主要有:频率域平滑技术(低通滤波)、频率域锐化技术(高通滤波)和同态滤波等。1、对比度调整①颜色图变亮或变暗函数:brighten(beta)用于调整灰度值或颜色图,0<beta<1增量,反之变暗调用格式:MAP=brighten(beta)返回当前使用的颜色图的更亮或更暗变换后的颜色图MAP,但不改变现有的显示。NEWMAP=brighten(MAP,beta)返回指定颜色图的更亮或更暗变换后的颜色图,但不改变显示。brighten(FIG,beta)增强图FIG的所有物体。②对比度调整函数:imadjust()用于调整灰度值或颜色图,其基本调用格式如下:J=imadjust(I,[lowhigh],[bottomtop],gamma)将灰度图像I转换为图像J,使值从low到high与从bottom到top相匹配。值大于high或小于low的被减去。即小于low与bottom相匹配,大于high的与top相匹配。如果矩阵为空矩阵表示缺省值为[0,1]。gamma用来指定描述I和J值关系曲线的形状,gamma<1,越亮输出值越加强;gamma>1,越亮输出值越减弱;缺省gamma=1,表示线性变换。map1=imadjust(map,[lowhigh],[bottom,top],gamma)对索引图像的颜色图进行变换,如果[lowhigh],[bottomtop]均为2×3矩阵,则gamma为1×3向量,函数分别调整红、绿、蓝成分,调整后的颜色图的大小与原来的一样。RGB1=imadjust(GRB,[lowhigh],[bottom,top],gamma)对彩色图像进行变换,与索引图像中颜色图调整方法一样。特殊情况:如果top<bottom,则图像颜色或灰度值将倒置。2、直方图调整直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。直方图调整方法常用的有直方图均衡化和直方图规定化。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。由于均衡化的直方图技术只能产生一种近似均匀的直方图,而不适于需要交互作用的图像增强的应用。实际上为了能增强图像中某些灰度级的范围,有时希望能够规定交互作用的特定的直方图,直方图规定化可看作是直方图均衡化方法的改进。所以说,直方图规定化可以突出感兴趣灰度范围,是对均衡化的一种有效扩展,直方图均衡化是规定化的一种特例,即规定直方图是均匀分布。①直方图调整函数:histeq()直方图均衡通过转换灰度图像亮度值或索引图像的颜色图值来增强图像对比度,输出图像的直方图近似与给定的直方图相匹配。调用格式如下:J=histeq(I,N)将灰度图像I转换成具有N个离散灰度级的灰度图像J,N缺省值为64。NEWMAP=histeq(X,MAP,hgram)变换索引图像X的颜色图,使索引图像的灰度级成分与hgram相匹配,返回变换后的颜色图NEWMAP,length(hgram)必须与size(MAP,1)一样。②直方图的显示函数:imhist()其调用格式如下:J=imhist(I,n)显示图像I的直方图,n为灰度级数目,灰图像的缺省值为256,黑白图像缺省值为2。J=imhist(I,map)J返回调色板为map的图像I的直方图。[counts,X]=imhist(I,„)返回图像I的每个灰度上的像素点数目。3、图像的滤波图像的滤波都是针对灰度级图像而言的。其中锐化和平滑是图像增强的重要手段,采用前者可以突出图像的细节,采用后者可以滤除图像中的噪声,从而达到图像清晰的目的。如果用用信号处理的理论来解释对图像进行平滑的话,这种做法实现的是一种简单的低通滤波器(lowpassfilter)。在灰度连续变化的图象中,如果出现了与相邻像素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。锐化和平滑恰恰相反,它是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波(highpassfilter)。锐化处理在增强图象边缘的同时增加了图象的噪声。常用的锐化模板是拉普拉斯(Laplacian)模板。拉普拉斯模板的含义是先将自身与周围的8个像素相减,表示自身与周围像素的差别,再将这个差别加上自身作为新像素的灰度。可见,如果一片暗区出现了一个亮点,那么锐化处理的结果是这个亮点变得更亮,增加了图象的噪声。滤波工具函数:fspecial(type)格式:H=fspecial(type)其中type的取值:‘average’均值低通滤波‘gaussian’高斯低通滤波‘prewitt’边缘算子增强滤波‘sobel’边缘算子增强滤波除了以上列出的算子,更多算子可以在MATLAB中查询。三、实验例题1、灰度图像亮度调整cleara=imread('abc.jpg');预览:I=rgb2gray(a);subplot(1,2,1);imshow(I)J=imadjust(I,[0.10.8],[],0.5);subplot(1,2,2);imshow(J)2、灰度图像倒置cleara=imread('abc.jpg');I=rgb2gray(a);subplot(1,2,1);imshow(I)J=imadjust(I,[01],[10],1.3);subplot(1,2,2);imshow(J)3、直方图均衡化cleara=imread('city.jpg');I=rgb2gray(a);subplot(1,2,1);imshow(a)J=histeq(I);subplot(1,2,2);imshow(J)预览:4、直方图规定化I=imread('rice.png');subplot(2,4,1);imshow(I);subplot(2,4,5);imhist(I,256);J=histeq(I,32);subplot(2,4,2);imshow(J);subplot(2,4,6);imhist(J,256);[counts,x]=imhist(J);K=imread('cameraman.tif');subplot(2,4,3);imshow(K);subplot(2,4,7);imhist(K);L=histeq(K,counts);subplot(2,4,4);imshow(L);subplot(2,4,8);imhist(L);预览:5、几种滤波的比较I=double(imread('cameraman.tif'));subplot(2,2,1);imshow(I,[])H=fspecial('average',5);F1=double(filter2(H,I));subplot(2,2,2);imshow(F1,[])H=fspecial(‘gaussian’,7,3);F2=double(filter2(H,I));subplot(2,2,3);imshow(F2,[])H=fspecial('prewitt');F3=uint8(I+filter2(H,I));subplot(2,2,4);imshow(F3,[])通过实验可知,均值和高斯滤波是使图像模糊,而边缘算子可以增强图像边缘。6、采用“原图-低通图像”的方法锐化图像I=double(imread('cameraman.tif'));subplot(1,3,1)imshow(I,[])H=fspecial('average',5);F1=double(filter2(H,I));预览:subplot(1,3,2)imshow(F1,[])F2=2*I-F1;subplot(1,3,3)imshow(uint8(F2),[])四、实验报告要求1、简述实验目的。2、简述直方图修正技术基本原理。3、分析图像处理前后图像的变化。4、结合例4和例5自选一副图像分析应该用哪种滤波方法好。5、附程序清单和处理前后图像。
实验四数字图像滤波及边缘检测一、实验目的1、了解图像复原的基本方法。2、了解图像边缘检测。3、利用MATLAB提供的函数实现对图像处理。二、实验原理1、图像的恢复图像恢复和图像增强一样,都是为了改善图像的视觉效果,以便后续处理。只是图像增强方法更偏重于主观判断,而图像恢复则是根据图像畸变或退化原因,进行模型处理。图像恢复技术就是把退化模型化,并且采用与退化相反的过程进行处理,以便恢复出原图像。图像恢复的方法通常都会涉及建立一个最佳准则,作为恢复图像质量的评价标准。2、图像的分割图像分割就是按照一定的原则,将一幅图像分为若干个互不相交的小区域,就是产生图像基元的过程。是对图像中每个像素加标签的一个过程,这一过程使得具有相同标签的像素具有某种共同视觉特性。图像分割是图像检索、识别和图像理解的基本前提。3、中值滤波中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。中值滤波的优点是运算简单且速度较快,在某些条件下,中值滤波方法可以去除噪声,保护图像边缘,使图像较好地复原。它非常适用于一些线性滤波器无法胜任的数字图像处理的应用场合。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点邻域中各点值的中值替代。例如:有一个序列为(2,3,4,5,6),这个序列的中值为4。中值滤波器用于图像处理中是这样进行的:设置一个滤波窗口,将其移遍图像(序列)上的点,且用窗口内各原始值的中值代替窗口中心点的值。可以直接应用Matlab软件中图像处理工具箱的函数。二维中值滤波器的函数格式如下:B=Medfilt2(A,[mn])B=Medfilt2(A)。(缺省窗口大小为[33])其中[mn]表示指定滤波器窗口大小。中值滤波是一种典型的低通滤波器,它的目的是保护图像的边缘并同时去除噪声。下面来举例进行说明:预览:上图中左边是原图,数字代表该处的灰度。可以看出中间的6和周围的灰度相差很大,是一个噪声点。经过3*1窗口(即水平3个像素取中间值)的中值滤波,得到右边那幅图,可以看出,噪声点被去除了。拿中值滤波和上面介绍的两种平滑模板做个比较,看看中值滤波有什么特点。⑴中值滤波的特点是保护图象边缘的同时去除噪声。我们以一维模板为例,只考虑水平方向,大小为3*1(宽*高)。Box模板为;Gauss模板为结果如下所示:⑵中值滤波对高斯噪声无效,高斯模板对高斯噪声非常有效。预览:⑶中值滤波对脉冲噪声非常有效。总结:中值滤波容易去除孤立点,线的噪声同时保持图象的边缘,它能很好的去除二值噪声,但对高斯噪声无能为力。要注意的是,当窗口内噪声点的个数大于窗口宽度的一半时,中值滤波的效果不好。这是很显然的。往图像中添加噪声可以直接调用函数imnoise(),其格式如下:J=imnoise(I,type,„„)其中的type表示添加的噪声类型,这里举几个例子说明,更多的噪声类型可以在MATLAB中进行查找。‘gaussian’Gauss白噪声参数设置:M、V:在图像中加入均值为M、方差为V的高斯白噪声。(缺省M=0,V=0.01)J=imnoise(I,’gaussian’,M,V)‘salt&pepper’椒盐噪声参数设置:D:在图像I中加入强度为D的“椒盐”黑白像素点.(缺省为0.05)J=imnoise(I,’salt&pepper’,D)‘speckle’乘法噪声参数设置:J=imnoise(I,’speckle’,V),使用公式J=I+n*I,向图像I中加入乘法噪声,其中n是均值为0,方差为V均匀分布的随机噪声.(V的缺省值为0.04)4、图像的分割在对图像的研究和应用中,人们往往仅对各幅图像中的某些部分感兴趣,需要将这些有关区域分离提取出来,在此基础上对相关目标作进一步的处理。分割算法就是借助灰度图像中像素灰度值的两个性质:不连续性和相似性。区域内部的像素一般具有灰度相似性,而在区域之间的边界上一般具有灰度不连续性。这些区域互不交叠,每一个区域内部的某种特征变化平缓相对一致,而区域边界处特性变化非常剧烈,区域内的所有像素是一个连通集,在一个连通集中任意两像素之间都存着一条完全有这个集合元素构成的连通路径。连通路径是一条可在相邻像素间移动的路径。基于亮度的不连续性分割图像,如边缘检测;基于亮度的相似性依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。根据分割过程中处理策略不同,有两种算法:并行算法,所有的判断和决定都可以独立和同时地做出;串行算法,前期处理的结果可被其后的处理过程所利用。两种算法相比较而言串行算法所用时间要长与并行算法,但其抗噪声能力则强于并行算法。现在尚无一种适合于所有图像的通用分割算法,现在提出的分割算法大都是针对具体问题的。数学形态学中二值图像的形态变换是一种针对集合的处理过程。其形态算子的实质是表达物体或形状的集合与结构元素间的相互作用,结构元素的形状就决定了这种运算所提取的信号的形状信息。形态学图像处理是在图像中移动一个结构元素,然后将结构元素与下面的二值图像进行交、并等集合运算。基本的形态运算是腐蚀和膨胀。腐蚀表示一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。对于二值图像来说就是把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔)。膨胀表示是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。对于二值图像而言就是把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素)。开运算是指先腐蚀后膨胀的过程开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。开运算通常是在需要去除小颗粒噪声,以及断开目标物之间粘连时使用。其主要作用与腐蚀相似,与腐蚀操作相比,具有可以基本保持目标原有大小不变的优点。闭运算是指先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。虽然腐蚀处理可以将粘连的目标物进行分离,膨胀处理可以将断开的目标物进行接续,但同时都存在一个问题,就是经过腐蚀处理后,目标物的面积小于原有面积,而经过膨胀处理之后,目标物的面积大于原有面积。开、闭运算就是为了解决这个问题而被提出的。①提取二值图像的轮廓BW2=bwmorph(BW1,operation)其中operation用于指定进行的形态学处理类型,取值有以下这些选择:'bridge';'clean';'close';'fill';‘majority’;‘remove’;‘shrink’;‘skel’等。各自的含义可以在MATLAB中进行查询。二值形态膨胀与腐蚀可转化为集合的逻辑运算,算法简单,适于并行处理,且易于硬件实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省庆云县重点中学2026届初三下学期5月模块考试数学试题含解析
- 张家港市2026届初三寒假考试(一)数学试题含解析
- 互联网服务企业诚信运营承诺书6篇
- 2026年第二职业发展规划与副业选择
- 2026年小学生传统姓氏文化教育的实践研究
- 2026年智能科学与技术专业人工智能入门学习路线
- 历史伟大的历史转折教学设计-2025-2026学年统编版八年级历史下册
- 婚前财产协议书后没有结婚
- 实验动物中心 合作协议书
- 威海考研辅导中心协议书班
- 民航客舱服务规范与操作指南(标准版)
- 2024-2025学年度渤海船舶职业学院单招数学通关题库附完整答案详解(各地真题)
- 2026年甘肃天水清水县选聘大学生村文书64人考试备考试题及答案解析
- 2026消防安全标志设置要求标准全面解读
- 2026年山东东营市高三一模高考生物试卷试题(含答案)
- 2026辽宁沈阳汽车集团有限公司所属企业华亿安(沈阳)置业有限公司下属子公司招聘5人笔试备考题库及答案解析
- 2026年福建龙岩市高三一模高考语文试卷试题(含答案详解)
- 2025年10月浙江德清农村商业银行招考专业人才笔试历年备考题库附带答案详解试卷2套
- 2026年上海市高职单招职业适应性测试考试题库附答案解析
- 招商公司运营薪酬制度
- 2025届贵州省高三学业水平选择性考试适应性测试生物试题(解析版)
评论
0/150
提交评论