加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]bwlabel&bwboundaries

(2013-03-18 17:31:38)
标签:

转载

原文地址:bwlabel&bwboundaries作者:keykey9

bwlabel

 

功能:对连通对象进行标注,bwlabel主要对二维二值图像中各个分离部分进行标注(多维用bwlabeln,用法类似)。

用法:L = bwlabel(BW,n)
[L,num] = bwlabel(BW,n)

L = bwlabel(BW,n)表示返回和BW相同大小的数组L。L中包含了连通对象的标注。参数n为4或8,分别对应4邻域和8邻域,默认值为8。
[L,num] = bwlabel(BW,n)返回连通数num。

 

 

bwboundaries
功能:
获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。
 
用法:B = bwboundaries(BW,conn)(基本格式)
%B是一个P*1的数组,P代表联通体个数,B内每行是一个Q*2的矩阵。
%Q内每一行表示联通体的边界像素的位置坐标,
%第一列是纵坐标Y,第二列是横坐标X,Q为边界像素的个数
%所以boundary(:,2)为X,boundary(:,1)为Y,
 
[B,L]=bwboundaries(BW,n)
%L是一个标记矩阵,n只能是4,8,分别对应4邻域和8邻域
 
help 文档例子
I = imread('rice.png');%读入图像
BW = im2bw(I, graythresh(I));%转换成2进制图像
[B,L] = bwboundaries(BW,'noholes');%寻找边缘,不包括孔
imshow(label2rgb(L, @jet, [.5 .5 .5]))%显示图像
hold on
for k = 1:length(B)
   boundary = B{k};
   plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end%整个循环表示的是描边
 
 
 

 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有