Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47137
  • 博文数量: 10
  • 博客积分: 590
  • 博客等级: 中士
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 19:48
文章分类
文章存档

2011年(3)

2010年(7)

分类: WINDOWS

2010-11-27 14:20:37

I = imread('result.bmp');
[height,width]=size(I);
threshold= graythresh(I);
bw = im2bw(I, threshold);

bw = ~bw;
bw = bwareaopen(bw,30);

[L,num]= bwlabel(bw, 8);
S = regionprops(L, 'centroid');
Ar = regionprops(L,'area');
Per= regionprops(L, 'perimeter');
Ori= regionprops(L, 'orientation');

Metric = zeros(1, max(L(:)));
A = zeros(1, max(L(:)));
O = zeros(1, max(L(:)));
for i=1:max(L(:))
A(i) = Ar(i).Area/(height*width);
Metric(i) = 4*pi*Ar(i).Area/Per(i).Perimeter^2;
O(i) = ((Ori(i).Orientation+90)*pi)/180;
end

centroids = cat(1,S.Centroid);
imshow(bw)
hold on
plot(centroids(:,1),centroids(:,2),'r*')
hold off

for i=1:max(L(:))
    S(i,1).Centroid(1)=S(i,1).Centroid(1)/width;
    S(i,1).Centroid(2)=S(i,1).Centroid(2)/height;
end

A(1:max(L(:)))
S(1:max(L(:)),1).Centroid
Metric(1:max(L(:)))
O(1:max(L(:))) 
阅读(9069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~