1 disp()
disp(X)函数只有一个输入,当你有多个字符串作为输入时就会报错。例如:
disp('Alice is ' , num2str (12) , ' years old!' ); 就会报错 —— 输入参数过多。但是将里边的内容用中括号一括就成了一个字符串,例如:
str=['Alice is ' num2str (12) ' years old!']; disp(str);
上边这句话也就等价于:
disp=(['Alice is ' num2str (12) ' years old!']);
这就是加中括号的原因,而不是因为 num2str() ,因为 disp(num2str(12)); 也是正确的,因为里边就只有一个字符串。
2 分块画图 subplot()
把绘图窗口分成两行两列四块区域,然后在每个区域分别作图,基本步骤:
subplot(2,2,1);
在第一块绘图
subplot(2,2,2);
在第二块绘图
subplot(2,2,3);
在第三块绘图
subplot(2,2,4);
在第四块绘图
3 获取图片行和列大小
I=imread('lena.jpg');s=size(I);% s(1)=rows s(2)=clos
4 最大类间方差法 将图片二值化
I = imread('coins.png');level = graythresh(I);
BW = im2bw(I,level);
figure, imshow(BW)
5 绘图函数
(1)fplot(fun,limits,tol,linespec)fun:函数名,可以是MATLAB已有函数、自定义的M函数或字符串定义的函数。limits:表示绘制图形的坐标轴取值范围,有两种方 式:[xminxmax]和[xminxmaxyminymax]。tol:相对误差,默认值为2e-3。
linespec:表示图形的线型、颜色和数据点等设置。
(2)plot(x,y1,x,y2);
6 给窗口加标题
set函数的调用格式为: set(句柄,属性名1,属性值1,属性名2,属性值2,…)
h=figure(1);
set(h,'name','num1','Numbertitle','off'); %num1 为窗口名字 ,并且不显示第几个窗口
m=figure(2);
set(m,'name','num2');
hx=[-1 -2 -1;0 0 0 ;1 2 1];
gradx=filter2(hx,A,'same'); %用hx模板对A进行滤波,参数‘same’表示输出图片和源图片大小相同
gradx=abs(gradx);
(2)直接用x,y两个方向的sobel算子
a=imread('lena.jpg');
b=edge(a,'sober');
8 中值滤波函数medfilt2()
A=imread('lena.jpg');
B = medfilt2(A, [m n]); %medfilt2()函数是对二维矩阵格式进行处理,如果读进来的是rgb三色图,必须要用函数rgb2gray(A)转换为灰度图。[m,n]为模 板大小,默认为[3,3]