资源描述:
《Matlab图像处理入门》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Matlab图像处理入门1.Matlab基础1.1数据格式Matlab默认的数据格式为双精度浮点数的矩阵或数组,同时支持其它数据类型。Matlab将单变量看作1´1的数组。Matlab支持的数据类型如下:索引值从1开始。字符串须用单引号括起来。有些matlab函数或操作符只能用于双精度浮点数。1.2基本运算1.2.1赋值,如A=[123],A=[1,3,5],A=[1:3],A=[1:0.5:3],则A是个行向量,各元素值分别为:12313512311.522.53;A=[1;2;3]是列向量。B=[123;456]是个2´3的矩阵或数组。若再执行B=A,则B
2、变为与A相同的行向量。B=A’得到A的转秩。B=A(r1:r2,c1:c2)将A的一个子块赋给B,该子块在A中的位置由行号r1,r2(r1<=r2)及列号c1,c2(c1<=c2)决定;A(r1:r2,c1:c2)=B将B赋给A的一个子块,B的大小必须是(r2-r1+1)´(c2-c1+1);A(r1:r2,c1:c2)=B(m1:m2,n1:n2)将B的一个子块赋给A的一个子块,同样,两个子块的大小必须相等。1.2.2加+,减-,要求两个变量的行、列数相等。对于数组,乘除运算符为.*和./,称为点乘和点除,同样要求两个变量的行、列数相等,运算是将相同位置的两
3、个元素相乘或相除。1.2.3for,while,switch,¼2.常用的Matlab基本图像处理函数详细内容请参考matlab帮助。2.1文件读写l读图像:imreadA=imread(filename,fmt);将图像像素值读出并赋给变量A。[X,map]=imread(filename,fmt);X为图像数组,map是图像的调色板。参数:filename是文件名,fmt是图像文件的格式。如果图像文件不在Matlab默认路径中(当前默认路径可用path函数查看),则filename必须是全路径名。fmt可以是'bmp'(位图图像),'jpg'或'jpeg'
4、(JPEG图像),'tif'或'tiff'(TIFF图像)等多种常用格式。如果文件名filename中含有表示图像格式的后缀名,如'test.tif',则参数fmt可以省略。l图像存盘:imwriteimwrite(A,filename,fmt);用于真彩色图像存盘。imwrite(X,map,filename,fmt);用于伪彩色图像存盘。2.2显示imshow(X),按图形窗口默认的调色板显示图像。imshow(X,map),按map规定的调色板显示图像。图像数组X可以是整数或浮点数。若X是整数,则其取值范围应为0~255,0表示最暗,255表示最亮;若X
5、是浮点数,则其取值范围应为0~1,0表示最暗,1表示最亮。若X是浮点数,可通过uint8(X)强制转换成单字节整数。函数min()和max()用来求向量或矩阵的最小、最大值。对向量V,min(V)返回其最小值;对于矩阵X,min(X(:))返回其最小值。plot画曲线。2.3几何运算l改变图像尺寸:imresizeB=imresize(A,m,method);将图像A的行、列数变为原来的m倍,结果图像由B输出。method是采用的插值方法,'nearest'(缺省)采用最临近插值(零阶插值),'bilinear'采用双线性插值,'bicubic'采用双立方插值
6、。如果省略参数method,则采用最临近插值进行变换。l图像旋转:imrotateB=imrotate(A,angle,method);将图像按逆时针方向旋转angle度,结果图像由B输出。顺时针旋转时angle为负。B=imrotate(A,angle,method,'crop');输出图像B四边被裁减,使其大小与A相同。参数method同上。2.4统计运算l直方图:imhistimhist(I);画图像I的直方图。l图像均值:b=mean2(A);计算图像A的像素平均值,即平均亮度。l图像方差:b=std2(A);计算图像A的方差。2.5图像增强l灰度调整
7、:imadjustJ=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma);将图像灰度由[low_inhigh_in]调整到[low_outhigh_out],gamma是调整的线性度,缺省为1,即线性调整。原图像I必须是double型,最大灰度区间为[01],可以用函数im2double()将图像转为这种格式。可以用im2uint8()将结果J转为8位灰度图像。l直方图均衡:J=histeq(I);采用直方图均衡对图像I进行增强。imnoise2.6边缘提取edge:实现6种不同的边缘提取方法:ØBW=edg
8、e(I,'sobel');BW=edg