为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Matlab中图像函数

2014-03-07 15页 doc 164KB 41阅读

用户头像

is_920145

暂无简介

举报
Matlab中图像函数Matlab中图像函数大全 Matlab中图像函数 图像增强 1.直方图均衡化的Matlab实现 1.1 imhist函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n),imhist(X,map) 说明:imhist(I,n)其中,n为指定的灰度级数目,缺省值为256;imhist(X,map)就算和显示索引色图像X的直方图,map为调色板。用stem(x,counts)同样可以显示直方图。 1.2 imcontour函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I...
Matlab中图像函数
Matlab中图像函数大全 Matlab中图像函数 图像增强 1.直方图均衡化的Matlab实现 1.1 imhist函数 功能:计算和显示图像的色彩直方图 :imhist(I,n),imhist(X,map) 说明:imhist(I,n)其中,n为指定的灰度级数目,缺省值为256;imhist(X,map)就算和显示索引色图像X的直方图,map为调色板。用stem(x,counts)同样可以显示直方图。 1.2 imcontour函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n为灰度级的个数,v是有用户指定所选的等灰度级向量。 1.3 imadjust函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[lowhigh],[bottomtop],gamma)其中,gamma为校正量r,[lowhigh]为原图像中要变换的灰度范围,[bottomtop]指定了变换后的灰度范围;newmap=imadjust(map,[lowhigh],[bottomtop],gamma)调整索引色图像的调色板map。此时若[lowhigh]和[bottomtop]都为2×3的矩阵,则分别调整R、G、B,3个分量。 1.4 histeq函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...) 说明:J=histeq(I,hgram)实现了所谓“直方图规定化”,即将原是图象I的直方图变换成用户指定的向量hgram。hgram中的每一个元素都在[0,1]中;J=histeq(I,n)指定均衡化后的灰度级数n,缺省值为64;[J,T]=histeq(I,...)返回从能将图像I的灰度直方图变换成图像J的直方图的变换T;newmap=histeq(X,map)和[new,T]=histeq(X,...)是针对索引色图像调色板的直方图均衡。 2.噪声及其噪声的Matlab实现 imnoise函数 格式:J=imnoise(I,type) J=imnoise(I,type,parameter) 说明:J=imnoise(I,type)返回对图像I添加典型噪声后的有噪图像J,参数type和parameter用于确定噪声的类型和相应的参数。 3.图像滤波的Matlab实现 3.1 conv2函数 功能:计算二维卷积 格式:C=conv2(A,B) C=conv2(Hcol,Hrow,A) C=conv2(...,'shape') 说明:对于C=conv2(A,B),conv2的算矩阵A和B的卷积,若[Ma,Na]=size(A), [Mb,Nb]=size(B),则size(C)=[Ma+Mb-1,Na+Nb-1];C=conv2(Hcol,Hrow,A)中,矩阵A分别与Hcol向量在列方向和Hrow向量在行方向上进行卷积;C=conv2(...,'shape')用来指定conv2返回二维卷积结果部分,参数shape可取值如下: full为缺省值,返回二维卷积的全部结果; same返回二维卷积结果中与A大小相同的中间部分; valid返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当size(A)>size(B)时,size(C)=[Ma-Mb+1,Na-Nb+1]。 3.2 conv函数 功能:计算多维卷积 格式:与conv2函数相同 3.3 filter2函数 功能:计算二维线型数字滤波,它与函数fspecial连用 格式:Y=filter2(B,X) Y=filter2(B,X,'shape') 说明:对于Y=filter2(B,X),filter2使用矩阵B中的二维FIR滤波器对数据X进行滤波,结果Y是通过二维互相关计算出来的,其大小与X一样;对于Y=filter2(B,X,'shape'),filter2返回的Y是通过二维互相关计算出来的,其大小由参数shape确定,其取值如下: full返回二维相关的全部结果,size(Y)>size(X); same返回二维互相关结果的中间部分,Y与X大小相同; valid返回在二维互相关过程中,未使用边缘补0部分进行计算的结果部分,有size(Y)
示输入图像;N表示采样间隔点,如果X小于该数值,那么Matlab将会对X进行零填充,否则将进行截取,使之长度为N;DIM表示要进行离散傅立叶变换。 A=fft2(X,MROWS,NCOLS) 其中,MROWS和NCOLS指定对X进行零填充后的X大小。 A=fftn(X,SIZE) 其中,SIZE是一个向量,它们每一个元素都将指定X相应维进行零填充后的长度。 函数ifft、ifft2和ifftn的调用格式于对应的离散傅立叶变换函数一致。 例子:图像的二维傅立叶频谱 %读入原始图像 I=imread('lena.bmp'); imshow(I) %求离散傅立叶频谱 J=fftshift(fft2(I)); figure; imshow(log(abs(J)),[8,10]) 2.离散余弦变换的Matlab实现 2.1 dct2函数 功能:二维DCT变换 格式:B=dct2(A) B=dct2(A,m,n) B=dct2(A,[m,n]) 说明:B=dct2(A)计算A的DCT变换B,A与B的大小相同;B=dct2(A,m,n)和B=dct2(A,[m,n])通过对A补0或剪裁,使B的大小为m×n。 2.2 idct2函数 功能:DCT反变换 格式:B=idct2(A) B=idct2(A,m,n) B=idct2(A,[m,n]) 说明:B=idct2(A)计算A的DCT反变换B,A与B的大小相同;B=idct2(A,m,n)和B=idct2(A,[m,n])通过对A补0或剪裁,使B的大小为m×n。 2.3 dctmtx函数 功能:计算DCT变换矩阵 格式:D=dctmtx(n) 说明:D=dctmtx(n)返回一个n×n的DCT变换矩阵,输出矩阵D为double类型。 3.图像小波变换的Matlab实现 3.1一维小波变换的Matlab实现 (1)dwt函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname') [cA,cD]=dwt(X,Lo_D,Hi_D) 说明:[cA,cD]=dwt(X,'wname')使用指定的小波基函数'wname'对信号X进行分解,cA、cD分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D)使用指定的滤波器组Lo_D、Hi_D对信号进行分解。 (2)idwt函数 功能:一维离散小波反变换 格式:X=idwt(cA,cD,'wname') X=idwt(cA,cD,Lo_R,Hi_R) X=idwt(cA,cD,'wname',L) X=idwt(cA,cD,Lo_R,Hi_R,L) 说明:X=idwt(cA,cD,'wname')由近似分量cA和细节分量cD经小波反变换重构原始信号X。 'wname'为所选的小波函数; X=idwt(cA,cD,Lo_R,Hi_R)用指定的重构滤波器Lo_R和Hi_R经小波反变换重构原始信号X。 X=idwt(cA,cD,'wname',L)和X=idwt(cA,cD,Lo_R,Hi_R,L)指定返回信号X中心附近的L个点。 3.2二维小波变换的Matlab实现 dwt2二维离散小波变换 wavedec2二维信号的多层小波分解 idwt2二维离散小波反变换 waverec2二维信号的多层小波重构 wrcoef2由多层小波分解重构某一层的分解信号 upcoef2由多层小波分解重构近似分量或细节分量 detcoef2提取二维信号小波分解的细节分量 appcoef2提取二维信号小波分解的近似分量 upwlev2二维小波分解的单层重构 dwtpet2二维周期小波变换 idwtper2二维周期小波反变换 (1)wcodemat函数 功能:对数据矩阵进行伪彩色编码 格式:Y=wcodemat(X,NB,OPT,ABSOL) Y=wcodemat(X,NB,OPT) Y=wcodemat(X,NB) Y=wcodemat(X) 说明:Y=wcodemat(X,NB,OPT,ABSOL)返回数据矩阵X的编码矩阵Y;NB伪编码的最大值,即编码范围为0~NB,缺省值NB=16; OPT指定了编码的方式(缺省值为'mat'),即: OPT='row',按行编码 OPT='col',按列编码 OPT='mat',按整个矩阵编码 ABSOL是函数的控制参数(缺省值为'1'),即: ABSOL=0时,返回编码矩阵 ABSOL=1时,返回数据矩阵的绝对值ABS(X) (2)dwt2函数 功能:二维离散小波变换 格式:[cA,cH,cV,cD]=dwt2(X,'wname') [cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname'对二维信号X进行二维离散小波变幻;cA,cH,cV,cD分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)使用指定的分解低通和高通滤波器Lo_D和Hi_D分解信号X。 (3)wavedec2函数 功能:二维信号的多层小波分解 格式:[C,S]=wavedec2(X,N,'wname') [C,S]=wavedec2(X,N,Lo_D,Hi_D) 说明:[C,S]=wavedec2(X,N,'wname')用小波基函数'wname'对二维信号X进行N层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D)用指定的分解低通和高通滤波器Lo_D和Hi_D分解信号X。 (4)idwt2函数 功能:二维离散小波反变换 格式:X=idwt2(cA,cH,cV,cD,'wname') X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) X=idwt2(cA,cH,cV,cD,'wname',S) X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 说明:X=idwt2(cA,cH,cV,cD,'wname')由信号小波分解的近似信号cA和细节信号cH、cH、cV、cD经小波反变换重构原信号X;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)使用指定的重构低通和高通滤波器Lo_R和Hi_R重构原信号X;X=idwt2(cA,cH,cV,cD,'wname',S)和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)返回中心附近的S个数据点。 (5)waverec2函数 说明:二维信号的多层小波重构 格式:X=waverec2(C,S,'wname') X=waverec2(C,S,Lo_R,Hi_R) 说明:X=waverec2(C,S,'wname')由多层二维小波分解的结果C、S重构原始信号X,'wname'为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R)使用重构低通和高通滤波器Lo_R和Hi_R重构原信号。 图像处理工具箱 1.图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节。在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。另外,uint8与double两种类型数据的值域不同,编程需注意值域转换。 从uint8到double的转换 图像类型 MATLAB语句 索引色 B=double(A)+1 索引色或真彩色 B=double(A)/255 二值图像 B=double(A) 从double到uint8的转换 索引色 B=uint8(round(A-1)) 索引色或真彩色 B=uint8(round(A*255)) 二值图像 B=logical(uint8(round(A))) 2.图像处理工具箱所支持的图像类型 2.1真彩色图像 R、G、B三个分量表示一个像素的颜色。如果要读取图像中(100,50)处的像素值,可查看三元数据(100,50,1:3)。 真彩色图像可用双精度存储,亮度值范围是[0,1];比较符合习惯的存储方法是用无符号整型存储,亮度值范围[0,255] 2.2索引色图像 包含两个结构,一个是调色板,另一个是图像数据矩阵。调色板是一个有3列和若干行的色彩映像矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝色强度的双精度数。 注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。 产生调色板的函数 Hsv 色彩饱和度,以红色开始,并以红色结束 Hot 黑色-红色-黄色-白色 Cool 青蓝和洋红的色度 Pink 粉红的色度 Gray 线型灰度 Bone 带蓝色的灰度 JetHsv 的一种变形,以蓝色开始,以蓝色结束 Copper 线型铜色度 Prim 三棱镜,交替为红、橘黄、黄、绿和天蓝 Flag 交替为红、白、蓝和黑 缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。 索引色图像数据也有double和uint8两种类型。 当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行…… 如果图像数据为uint8类型,0代表调色板的第一行,值1代表第2行…… 2.3灰度图像 存储灰度图像只需要一个数据矩阵。数据类型可以是double:[0,1];也可以是uint8:[0,255] 2.4二值图像 二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。 2.5图像序列 MATLAB工具箱支持将多帧图像连接成图像序列。 图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像,调色板也必须相同。 可参考cat()函数 A=cat(4,A1,A2,A3,A4,A5) 3.MATLAB图像类型转换 Dither 图像抖动,将灰度图变成二值图,或将真彩色图像抖动成索引色图像 gray2ind 将灰度图像转换成索引图像 grayslice 通过设定阈值将灰度图像转换成索引色图像 im2bw 通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图 ind2gray 将索引色图像转换成灰度图像 ind2rgb 将索引色图像转换成真彩色图像 mat2gray 将一个数据矩阵转换成一副灰度图 rgb2gray 将一副真彩色图像转换成灰度图像 rgb2ind 将真彩色图像转换成索引色图像 4.图像文件的读写和查询 4.1图形图像文件的读取 利用函数imread()可完成图形图像文件的读取,语法: A=imread(filename,fmt) [X,map]=imread(filename,fmt) [...]=imread(filename) [...]=imread(filename,idx)(只对TIF格式的文件) [...]=imread(filename,ref)(只对HDF格式的文件) 通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab就将其存贮在uint16中。 注意:对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。 4.2图形图像文件的写入 使用imwrite函数,语法如下: imwrite(A,filename,fmt) imwrite(X,map,filename,fmt) imwrite(...,filename) imwrite(...,parameter,value) 当利用imwrite函数保存图像时,Matlab缺省的方式是将其简化道uint8的数据格式。 4.3图形图像文件信息的查询imfinfo()函数 5.图像文件的显示 5.1索引图像及其显示 方法一: image(X) colormap(map) 方法二: imshow(X,map) 5.2灰度图像及其显示 Matlab7.0中,要显示一副灰度图像,可以调用函数imshow或imagesc(即imagescale,图像缩放函数) (1)imshow函数显示灰度图像 使用imshow(I) 或 使用明确指定的灰度级书目:imshow(I,32) 由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义大小的调色板。其调用格式如下: imshow(I,[low,high]) 其中,low和high分别为数据数组的最小值和最大值。 (2)imagesc函数显示灰度图像 下面的代码是具有两个输入参数的imagesc函数显示一副灰度图像 imagesc(1,[0,1]); colormap(gray); imagesc函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0),对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表中的最后一个值(颜色)。灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。 在调用imagesc函数时,若只使用一个参数,可以用任意灰度范围显示图像。在该调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大值对应于颜色映象表中的最后一个颜色值。 5.3 RGB图像及其显示 (1) image(RGB) 不管RGB图像的类型是double浮点型,还是uint8或uint16无符号整数型,Matlab都能通过image函数将其正确显示出来。 RGB8=uint8(round(RGB64×255));%将double浮点型转换为uint8无符号整型 RGB64=double(RGB8)/255;%将uint8无符号整型转换为double浮点型 RGB16=uint16(round(RGB64×65535));%将double浮点型转换为uint16无符号整型 RGB64=double(RGB16)/65535;%将uint16无符号整型转换为double浮点型 (2) imshow(RGB) 参数是一个m×n×3的数组 5.4二进制图像及其显示 (1) imshow(BW) 在Matlab7.0中,二进制图像是一个逻辑类,仅包括0和1两个数值。像素0显示为黑色,像素1显示为白色。显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值0显示为白色;1显示为黑色。 例如:imshow(~BW) (2)此外,还可以使用一个调色板显示一副二进制图像。如果图形是uint8数据类型,则数值0显示为调色板的第一个颜色,数值1显示为第二个颜色。 例如:imshow(BW,[100;001]) 5.5直接从磁盘显示图像 可使用一下命令直接进行图像文件的显示: Imshow filename 其中,filename为要显示的图像文件的文件名。 如果图像是多帧的,那么imshow将仅显示第一帧。但需注意,在使用这种方式时,图像数据没有保存在Matlab7.0工作平台。如果希望将图像装入工作台中,需使用getimage函 数,从当前的句柄图形图像对象中获取图像数据, 命令形式为:rgb=getimage; 色图操作 brighten 亮/暗色图 cmpermute 色图中颜色的重排 colormap 设置色图 imapprox 以较少的颜色来近似索引图像 rgbplot 绘制RGB色图 色彩空间变换 hsv2rgb 饱和色彩色图HSV向红绿蓝色图RGB转换 ntsc2rgb 将NTSC制式值转换到RGB颜色空间 rgb2hsv RGB色图M向HSV色图cmap转换 rgb2ntsc 将RGB颜色空间转换到NTSC制式 rgb2ycbcr 将RGB颜色空间转换到YCBCR颜色空间 ycbcr2rgb 将YCBCR颜色空间转换到RGB颜色空间 图像类型判断及其转换 dither 用抖动法(dithering)转换图像 gray2ind 灰度图像向索引图像转换 grayslice 设定阀值将灰度图转换为索引图 isbw 图像为二值图像则返回真 isgray 图像为灰度图像则返回真 isind 图像为索引图像则返回真 isrgb 图像为RGB图像则返回真 im2bw 设定阀值将图像转换为值维图像 im2double 将图像数据阵列转换为double型 im2uint8 将图像数据阵列转换为uint8型 im2uint16 将图像数据阵列转换为uint16型 ind2gray 索引图像向灰度图像转换 ind2rgb 索引图像向RGB图像转换 mat2rgb 将矩阵转换为灰度图 rgb2gray RGB图像向灰度图转换 rgb2ind RGB图像向索引图像转换 图像处理演示函数 dctdemo 二维DCT图像压缩演示 edgedemo 边缘检测演示 firdemo 二维FIR滤波及滤波器演示 imadjdemo 灰度及调整和直方图均衡演示 landsatdemo 陆地卫星颜色合成演示 nrfiltdemo 噪声消除滤波演示 qtdemo 四叉树分解演示 roidemo 特定区域处理演示 图像 edge 得到加强图像的边缘 qtdecomp 四叉树分解 qtgetblk 得到四叉树分解的块值 qtsetblk 调整四叉树分解的块值 图像增强 histeq 自动调整直方图 imadjust 灰度级调整 imnoise 引入各种类型的噪声 medfilt2 中值滤波 ordfilt2 执行二维阶统计滤波 wiener2 维纳滤波器的二维滤波 线性滤波 conv2 图像卷积 convmtx2 计算二维卷积矩阵 convn 图像的n维卷积 filter2 二维线性滤波 fspecial 产生预定义的滤波器 medfilt2 中值滤波 wiener2 维纳滤波器的二维滤波 二维线性滤波器的 filter2 二维线性滤波 fspecial 产生预定义的滤波器 fsample 生成滤波器 freqz2 计算二维滤波器的频率响应 fsamp2 二维FIR滤波器的频率采样设计 fwind1 由用户自定义的两个一维窗口生成一个二维窗口滤波器 fwind2 由一个已知的二维窗口直接生成一个二维滤波器 hamming 创建一个一维窗口 freqspace 生成合适的频率点阵矩阵 ftrans2 频率变换 图像变换 dct 离散余弦变换 dct2 计算二维离散余弦变换 dctmtx 计算离散余弦变换矩阵 dctmtx2 计算二维离散余弦变换矩阵 dctdemo 二维离散余弦变图像压缩矩阵 fft2 得到二维FFT的结果 fftn N维FFT变换 fftshiftn FFT变换结果的逆象限 iradon Radon逆变换 idct 离散余弦离散余弦变换的逆变换 idct2 计算二维离散余弦离散余弦变换的逆变换 radon Radon变换 邻域及块处理 blkproc 执行分块操作 bestblk 选择用于块处理的块尺寸 col2im 对矩阵的列进行块重排 colfilt 利用列式函数进行邻域操作 im2col 将图像块按列重排 nlfilter 执行常规滑动邻域操作 图像的区域处理 rolpoly 选定多边形形状的特定区域 roifilt2 对图像特定区域进行滤波 roifill 指定区域的快速插值 roicolor 根据颜色进行 图像显示 colorbar 对图像增加颜色条 figure 在不同的图像窗口显示不同的图像 getimage 从轴上得到图像数据 montage 多贞图像一次显示 image 显示图像 imagesc 显示亮度图像 imcontour 显示一幅图画的轮廓图 immovie 多帧图像转换为电影 imshow 显示各类图像 subimage 在一幅图形窗口中显示多个图像 subplot 在同一个图形窗口中显示多图 truesize 调整图像显示的大小 warp 纹理乘图功能 zoom 图像的区域缩放 图像文件数据输入/输出 imfinfo 查询图像文件信息 imread 从图像文件中读数据 imwrite 将数据写入到图像文件中 图像的几何操作 imcrop 裁剪余弦中的一部分 interp2 二维数据插补 imresize 同于改变图像尺寸 imrotate 用于进行图像的旋转 像值与统计 corr2 计算尺寸相同的两个图像矩阵的相关系数 applylut 利用查找表执行邻域操作 bwarea 返回一幅二值图像的面积 bweuler 对图像的拓扑结构的测量 bwfill 进行区域的填充 bwlabel 对图像中不同目标进行标注 bwmorph 一系列的膨胀与腐蚀操作 bwperim 决定二值图像中目标对象的轴长 bwselect 对目标进行操作 dilate 二值图像的膨胀 erode 二值图像的腐蚀 makelut 创建查找表
/
本文档为【Matlab中图像函数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索