Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1613743
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: 系统运维

2010-07-27 15:49:56

clear;
clc;

f=imread('c:\1.jpg');
gray_level=graythresh(f);
f=im2bw(f,gray_level);
[l,n]=bwlabel(f,8)

imshow(f)
hold on
for k=1:n
[r,c]=find(l==k);
rbar=mean(r);
cbar=mean(c);
plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10);
plot(cbar,rbar,'Marker','*','MarkerEdgecolor','w');
end

主要概念:

  1. 4连接  8连接
      
        0   1   0
        1   p   1  ===>  4连接,p为当前像素点。
        0   1   0

        1   1   1
        1   p   1  ====》8连接, p为当前像素点。
        1   1   1

  2. bwlabel()函数
    语法:   [ L, num]=bwlabel(f,conn)
    其中f是一副二值图像,conn用来指定期望的连接(不是4就是8),默认为8,输出L称为标记矩阵,参数num给出所找到连接分量的总数。
  3. find()函数
    该函数非常有用,会返回指定条件的索引值,在标记矩阵中的作用是返回对应对象的索引。
    I = FIND(X) returns the linear indices corresponding to
        the nonzero entries of the array X.  X may be a logical expression.
        Use IND2SUB(SIZE(X),I) to calculate multiple subscripts from
        the linear indices I.

  4. mean()函数
    求数组平均值


阅读(2948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~