`
本帖最后由 孙纪光 于 2013-5-10 09:13 编辑
a=[1 1 0 0 0;0 1 1 1 0;0 0 1 0 0 ;0 1 1 0 1;1 0 0 0 1]
x1=bwlabel(a,4)%利用x1函数查看a矩阵中的四领域连通性
x2=bwlabel(a,8)%利用x2函数查看a矩阵中的八领域连通性
doc bwlabel
[a, num] = bwlabel(a, 8)%利用x2函数查看a矩阵中的八领域连通性,并返回8连通的个数
b=imread('se026.png');
subplot(131);
imshow(b)
[w h]=size(b);
b1=zeros(w,h);
subplot(132)
imshow(b1)
for i=1:w %注意for循环运行时间很长。
for j=1:h
b1(i,j)=floor(b(i,j)/4);
end
end
subplot(132);
imshow(uint8(b1),[0 63])
for i=1:w %注意for循环运行时间很长。整个循环是为了将b图中的所有的灰度值b(i,j)除以128
for j=1:h
b2(i,j)=floor(b(i,j)/128);
end
end
subplot(133);
imshow(uint8(b2),[0 1])%因为256除以128的值不超过2所以无符号整数是1,故[0,1],uint8是无符号整形,其中0表最黑,1表最白
doc floor %B = floor(A) B是不大于A的最大整数
x=linspace(0,2*pi,200);%绘0到2*pi的200个点。
y1=sin(x);
y2=cos(x);
y3=log(x);
plot(x,y1,'r',x,y2,'g',x,y3,'b')%绘出sin(x),cos(x),log(x)的图像。
xlabel('x')%绘制横坐标。
ylabel('y')%绘制纵坐标。
title('绘图')%在图中表示出“绘图”。
legend('sin(x)','cos(x)','log(x)')%在图中标识出三个函数表达式例子。
xlim([0,10])%给x的横坐标限制,到10。
text(2,0.3,'sin(x)')%在图中(2,0.3)上注释sin(x)。
text(3.2,-0.8,'cos(x)')%在图中(3.2,-0.8)注释cos(x)。
text(6,1.6,'log(x)')%在图中(6,1.6)注释log(x)。
a=imread('se026.png');%引进图像
[wid,hei]=size(a);
figure;
imshow(a)%读出图像
b=zeros(wid/2+1,hei/2+1);%全零导致图像黑色。
figure;
imshow(b);
i1=1;%赋初值
j1=1;
for i=1:2:wid%两个for循坏来缩小图像4倍
for j=1:2:hei %给列缩小4倍
b(i1,j1)=a(i,j);
j1=j1+1;
end
i1=i1+1;%反复给行加一倍
j1=1;%给列赋初值。
end
figure;
imshow(uint8(b))%显示图像
i2=1;%赋初值
j2=1;
for i=1:4:wid%给图像缩小16倍程序
for j=1:4:hei%给图像列缩小4倍
b(i2,j2)=a(i,j);
j2=j2+1;
end
i2=i2+1;%反复给行加一循环
j2=1;%反复赋初值给列。
end
figure;
imshow(uint8(b))%显示图像
a=imread('se026.png');
b=imrotate(a,45);%调用imrotate函数类旋转图像45度
c=imrotate(a,90);%调用imrotate函数类旋转图像90度
subplot(131);%把图像输出
imshow(a);
title('原图');
subplot(132);
imshow(b);
title('旋转45度');
subplot(133);
imshow(c);
title('旋转90度');
d=imread('rice.png');
a1=im2double(a);%转为double型
d1=im2double(d);
e=a1+0.3*d1;%加法图像处理运算法
figure;
imshow(e)
title('加法')
imwrite(e,'jf.png');
f=e-0.3*d1;%减法运算,得出简减法图像
figure;
imshow(f)
title('减法')
g=zeros(512,512);
g(200:400,200:400)=1;
figure;
imshow(g)
g1=im2double(g);
a2=a1.*g1;%采用点乘法来截取图像
figure;
imshow(a2)%输出图像
a=zeros(170,170);
a(30:100,50:60)=1;
a(30:100,80:90)=1;
a(30:100,110:120)=1;
a(40:50,30:150)=1;
a(90:100,30:150)=1;
figure;
imshow(a)
bweuler(a)%查看该图的欧拉数
a1=bwmorph(a,'remove');
a2=bwmorph(a,'skel','inf');
figure;
imshow(a1)
figure;
imshow(a2)
bweuler(a2)
b=imread('复件 se026.png');
doc bwmorph;
b3=im2bw(b,0.3);
figure;
imshow(b3)
b1=bwmorph(b3,'remove');
b2=bwmorph(b3,'skel','inf');
bweuler(b2)
figure;
imshow(b1)
figure;
imshow(b2)
doc im2bw
L=bwlabel(a);
S=regionprops(L,'area') %求白色区域面积。
A=regionprops(L,'centroid')%求白色区域中心。
c=cat(1,A.Centroid);
figure
imshow(a)
hold on
plot(c(:,1),c(:,2),'R*')
hold off
b=imread('复件 se026.png');
b2=bwmorph(b3,'skel','inf');
doc im2bw
L=bwlabel(b2);
S=regionprops(L,'area') %求白色区域面积。
A=regionprops(L,'centroid')%求白色区域中心。
c=cat(1,A.Centroid);%
figure
imshow(b2)
hold on
plot(c(:,1),c(:,2),'R*')%用*在图中标出中心点
hold off
doc cat
doc regionprops
b=imread('复件 se026.png');%取出此图的100:130,200:230的部分
b=im2double(b);
c=zeros(402,360);
c(100:130,200:230)=1;
figure;
imshow(c)
c1=b.*c;
figure;
imshow(c1)
`
1