您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > matlab图像处理命令
MATLAB常用的图像操作数字图像研究的领域•数字图像研究的领域非常广泛–图像的数字化–图像变换–图像增强–图像恢复–图像分割–图像分析与理解–图像编码压缩MATLAB图像处理工具箱•提供了丰富的图像处理函数–图像的几何变换–图像的领域和图像块操作–线性滤波和滤波器设计–图像变换–图像分析与增强–二值图像操作–感兴趣区域处理MATLAB图像处理工具箱•MATLAB图像处理工具箱提供的函数大多数是M文件,可以查看这些文件的代码并进行改进,也可以把自己编写的代码加入其中,来扩充图像处理的功能。MATLAB中的图像•MATLAB中的数字图像由一个或多个矩阵表示•矩阵运算的语法对数字图像同样适用•图像按像素存储,即矩阵的每个元素代表一个像素–例如一幅200行300列的图像,在MATLAB中存储为200×300大小的矩阵–有些图像,如RGB图像,需要三维矩阵表示,每一维代表一种颜色MATLAB中的图像•MATLAB中图像数据矩阵的存储方式为:–双精度(double)类型,即64位的浮点数–无符号整数(uint8)类型•在进行图像数据矩阵运算时,通常要将图像转换成double型•uint8类型的优势仅在于节省存储空间MATLAB中支持的图像类型•真彩色图像•索引色图像•灰度图像•二值图像•还可处理由多帧图像组成的图像序列真彩色图像•又称为RGB图像•利用R、G、B3个分量表示一个像素的颜色,通过三基色可以合成出任意颜色•一个尺寸为m×n的RGB图像,在MATLAB中存储为一个m×n×3的多维数组•图像A中(x,y)处的像素的RGB值:A(x,y,1:3)•若RGB图像用双精度型来存储,亮度值域为[0,1],则一个像素值为(0,0,0)代表黑色,值为(1,1,1)代表白色•用无符号整型存储,亮度值范围[0,255]索引色图像•把不同的颜色对应为不同的序号,各像素存储的是颜色的序号而不是颜色值本身。•MATLAB中的索引色图像包括两个结构–调色板:一个m×3的色彩映射矩阵,每一行代表一种颜色,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色索引色图像•MATLAB中提供一些产生预存的标准调色板的函数jetHsvHot索引色图像•默认情况下,调用调色板函数会产生一个64×3的调色板,用户也可以自定义调色板的大小,如hot(m)产生一个m×3的调色板,其颜色范围从黑经过红、橘红、黄到白索引色图像•MATLAB中的索引色图像包括两个结构–图像数据矩阵,也可以是double和uint8两种类型当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行……如果图像数据为uint8类型,0代表调色板的第1行,值1代表第2行……索引色图像•当读入图像时,MATLAB同时加载调色板和图像•loadflujet•image(X)索引色图像•当读入图像时,MATLAB同时加载调色板和图像•loadflujet•image(X)•colormap(hot)灰度图像•存储灰度图像只需要一个数据矩阵。数据类型可以是double,[0,1];也可以是uint8,[0,255]二值图像•二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。图像序列•MATLAB工具箱支持将多帧图像连接成图像序列。图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像,调色板也必须相同。可参考cat()函数A=cat(4,A1,A2,A3,A4,A5)图像类型转换函数读写图像文件图形图像文件的读取参数fmt指定了图像的格式,可选的值为cur、bmp、hdf、ico、jpg、pcx、png、tif、xwd(适用于cur、ico、tif格式)图形图像文件的写入图形图像文件信息的查询文件最后修改时间文件大小(字节)文件格式文件格式版本号图像的宽图像的高位深度图像类型调色板图像的显示图像文件的显示•索引图像及其显示图像文件的显示•索引图像及其显示–用image函数显示由矩阵表示的图像,MATLAB将矩阵的每个元素对应到当前调色板的一行,并取这一行的颜色值作为该点的颜色,必须先指定调色板loadclownimage(X)colormap(map)image(X)[X,map]=imread('trees.tif');imshow(X,map)图像文件的显示•灰度图像的显示–要显示一副灰度图像,可以调用函数imshow或imagesc图像文件的显示imshow('cameraman.tif')I=imread('cameraman.tif');imshow(I)h=imshow(I,[080]);图像文件的显示图像文件的显示•RGB图像的显示–image(RGB)–imshow(RGB)图像文件的显示•colorbar–用于显示颜色条,由图像中使用到的色彩排列而成图像文件的显示•montage–多帧图像指的是包含不止一幅图像的图像,如HDF和TIFF文件类型。–同时显示多帧图像的所有帧–显示多帧图像中的一帧图像文件的显示•montage图像文件的显示•immovie–将多帧图像转换成MATLAB动画图像文件的显示•subimage–可在一个图像窗口内使用多个调色板,使得各种图像能在同一个图像窗口中显示图像文件的显示图像的代数运算•Z=imabsdiff(X,Y)图像的代数运算•Z=imadd(X,Y)图像的代数运算•IM2=imcomplement(IM)图像的代数运算•Z=imdivide(X,Y)图像的代数运算•Z=immultiply(X,Y)图像几何运算•在对图像进行缩放、旋转等几何变换时,由于数字图像的坐标是整数,经过这些变换后的坐标不一定是整数,因此要对变换之后的整数坐标位置的像素值进行估计。•几何运算包括:–空间变换–灰度插值•最近邻插值•双线性插值•双三次插值图像几何运算•图像的插值缩放程序例:figuresubplot(2,2,1),imshow(X);subplot(2,2,2),imshow(X1);subplot(2,2,3),imshow(X2);subplot(2,2,4),imshow(X3);imwrite(X,’X.jpg')imwrite(X1,'x1.jpg')imwrite(X2,'x2.jpg')imwrite(X3,'x3.jpg')clearcloseallX=imread('autumn.tif');X1=imresize(X,4,'nearest');X2=imresize(X,4,'bilinear');X3=imresize(X,4,'bicubic');figure,imshow(X)figure,imshow(X1)figure,imshow(X2)figure,imshow(X3)图像几何运算•图像的插值旋转图像几何运算•图像的剪切交互式rect[XminYminWidthHeight]图像增强空间域点运算直方图修正法灰度变换区域运算锐化平滑频率域高通滤波同态滤波低通滤波彩色增强假彩色增强彩色变换增强伪彩色增强代数运算图像增强图像增强•直方图增强•对比度增强•二维卷积和二维滤波•平滑滤波•锐化直方图增强•直方图只对“二值”或“灰度”图像有效灰度级数目直方图增强•直方图均衡化只对“二值”或“灰度”图像有效对比度增强•该方法按一定的规则修改输入图像每个像素的灰度,从而改变图像灰度的动态范围。它可以使灰度动态范围扩展,也可以压缩,或进行分段处理等。0f(x,y)g(x,y)abcd0f(x,y)g(x,y)abcdMfMg对比度增强•灰度调整0IJlow_inhigh_inlow_outhigh_outI,J范围:0~1[]默认为[0;1]J=imadjust(I)将灰度图像I中的亮度值映射到J中的新值并使1%的数据是在低和高强度饱和,这增加了输出图像J的对比度值。对比度增强•灰度调整0IJlow_inhigh_inlow_outhigh_outJ=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)灰度的Gamma变换espxy其中,x、y的取值范围为[0,1]。esp为补偿系数,r则为Gamma系数。Gamma变换是根据r的不同取值选择性的增强低灰度区域的对比度或者高灰度区域的对比度。J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)•彩色(RGB)调整RGB•I=imread('girl.jpg');•J=imadjust(I,[],[],2.2);•K=imadjust(J,[],[],1/2.2);•subplot(2,3,1),imshow(I),title('RGB-I')•subplot(2,3,2),imshow(J),title('RGB-J')•subplot(2,3,3),imshow(K),title('RGB-K')•%•I1=rgb2gray(I);•J1=imadjust(I1,[],[],2.2);•K1=imadjust(J1,[],[],1/2.2);•subplot(2,3,4),imshow(I1),title(‘Gray-I')•subplot(2,3,5),imshow(J1),title(‘Gray-J')•subplot(2,3,6),imshow(K1),title(‘Gray-K')•I=imread('girl.jpg');•J=imadjust(I,[],[],2.2);•K=imadjust(J,[],[],1/2.2);•subplot(2,3,1),imshow(I),title('RGB-I')•subplot(2,3,2),imshow(J),title('RGB-J')•subplot(2,3,3),imshow(K),title('RGB-K')•%•I1=rgb2gray(I);•J1=imadjust(I1,[],[],2.2);•K1=imadjust(J1,[],[],1/2.2);•subplot(2,3,4),imshow(I1),title(‘Gray-I')•subplot(2,3,5),imshow(J1),title(‘Gray-J')•subplot(2,3,6),imshow(K1),title(‘Gray-K')对比度增强•灰度调整•对数变换只对“灰度”图像有效对比度增强•Gamma校正•Gamma因子的取值决定了输入图像到输出图像的灰度映射方式,即决定了增强低灰度级还是高灰度级。平滑滤波•中值滤波平滑滤波•平滑技术用于平滑图像中的噪声•基本方法是:求像素灰度的平均值和中值•Matlab工具箱中提供的去噪的方法:•线性滤波•中值滤波•自适应滤波平滑滤波锐化•锐化技术用于加强图像中的目标边界和图像细节。常用的方法是在空间域中对图像进行微分处理,也可以在频域中运用高通滤波技术。•因为需要锐化的边界可能是任意走向的,因此需要锐化算子是无向的,即无论边界是什么走向,只要幅度相同,算子的输出就相同——梯度算子、拉氏算子I=imread(‘brain.bmp');•subplot(2,2,1),imshow(I);•BW1=edge(I,'roberts');•%进行Roberts算子边缘检测,门限值采用默认值•BW2=edge(I,'prewitt');•%进行Prewitt算子边缘检测,门限值采用默认值•BW3=edge(I,'sobel');•%进行Sobel算子边缘检测,门限值采用默认值•subplot(2,2,2),imshow(BW1,[]);•subplot(2,2,3),imshow(BW2,[]);•subplot(2,2,4),imshow(BW3,[]);Matlab边缘检测
本文标题:matlab图像处理命令
链接地址:https://www.777doc.com/doc-5714509 .html