图像处理函数--to be continued

以后要触及到一些Matlab中的图像处理函数,在此记录下来,以便查看。

=========================================

 函数bwlabel

MATLAB图像处理工具箱中的函数bwlabel是把四连通或八连通的区域连接起来,调用语法(syntax)为:
L = bwlabel(BW,n)

[L,num] = bwlabel(BW,n)
其中BW为输入的二值图像(binary image);N可取值为4或8表示连接四连通或八连通区域;NUM为找到的连通区域数目;L为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记。

 附注:四连通或八连通是图像处理里的基本概念: 8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的。

 

BW = [1     1     1     0     0     0     0     0

      1     1     1     0     1     1     0     0

      1     1     1     0     1     1     0     0

      1     1     1     0     0     0     1     0

      1     1     1     0     0     0     1     0

      1     1     1     0     0     0     1     0

      1     1     1     0     0     1     1     0

      1     1     1     0     0     0     0     0];

 

[L,num] = bwlabel(BW,4) 

 

L =

 

     1     1     1     0     0     0     0     0

     1     1     1     0     2     2     0     0

     1     1     1     0     2     2     0     0

     1     1     1     0     0     0     3     0

     1     1     1     0     0     0     3     0

     1     1     1     0     0     0     3     0

     1     1     1     0     0     3     3     0

     1     1     1     0     0     0     0     0

num=3

如果只想查看第二个连通区域的位置(标记为2),可以用find函数

[r,c] = find(L==2);  

rc = [r c]

rc =

2 5

3 5

2 6

3 6      注意此处的25 35 26 36 是按照列优先的顺序给出的。

 

posted @ 2011-09-17 22:22  canyueyang  阅读(305)  评论(0)    收藏  举报