matlab基本操作总结

1、clear;//清除工作平台变量

2、close all;//关闭打开的图形窗口

3、I = imread(\'C:\Users\dell\Desktop\rice.jpg\');//读取图像,存储在I数组中

4、imshow(I);//显示数组I

5、whos//查看图片如何存储在内存

6、figure,imhist(I);//在新窗口中显示图像的灰度分布直方图(hist直方图)

7、I2 = histeq(I);//实现直方图均衡化

8、imwrite(gray,\'C:\Users\dell\Desktop\rice2.jpg\');//将数组gray中的图片保存在路径中

9、imfinfo(\'C:\Users\dell\Desktop\rice2.jpg\');//检查文件内容

10、 gray = rgb2gray(I);将RGB三通道图像转化为灰度图

11、 r = I(:,:,1);获取I数组中图像的红色分量(即一个通道)

12、 r = I(:,:,2);获取I数组中图像的绿色分量

13、 background = imopen(I,strel(\'disk\',75));//估计图像背景(半径为75的圆盘结构元素)

>> I2 = imsubtract(I,background);//减去背景图像,创建背景一致的图像

14、 I3 = imadjust(I2);

>> I3 = imadjust(I2,stretchlim(I2),[0 1]);//调节对比度,使图像变量

15、 level = graythresh(I3);//阈值操作

>> bw = im2bw(I3,level);//转换为2值图像

>> figure,imshow(bw);

使用最大类间方差法找到图片的一个合适的阈值(threshold)。

在使用im2bw函数将灰度图像转换为二值图像时,需要设定一个阈值,

这个函数可以帮助我们获得一个合适的阈值。

16、[labeled,numobjects] = bwlabel(bw,4)//返回二值图像bw的对象个数

17、max(allgrains)//最大值

18、mean(allgrains)//均值

19、biggrain = find(allgrains == 695)//查找尺寸为695的对象,返回对象标记

20、graindata = regionprops(labeled,\'basic\')//返回对象属性到一个结构体数组中

21、allgrains = [graindata.Area];//得到尺寸属性

22、subplot(2,2,1);//4幅图中显示第一幅

23、ones(a,b);//产生a*b的全1矩阵

24、subplot(3,2,5),imshow(s,[]);//[]色度拉伸,将最大值设为hight;

不加,默认1最大,0最小

25、H = fspecial(‘sobel’);//建立预定义的滤波算子,sobel算子

psf = fspecial(\'motion\',len,theta);//为运动模糊算子,有两个参数,

表示摄像物体逆时针方向以theta角度运动了len个像素,

len的默认值为9,theta的默认值为0;

H = FSPECIAL(\'disk\',RADIUS);//为圆形区域均值滤波,disk 圆形

参数为radius代表区域半径,默认值为5.

26、J = conv2(I,h,\'same\')//空间的卷积相当于频域的乘积。 可以用来提取边缘,

如利用sobel 拉普拉斯算子等,这种相当于频域中的高通滤波器。

还有可以滤除噪声,相当于频域中低通滤波器。h为矩阵

27、F = fft2(noisy);

>> fftshift(F);// fftshift的作用正是让正半轴部分和负半轴部分的图像

分别关于各自的中心对称。因为直接用fft得出的数据与频率不是对应的,

fftshift可以纠正过来 (ifft2傅里叶逆变换)

28、imfilter 可进行多维图像(RGB等)进行空间滤波,且可选参数较多

filter2 只能对二维图像(灰度图)进行空间滤波

29、l= i(10+[1:255],222+[1:255],:);

29、noise3 = imadd(I,im2uint8(noise2));noise2 = 0.1*randn(size(I));

//在原图添加随机噪声

30、IM2 = imcomplement(IM) //对图像数据进行取反运算(实现底片效果)。

31、i = im2bw(ic,graythresh(ic)) //使用最大类间方差法找到图片的一个合适的阈值(threshold)

32、SE = strel(shape, parameters);//构造结构元素(Structuring element)。

所谓结构元素, 可以看做是一张小图像, 它通常用于图像的形态学运算

(如膨胀、腐蚀、开运算、闭运算)。

33、imclose();平滑边界,连接短的间隙,填充小孔

34、imopen//开运算属于形态学图像处理,是先腐蚀后膨胀,

作用是:切断细长的搭线,消除图像边缘的毛刺和孤立点,平滑图像边界

35、full();//把稀疏矩阵转换为群矩阵

36、eye(n);//返回n*n单位矩阵

37、inf 无穷大

38、floor();//返回小于等于参数的数值

39、ceil();//返回大于等于参数的数值

40、\'truesize\' 就是按图片实际大小显示图片,窗口会自动调节大小去适应图片尺寸。

这个是默认情况,跟省略这个参数一样。

‘notruesize\' 就是图片去适应窗口,窗口大小不动,自动调节图片大小。

41、hot();是一种从黑到红到黄再到白的渐变的colormap

42、 imcrop 函数功能: 在MATLAB中,该函数用于返回图像的一个裁剪区域。

43、surf(x,y,z)绘制三维曲面的网格图

mesh(x,y,z):绘制三维曲面表面图

44、strel(\'disk\',15);构造结构元素

45、i = i(10+[1:256],222+[1:256],:);//显示图像局部

46、 stretchlim(i2)//获取灰度范围

47、cat(Concatenate的缩写)是matlab中的一个函数,用于连结数组,cat(dim,A,B)。

48、line([x1 x2], [y1 y2],\'color\',\'r\');在原图中划线

49、 plot(x,y,\'*\',\'color\',\'g\');新建窗口符号,若要在原图画,可在前面加hold on;

50、text(P_x,P_y,\'黑色\',\'color\',\'b\');

51、[b,c]=find(Ir<10)

52、im=imread([int2str(b),\'.bmp\']);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

double 就是简单地把一个变量类型转换成double类型,数值大小不变;

比如 a=6 是个unit8类型的话,double(a)的结果还是6,不过现在这个6是double类型的。

函数im2double将输入转换成double类型。

如果输入是 uint8 unit16 或者是二值的logical类型,

则函数im2double 将其值归一化到0~1之间,当然就是double类型的了。

如果输入本身就是double类型,输出还是double类型,并不进行归一化。。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

matlab 矩阵运算

sum(x)列求和

sum(x,2)行求和

sum(x(:))矩阵求和(矩阵所有元素的和)

m\'//m的转置

m.^2//m里面的每个元素作为幂指数运算(2次幂指数)

min = [inf,0]???????????????????

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ctrl+R是多行屏蔽,ctrl+T是多行消屏蔽