MATLAB图象处理函数

上传人:小*** 文档编号:175323117 上传时间:2022-12-19 格式:DOC 页数:12 大小:147.50KB
收藏 版权申诉 举报 下载
MATLAB图象处理函数_第1页
第1页 / 共12页
MATLAB图象处理函数_第2页
第2页 / 共12页
MATLAB图象处理函数_第3页
第3页 / 共12页
资源描述:

《MATLAB图象处理函数》由会员分享,可在线阅读,更多相关《MATLAB图象处理函数(12页珍藏版)》请在装配图网上搜索。

1、MATLAB图象处理函数1.图象文件处理I=imread(filename)读入图象文件到内部矩阵图象变量(以后简称图象)imwrite(I,filename)将指定图象写到磁盘的图象文件(以后简称图象文件)上imfinfo(filename)显示图象文件的信息2.图象显示2.1基本显示imshowfilename直接在当前窗口显示图象文件imshow(I)在当前窗口显示指定图象rgb=getimage将当前窗口显示的图象读入到矩阵图象变量2.2多幅图象的显示figure;imshow(I,map)在新的图象窗口上显示指定图象(多幅图象显示在不同的图象窗口上)subplot(m,n,p);im

2、show(I,map)在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)会因不同图象的map不同而用完系统颜色导致显示出错(尤其是8bit显示系统上)subplot(m,n,p);subimage(I,map)在图象窗口的指定位置上显示指定图象(多幅图象显示在同一个图象窗口上)subimage先将图象转化为RGB图象然后再显示,因而不同图象的map不同而用完系统颜色导致显示出错2.3 图象显示的放大和缩小(1) 用图象窗口的工具按钮实现略(2) 用命令窗口的函数实现zoomon允许进行放大和缩小zoomin对图象进行放大zoomout对图象进行缩小zoomoff禁止进行放大和

3、缩小3. 图象的运算Z=imabsdiff(X,Y)求两图象差的绝对值Z=imadd(X,Y)图象相加IM2=imcomplement(IM)求图象的补Z=imdivide(X,Y)两图象对应象素相除或图象除以常数Z=imlincomb(K1,A1,K2,A2,.,Kn,An)计算一系列图象的线性组合图象Z=immultiply(X,Y)两图象对应象素相乘或图象乘以常数Z=imsubtract(X,Y)图象相减4. 图象处理在MATLAB中,图象是以矩阵的形式存放的,二值图象、灰度图象和索引(Indexed)图象用二维矩阵存放,彩色(RGB)图象用三维矩阵存放。前一类图象可以通过双下标访问图象

4、的象素,如I(i,j),彩色(RGB)图象可以通过三下标访问图象的象素,如I(i,j,k),k=l,2,3分别表示R、G和B三个彩色分量。4.1 图象直方图imhist(I)绘制指定图象变量的直方图到当前窗口Il=histeq(I)求指定图象的直方图均衡化图象4.2 图象的灰度变换J=imadjust(I,low_inhigh_in,low_outhigh_out)调整图象的灰度范围level=graythresh(I)求图象的全局门限以便对图象进行二值化处理BW=im2bw(I,level)BW=im2bw(X,map,level),BW=im2bw(RGB,level)按指定的门限将指定图

