MATLAB计算出图像中多个物体的个数及重心.doc

上传人:飞****9 文档编号:134041563 上传时间:2020-06-02 格式:DOC 页数:4 大小:16KB
返回 下载 相关 举报
MATLAB计算出图像中多个物体的个数及重心.doc_第1页
第1页 / 共4页
MATLAB计算出图像中多个物体的个数及重心.doc_第2页
第2页 / 共4页
MATLAB计算出图像中多个物体的个数及重心.doc_第3页
第3页 / 共4页
MATLAB计算出图像中多个物体的个数及重心.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《MATLAB计算出图像中多个物体的个数及重心.doc》由会员分享,可在线阅读,更多相关《MATLAB计算出图像中多个物体的个数及重心.doc(4页珍藏版)》请在金锄头文库上搜索。

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);for i=1:geshu a=fenge(bai); bai=bai-a; f=centre(a); I4(f(1),f(2)=0; I(f(1)

2、,f(2)=255;endfigure(4),imshow(I4);figure(5),imshow(I);function f=fenge(D) %对像素为255的白色的物体二值图像进行分割m,n=size(D);H=zeros(m,n); for i=1:m for j=1:n if D(i,j)=0; H(i,j)=1; a=i; b=j; break; end end if D(i,j)=0; break; end end for i=2:(m-1) for j=2:(n-1) if (D(i,j)=0 ) if(H(i,j-1)=0 | H(i-1,j-1)=0 | H(i-1,j)

3、=0 | H(i-1,j+1)=0) H(i,j)=1; end end end end a=m-1; while i1 i=a; a=a-1; j=n-1; while(j1) j=j-1; if (D(i,j)=0) if(H(i,j+1)=0 | H(i+1,j+1)=0 | H(i+1,j)=0 | H(i+1,j-1)=0 |H(i,j-1)=0 | H(i-1,j-1)=0 | H(i-1,j)=0 | H(i-1,j+1)=0) H(i,j)=1; end end end end f=H;function f=count(D) %对白色的二值图像的物体进行数数m,n=size(D);D=double(D);a=0;while 1 B=zeros(m,n); B=fenge(D); a=a+1; D=D-B; if D=0 break; end endf=a;function f=centre(H) %求白色物体的中心。即先求所有点的坐标的和,然后除以点的个数 m,n=size(H); a=0; b=0; k=0; for i=1:m for j=1:n if H(i,j)=0 a=a+i; b=b+j; k=k+1; end end end D=a/k; E=b/k; f=round(D) round(E);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号