[转载]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。
用法: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的矩阵,对应于对象轮廓像素的坐标。
功能:获取二值图中对象的轮廓,和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,
%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%整个循环表示的是描边
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)
end%整个循环表示的是描边

加载中…