欢迎来到天天文库
浏览记录
ID:37711517
大小:17.00 KB
页数:4页
时间:2019-05-29
《MATLAB计算出图像中多个物体的个数及重心》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算出原始图像中物体的个数及每个物体的中心,并显示出来I=imread('keshe17.bmp');//主函数figure(1),imshow(I);title('原始图像');I2=rgb2gray(I);I4=im2bw(I2,0.7);figure(2),imshow(I4);I4=~I4;bai=double(I4);figure(3),imshow(I4);title('二值图像');%像素为1的二值图像geshu=count(bai);fori=1:geshua=fenge(bai);
2、bai=bai-a;f=centre(a);I4(f(1),f(2))=0;I(f(1),f(2))=255;endfigure(4),imshow(I4);figure(5),imshow(I);functionf=fenge(D)%对像素为255的白色的物体二值图像进行分割[m,n]=size(D);H=zeros(m,n);fori=1:mforj=1:nifD(i,j)~=0;H(i,j)=1;a=i;b=j;break;endendifD(i,j)~=0;break;endendfori=
3、2:(m-1)forj=2:(n-1)if(D(i,j)~=0)if(H(i,j-1)~=0
4、H(i-1,j-1)~=0
5、H(i-1,j)~=0
6、H(i-1,j+1)~=0)H(i,j)=1;endendendenda=m-1;whilei>1i=a;a=a-1;j=n-1;while(j>1)j=j-1;if(D(i,j)~=0)if(H(i,j+1)~=0
7、H(i+1,j+1)~=0
8、H(i+1,j)~=0
9、H(i+1,j-1)~=0
10、H(i,j-1)~=0
11、H(i-1,j-1)~=0
12、H(i-
13、1,j)~=0
14、H(i-1,j+1)~=0)H(i,j)=1;endendendendf=H;functionf=count(D)%对白色的二值图像的物体进行数数[m,n]=size(D);D=double(D);a=0;while1B=zeros(m,n);B=fenge(D);a=a+1;D=D-B;ifD==0break;endendf=a;functionf=centre(H)%求白色物体的中心。即先求所有点的坐标的和,然后除以点的个数[m,n]=size(H);a=0;b=0;k=0;fo
15、ri=1:mforj=1:nifH(i,j)~=0a=a+i;b=b+j;k=k+1;endendendD=a/k;E=b/k;f=[round(D)round(E)];
此文档下载收益归作者所有