5、象I转化为二值图象。4.3 图象的格式转换I2=im2double(Il)将图象转换为双精度格式I2=im2uint8(Il)将图象转换为8比特字节格式I2=im2uint16(I1)将图象转换为16比特字格式4.4 多帧图象的处理Im=cat(4,I1,I2,I3,.)将多幅图象11,12,13,在第4维上合成一个多帧图象Im(cat为矩阵连接函数,cat(2,A,B)等价于A,B,cat(1,A,B)等价于A;B)Frm3=Im(:,:,:,3)取多帧图象Im的第3幅图象(可用于赋值、显示)Imshow(Im(:,:,:,3)显示多帧图象Im的第3幅图象montage(Im)同时显示多帧图

6、象Im的各幅图象(按列方式组成一个近似正方型)mov=immovie(Im)将多帧图象Im转化为电影图象movmovie(mov)显示电影图象mov=例=Thefollowingexampleloadsmri.tifanddisplaysthethirdframe.%Initializeanarraytoholdthe27framesofmri.tifmri=uint8(zeros(128,128,1,27);forframe=1:27%Readeachframeintotheappropriateframeinmemorymri(:,:,:,frame),map=imread(mri.tif

7、,frame);endimshow(mri(:,:,:,3),map);4.5图象的几何变换4.5.1图象尺寸变换B=imresize(A,m,method)将图象A放大(m1.0)或缩小(0vmv1.0)m倍B=imresize(A,mrowsncols,method)将图象A变换为mrows行ncols列的图象B=imresize(.,method,n)用nXn模板完成上述几何变换插补中的滤波B=imresize(.,method,h)用指定的模板h完成上述几何变换插补中的滤波method:一个可选的参数,决定几何变换插补的方法,可取值如下:nearest(default)usesnear

8、estneighborinterpolation.bilinearusesbilinearinterpolation.bicubicusesbicubicinterpolation.4.5.2图象旋转变换B=imrotate(A,angle,method)将图象A按指定的插补方法旋转指定的角度,产生一个足够容得下原始图象的新图象。B=imrotate(A,angle,method,crop)将图象A按指定的插补方法旋转指定的角度,产生一个与原始图象一样大小的新图象。4.5.3图象修剪处理I=imcrop交互地选择当前图象窗口的一个区域并赋值给一个新的图象5.1.4 图象的校正(Registra

9、tion)5.3 读入原图象和待校正图象调用cpselect()函数,选择控制点对,保存控制点对调用cpcorr()函数,微调控制点对冋选调用cp2tform()函数,得到变换参数(5)调用imtransform()函数,用变换参数对待校正图象进行校正变换5.1.5 图象的邻域处理和块处理 模板处理(滑动邻域操作)对每一个象素按指定的领域进行指定的操作处理。输出图象和输入图象的大小一样。B=nlfilter(A,mn,fun)对图象A按mXn模板调用指定函数进行模板处理B=nlfilter(A,mn,fun,P1,P2,.)对图象A按mXn模板调用指定函数以及附加参数P1,P2,.进行模板处理

10、例如:B=nlfilter(a,33,min(max(x)*Pl+P2,0.5,l)表示对图象A的每一个象素用其八邻域每列最大值的最小值乘以0.5再加上1代替。B=nlfilter(A,indexed,.)对索引图象A进行上述模板处理fun可以是MATLAB表达式或内建函数字符串,如mean2、std2、corr2和x*2,也可以是函数句柄(函数名)或嵌入函数对象(fun=inline(max(x(:);),所指定的函数必须接受mXn矩阵且返回一个标量。 独立分块处理将图象划分为指定大小的分块,然后对每一个块按指定的操作处理,输出图象的每一块内象素个数和取值决定于所指定的操作。B=blkpro

11、c(A,mn,fun)对图象A按mXn分块调用指定函数进行独立分块处理B=blkproc(A,mn,fun,P1,P2,.)对图象A按mXn分块调用指定函数以及附加参数Pl,P2,.进行独立分块处理例如:B=blkproc(A,33,P1*x*P2,Pl,P2)表示对图象A的每一个3X3分块分别用左乘矩阵P1再右乘矩阵P2后的矩阵代替。B=blkproc(A,mn,mbordernborder,fun,.)对图象A按mXn大小和mborder行nborder列重叠分块调用指定函数进行独立分块处理B=blkproc(A,indexed,.)对索引图象A进行上述独立分块处理fun可以是MATLAB

12、内建函数名字符串,如mean2,std2和corr2,也可以是函数句柄(函数名)或嵌入函数对象(fun=inline(max(x(:);),所指定的函数必须接受mXn矩阵,可以返回一个矩阵(可以与输入矩阵大小一样,也可以不一样)、一个向量或一个标量。 按列向量进行模板和独立分块处理调用函数colfilt,先将图象的分块变换为一个临时的列块矩阵数据,然后将该临时矩阵一次性传给指定函数,该函数可以按列对临时矩阵进行处理然后返回同样大小的矩阵,colfilt函数会将输出矩阵转化回原图象的分块作为输出。B=colfilt(A,mn,sliding,f)按列向量进行模板处理B=colfilt(A,mn,

13、distinct,f)按列向量进行独立分块处理5.1.6 图象的线性滤波和滤波器设计6. 图象的线性滤波B=imfilter(A,H)对图象A按H指定的滤波核进行相关滤波处理B=imfilter(A,H,optionl,option2,.)对图象A按H指定的滤波核进行指定滤波处理optionl,option2,等可以是以下选项:X滤波过程中,图象边界以外的象素的取值为数值X默认值是0symmetric滤波过程中,图象边界以外的象素的取值为以边界对称的象素的值。replicate滤波过程中,图象边界以外的象素的取值为最接近的象素的值。circular滤波过程中,图象边界以外的象素的取值为图象周期

14、重复后象素的值。same滤波后的图象与原图象的大小一样默认选项。full滤波后的图象比原图象大完全滤波,比原图象大size(H)/2。corr滤波时将滤波核H按相关滤波核对待(同filter2函数的处理一样)。conv滤波时将滤波核H按卷积滤波核对待。h=fspecial(type)生成预定的(卷积)滤波核。type的可能取值如下:gaussian高斯低通滤波器sobelSobel水平边缘增强滤波器prewittPrewitt水平边缘增强滤波器laplacian近似二维拉普拉斯滤波器log高斯拉普拉斯滤波器average平均滤波器unsharp非锐化(unsharp)对比度增强滤波器h=fsp

15、ecial(type,parameters)生成指定参数的预定(卷积)滤波核。7. 图象线性滤波器设计(略)5.1.7 图象变换4.9.lDFT1. =fft2(X)用FFT算法求图象X的DFT到图象Y2. =fft2(X,m,n)用FFT算法求图象X截断或补零到m行n列后的DFT到图象Y3. =fft2(X)等价于fft(fft(X).).二维DFT可以用两次一维DFT完成4. =fftshift(X)同Y=fft2(X),但零频率成分被移动到图象的中心5. =fftshift(X,dim)同Y=fft2(X,m,n),但零频率成分被移动到图象的中心X=ifft2(Y)用IFFT算法求图象Y

16、的IDFT到图象XX=ifft2(Y,m,n)用IFFT算法求图象Y截断或补零到m行n列后的IDFT到图象XX=f(Y)等价于ifft(ifft(Y).).二维IDFT可以用两次一维IDFT完成X=ifftshift(Y)同Y=ifft2(Y),但零频率成分被移动到图象的中心X=ifftshift(Ydim)同Y=ifft2(Ym,n),但零频率成分被移动到图象的中心(1) DCTDCT的大部分有效数据集中于少数的一些变换系数上,故DCT常用在图象压缩上。B=dct2(A)求图象A的二维离散余弦变换B=dct2(A,m,n)求图象A截断或补零到m行n列后的二维离散余弦变换B=dct2(A,mn

17、)求图象A截断或补零到m行n列后的二维离散余弦变换B=idct2(A)求图象(矩阵)A的二维离散余弦反变换B=idct2(A,m,n)求图象(矩阵)A截断或补零到m行n列后的二维离散余弦反变换B=idct2(A,mn)求图象(矩阵)A截断或补零到m行n列后的二维离散余弦反变换dct2()和idct2()是基于fft的算法,对于大尺寸的A具有较好的计算效率。当图象(矩阵)A的尺寸较小时,采用矩阵乘法计算具有更好的计算效率,方法是:用D=dctmtx(n)得到nXn离散余弦变换矩阵D,则B=D*A*D即为nXn矩阵A的二维离散余弦变换,而A=D*B*D则为矩阵B的二维离散余弦反变换。当需要对许多小

18、尺寸图象进行二维离散余弦变换时,由于离散余弦变换矩阵D只需求一次,因而其计算效率要比dct2高。在JPEG压缩算法中,就是把图象分解为8X8或16X16的小块进行离散余弦变换。(2) 投影变换投影变换可以用于检测图象中的直线方向,反投影变换可以用于从多个一维投影图象中恢复二维图象(CT)。R=radon(I,theta)计算图象I按theta角(单位:角度)旋转后沿y轴(向x轴)的投影(积分)向量R(投影变换)R,xp=radon(.)计算图象I按theta角旋转后沿y轴(向x轴)的投影(积分)向量R,同时返回投影(积分)向量R的下标向量于xp当theta是一个向量时,返回R将是一个矩阵,其每

19、一列对应于theta的一个角度分量。I=iradon(R,theta)计算按theta角(单位:角度)旋转后沿y轴(向x轴)的投影(积分)向量R对应的原图象I(反投影变换)I=iradon(R,theta,interp,filter,d,n)计算按theta角(单位:角度)旋转后沿y轴(向x轴)的投影(积分)向量R对应的原图象I(反投影变换),其中后四个参数用于指定反投影变换中使用的处理方法,取值如下:I,h=iradon(.)功能同上面的两个函数,同时在h中返回所使用的滤波器向量interp指定反投影变换中使用的插补类型,下面以精度和计算复杂性的升序列出可取值:nearest最近邻插补lin

20、ear线性插补(默认)splinespline插补filter指定反投影变换中使用的频域滤波器类型,可取值为:Ram-Lak修剪的(cropped)Ram-Lak或斜线频域滤波器(默认)Shepp-LoganShepp-Logan滤波器,Ram-Lak滤波器乘以正弦函数Cosine余弦滤波器,Ram-Lak滤波器乘以余弦函数Hamming汉明(Hamming)滤波器,Ram-Lak滤波器乘以汉明窗HannHann滤波器,Ram-Lak滤波器乘以Hann窗d是一个取值在0和1之间的标量,用于调整滤波器的频率范围,默认值为1,超过d的频率成分被置为零。n是一个用于指定反投影变换输出图象的行列数,没

21、有n参数时,输出图象的行列数为n=2*floor(size(R,1)/(2*sqrt(2)5.图象形态处理(MorphologicalOperations)基于形状的图象处理。用MATLAB的形态处理函数可以完成诸如对比度增强、噪声去除、细化、填充和图象分割等。5.1一些基本概念5.1.1扩张(dilation):输出图象的象素值是该象素某个邻域的最大值,边界外象素置为最小值。5.1.2腐蚀(erosion):输出图象的象素值是该象素某个邻域的最小值,边界外象素置为最大值。5.1.3形状数据(structuringelement):一种用于形态处理的数据结构,它定义了处理过程中涉及到的邻域的形

22、状。该数据结构必须用函数strel()产生。(1) strel()的用法为:SE=strel(shape,parameters),其中shape的可取值为字符串arbitrary、pair、diamond、periodicline、disk、rectangle、line、square、octagon、ball,用以得到不同形状的形状数据。详见strel()的具体说明。(2) 用于形状数据的方法有如下一些:H=getheight(SE)求形状数据的高度offsets,heights=getneighbors(SE)求形状数据的位置和高度nhood=getnhood(SE)求形状数据的邻域矩阵SE

23、Q=getsequence(SE)求形状数据的分解序列数组(形状数据数组),SEQ等价于SE,但SEQ的元素是不能再分解的形状数据。TF=isflat(SE)判断指定形状数据(数组)是否为平面类型SE2=reflect(SE)求指定形状数据的反转形状数据(旋转180度)SE2=translate(SE,V)求指定形状数据在N维空间上的转移形状数据,V是一个N维向量,其每一个分量指定相应维上的转移位移。如:由se=translate(strel(1),2525)得到的形状数据作用于一个图象上J=imdilate(I,se)后,将该图象向下和右平移了25点。(3) 形状数据的分解用一个形状数据对图

24、象的形态处理可以等价于若干个较小的形状数据依次对图象进行形态处理,因此一个形状数据可以分解为若干个较小的形状数据,可以用getsequence来得到一个形状数据的分解形状数据。 邻域矩阵:仅由1和0构成的二维矩阵,其中为1的元素指定了与矩阵中心元素对应位置的邻域分布。邻域矩阵用在strel(arbitrary,nhood)中创建一个具有任意邻域形状的形状数据。5.2图象的扩张IM2=imdilate(IM,SE)用形状数据SE对图象IM进行扩张处理IM2=imdilate(IM,NHOOD)用指定邻域矩阵NHOOD决定的形状数据对图象IM进行扩张处理IM2=imdilate(.,PACKOPT

25、)用上述两种方式对一个指定形式的图象进行的扩张处理,其中PACKOPT可以是ispacked或notpacked,用于指定图象的类型,notpacked是默认值。如果PACKOPT是ispacked,表示图象是一个由impack产生的紧凑二进制图象,即图象是二维uint32矩阵,此时PADOPT必须是same且形状数据必须是平面(flat)的;如果PACKOPT是notpacked,表示图象是一个一般图象矩阵。IM2=imdilate(.,PADOPT)用上述三种方式对一个指定形式的图象进行的扩张处理,其中PADOPT可以是same或full,用于指定输出图象的大小,same是默认值。如果PA

26、DOPT是same,则输出图象与输入图象的大小一样;如果PADOPT是full,则输出图象是进行完全扩张处理后的实际大小。Imdilate()函数将在给定的形状数据可以分解时,自动采用形状数据的分解来进行图象的扩张处理。(2) 图象的腐蚀IM2=imerode(IM,SE)用形状数据SE对图象IM进行腐蚀处理IM2=imerode(IM,NHOOD)用指定邻域矩阵NHOOD决定的形状数据对图象IM进行腐蚀处理IM2=imerode(.,PACKOPT,M)用上述两种方式对一个指定形式的图象进行的腐蚀处理,其中PACKOPT可以是ispacked或notpacked,用于指定图象的类型,notp

27、acked是默认值。如果PACKOPT是ispacked,表示图象是一个由impack产生的紧凑二进制图象,即图象是二维uint32矩阵,此时PADOPT必须是same且形状数据必须是平面(flat)的,此外还要由M参数指定原图象的行数;如果PACKOPT是notpacked,表示图象是一个一般图象矩阵。IM2=imerode(.,PADOPT)用上述三种方式对一个指定形式的图象进行的腐蚀处理,其中PADOPT可以是same或full,用于指定输出图象的大小,same是默认值。如果PADOPT是same,则输出图象与输入图象的大小一样;如果PADOPT是full,则输出图象是进行完全腐蚀处理后

28、的实际大小。imerode()函数将在给定的形状数据可以分解时,自动采用形状数据的分解来进行图象的腐蚀处理。(3) 基于图象扩张和腐蚀的图象处理5.4.1基于图象扩张和腐蚀的图象处理函数BW2=bwhitmiss(BW1,SE1,SE2)等价于imerode(BW1,SE1)&imerode(BW1,SE2)IM2=imclose(IM,SE)用同一个形状数据先对图象进行扩张处理,再进行腐蚀处理。IM2=imopen(IM,SE)用同一个形状数据先对图象进行腐蚀处理,再进行扩张处理。IM2=imbothat(IM,SE)等价于用imclose()处理的图象减去原图象。突出图象中符合指定形状数据

29、的边界部分。IM2=imtophat(IM,SE)等价于用原图象减去经imopen()处理的图象。突出图象中符合指定形状数据的高亮度部分。联合使用imbothat()和imtophat(),可以增强图象的对比度。如:J=imsubtract(imadd(I,imtophat(I,se),imbothat(I,se);即可增强图象I的对比度。5.4.2二值图象的形态处理BW2=bwmorph(BW1,operation)对二值图象BW1按operation指定的方式进行形态处理BW2=bwmorph(BW1,operation,n)对二值图象BW1按operation指定的方式进行形态处理,共处

30、理n次,当n为Inf时,处理到图象不在改变为止。Operation是一个字符串,其取值和含义如下:bothat等价于imbothat()处理。bridge_连接断开的象素,如图象:100变成:100101111001001clean_去除孤立象素(例如被0包围的1)close_等价于imclose()diag_用对角填充去除8连接背景,如图象:010变成:010100110dilate_用形状数据ones(3)对图象进行扩张处理erode_用形状数据ones(3)对图象进行腐蚀处理fill_填充内部孤立象素(例如被1包围的0)hbreak_断开H型连接的象素,如图象:111变成:1110100

31、00111111majority如果某象素的3X3邻域内有五个或五个以上的象素为1,则该象素置为1,否则该象素置为0open等价于imopen()remove_去除内部象素,如果某象素的4连接邻域都是1,则该象素置为0(只保留边界象素)shrinkn为Inf时,将物体(目标)缩减为一个象素。该操作将内部不含孔的物体(目标)缩减为一个象素,而将内部含孔的物体(目标)缩减为一个环,该环位于每一个孔和外边界的中间。该操作将保留图象的欧拉数(Eulernumber.)。skeln为Inf时,将去除物体(目标)的边界点,但保留物体(目标)的连接性(物体(目标)不会断裂),减为一个象素。剩余的象素将构成图

32、象的骨架。该操作将保留图象的欧拉数(Eulernumber.)。spur去除图象中的毛刺象素。thickenn为Inf时,在物体(目标)的外边界添加象素点使物体(目标)变粗,该操作一直进行到原先不连接的物体(目标)将要变成8连接为止。该操作将保留图象的欧拉数(Eulernumber.)thinn为Inf时,将物体(目标)缩减为一条线。该操作将内部不含孔的物体(目标)缩减为一个最小的连接线条,而将内部含孔的物体(目标)缩减为一个环,该环位于每一个孔和外边界的中间。该操作将保留图象的欧拉数(Eulernumber.)。tophat等价于imtophat()处理。BW2=bwperim(BW1)求二

33、值图象的边界象素。边界象素是指其值为1且其邻域内至少有一个象素的值为0的象素。BW2=bwperim(BWl,CONN)同bwperim(BWl)。CONN指定了邻域的类型,对于二维图象,取值4和8分别表示4连接和8连接邻域;对于三维图象,取值6、18和26分别表示6连接、18连接和26连接邻域。5.5图象的形态重建一种基于图象扩张的图象处理。具有以下三个性质:(2) 处理是基于两幅图象,标记(marker)图象和屏蔽(mask)图象,而不是一幅图象和一个形状数据。(3) 处理一直进行到稳定(图象不再改变)为止。(4) 处理是基于连接性而不是形状数据。标记(marker)图象指定了形态重建处理

34、在哪些位置进行,而屏蔽(mask)图象则决定了形态重建处理到什么程度为止。函数imregionalmin、imregionalmax、imextendedmin和imextendedmax用于找出图象的局部最大和最小区域,这些函数输入一个灰度图象,输出一个二值图象,输出图象中为1的象素即为找出的局部最大和最小区域。函数imhmax和imhmin也能找出图象的局部最大和最小区域,但他们的输入和输出都是灰度图象,输出图象中满足指定门限的局部最大和最小区域的灰度被改变了,不满足指定门限的局部最大和最小区域的灰度被置为其邻域象素的灰度。5.6图象的距离变换图象的距离变换提供了一种图象中不同点之间分开程

35、度的度量。函数D=bwdist(BW)对二值图象BW进行距离变换,得到一个距离变换图象D(double类型),对应于BW中为0的点,D中该位置的象素值为BW中该点到与其最近的值为1的点间的距离。5.7图象中的物体、区域和特征参数测量(1)连接区域标注L=bwlabel(BW,n)求二维二值图象BW的连接区域标注图象(矩阵)L,n为4或8分别指定标注中使用4或8连接邻域。连接区域标注图象是一个与原图象大小一样的double类型的图象,对应于原图象中属于同一个连接区域的象素在标注图象取同一个非零数值,不同区域用不同的数值表示,背景象素用零表示。L,num=bwlabel(BW,n)功能同上,该形式

36、同时在num中返回原图象中连接区域的数量。L=bwlabeln(BW)功能同L=bwlabel(BW,n),但BW可以是二维或二维以上的二值图象。二维图象时,n取8;三维图象时,n取26;更高维图象时n取conndef(ndims(BW),maximal)。L,NUM=bwlabeln(BW)功能同bwlabeln(BW),同时在num中返回原图象中连接区域的数量。L,NUM=bwlabeln(BW,CONN)功能同上,参数CONN指定标注时使用的连接方式,二维图象时,n可以取4和8;三维图象时,n可以取6、18和26。观察标记图象的最好方法是将其转换为伪彩色图象显示,可以用RGB=label

37、2rgb(X,jet,k)命令得到一个用MATLAB标准颜色表影射的伪彩色图象,其中的k指定背景用黑色表示。还可以用find()函数找到指定标注区域所有象素的位置,如:r,c=find(bwlabel(BW)=2)分别在向量r和c中返回第二个区域各象素的行和列的坐标值。5.4 在二值图象中挑选指定的物体(目标)bwselect()函数可以按指定的方式和邻域返回二值图象中指定的物体和下标。5.5 求二值图象中物体(目标)的面积bwsarea()函数可以求二值图象中物体(目标)取值为1的象素的面积。5.6 求二值图象中的欧拉数bweuler()函数可以求二值图象的欧拉数。欧拉数定义为二值图象物体(

38、目标)的个数减去孔的个数。5.8图象的查找表操作查找表是一个列向量,它的元素代表了特定象素的某种邻域对应于某种组合时的取值,该列向量的长度是指定邻域种各种象素分布方式的组合个数。2X2邻域对应的查找表有16个元素,3X3邻域对应的查找表有512个元素。进行查找表操作前,首先用makelut()函数创建一个查找表,makelut()函数要求指定一个邻域的大小和对应于邻域的各种组合应产生的输出值的函数。创建完查找表后,便可以用它调用函数applylut()对二值图象进行查找表操作。图象分析和增强处理象素的值和象素统计(1)象素的值函数pixval()以交互的方式显示光标位置处象素的取值和坐标,还能

39、计算两点间的欧拉距离。函数impixel()即能以交互的方式又能以非交互的方式显示或返回象素的取值和位置。图象的灰度剖面图(profile)函数improfile()可以计算并绘制图象中指定一条线段或多条线段上灰度的分布曲线。(3) 图象的轮廓函数imcontour()可以显示一个图象中的灰度轮廓。(4) 象素统计函数mean2()可以计算图象的灰度平均值;函数std2()可以计算图象的灰度标准差;函数corr2()可以计算两个同样大小图象的相关系数。(5) 区域属性测量函数regionprops()可以计算图象中指定区域的面积、质心和边框。图象分析边缘检测函数edge()可以按指定方式和参数

40、求一个图象的边缘二值图象,其中的canny方法是一个比较好的方法。四叉树分解函数qtdecomp()可以对图象进行连续的四叉树分间分解,直到分解后的图象不能再分解为止。四叉树分解首先将图象分解为四个正方型区域,再检查每一个区域,对于不满足指定一致性的区域继续分解,直到不能分解为止。四叉树分解可以用于图象自适应压缩的前处理。6.3图象增强(1)灰度调整函数imadjust()可以按指定的方式进行图象的灰度变换。在指定灰度变换范围时,可以使用函数stretchlim()来决定一个图象的灰度范围,然后再进行灰度变换。在使用imadjust()进行灰度变换时,还可以指定一个Gamma系数,用于进行指定

41、的Gamma校正。(2)噪声去除函数imnoise()可以按指定的方式在图象上加入噪声。函数filter2()可以进行线性滤波,去除噪声;函数medfilt2()进行中值滤波,去除噪声;函数viener2()可以进行自适应滤波,去除噪声。基于区域的图象处理选择感兴趣的区域函数roipoly()可以按交互和非交互两种方式产生一个用于确定多边形的感兴趣区域的二值图象,该图象称屏蔽图象,可用于进行基于区域的图象处理。还可以用任意一个二值图象作为屏蔽图象进行基于区域的图象处理。对指定的区域进行滤波函数roifilt2()可以对图象的指定区域用指定的滤波器进行滤波。区域填充函数roifil1()可以对图

42、象的指定区域采用边界插补的方式进行填充处理,可以产生尽可能平滑的填充。图象的恢复(复原)(去模糊)处理(1)一些基本概念解卷积:卷积的逆运算失真算子:描述造成图象与原图象不同的处理过程的算子。点光源传输函数:线性位置不变系统对冲击函数的响应。也是点光源扩散函数的傅立叶变换。点光源扩散函数:在空域中描述点光源光学失真(扩散)程度的函数。模糊形成的原因:拍摄时物体的运动,由于散焦、使用广角镜头、暴光量少等造成的进光量减少,显微中光分布失真。失真模型:g=Hf+ng_失真图象H失真算子f原图象n_失真过程等效的叠加噪声用于图象恢复的几种方法以下进行函数都需要提供有关PSF的信息。用维纳滤波方法进行最

43、小平方解的图象恢复。需要提供有关叠加噪声的信息。用正规滤波方法进行有约束最小平方解的图象恢复。需要提供有关叠加噪声的信息。用加速的阻尼(衰减的)算法使用优化技术和泊松统计进行多叠代的图象恢复。不需要提供有关叠加噪声的信息。仅需要提供一个的猜测信息,就可以进行与算法类似的图象恢复。9.图象的彩色(1)如何使用不同的屏幕彩色位深度得到屏幕的彩色深度:函数get(O,ScreenDepth)将返回一个表示屏幕彩色位深度的整数。返回值可以是8、16、24和32。不同屏幕彩色位深度的限制:16位彩色深度时只能显示32个灰度级别;8位彩色深度时可以显示256个灰度级别。减少图象中的彩色数量函数imappr

44、ox()可以减少索引图象的颜色数量到指定的值。函数rgb2ind()可以将RGB图象转化为具有指定颜色数量的索引图象。该函数可以指定采用均匀量化和最小误差量化方法进行彩色空间的分割,也可以指定一个彩色表进行图象的转化。注索引图象可能产生的问题:在8位显示系统下,索引图象的颜色数量超过256时,一些颜色需要用颜色抖动来实现。有些系统的颜色影射表项不能超过256个。当索引图象的颜色数量超过256时,MATLAB将用double类型来存储图象,因而用于存储该图象的存储空间将非常大(每个象素用64位存放)。大多数文件格式将索引图象的颜色数量限制为256,如果向这些文件写颜色数量超过256的索引图象时,

45、将产生错误。将图象转化到其他的颜色空间rgb2ntsc()将图象从RGB空间转化到NTSC(NationalTelevisionSystemsCommitteeintheUS)空间。NTSC的特点是:灰度和颜色空间分离,因此,同一个信号即可以用于彩色图象也可以用于黑白图象。NTSC空间中,数据由三个分量组成:Y(亮度),I(色度)和Q(饱和度)。ntsc2rgb()将图象从NTSC空间转化到RGB空间。rgb2ycbcr()将图象从RGB空间转化到YCbRb空间。YCbRb的特点是:灰度和颜色空间分离。YCbRb空间中,数据由三个分量组成:Y(亮度),Cb(篮色差分量,篮色分量与参考量之差)和Rb(红色差分量,红色分量与参考量之差),Y的取值范围是16,235,Cb和Cr的取值范围是16,240,剩余的数据空间可以在视频数据中嵌入额外信息。ycbcr2rgb()将图象从YCbRb空间转化到RGB空间。rgb2hsv()将图象从RGB空间转化到HSV空间。HSV的特点是:灰度和颜色空间分离。HSV空间中,数据由三个分量组成:H(色度)、S(饱和度)和V(亮度),该模型更接近人对颜色的感觉方式。hsv2rgb()将图象从HSV空间转化到RGB空间。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!