2015-02-11 69 views
0

我试图段的图像活动轮廓初始化

http://i58.tinypic.com/wu33pl.jpg

我想利用这两个轮廓与蓝色

Wanted contours image

任何人只要有一个想法,我可以使用哪种技术这种分割?

问题是我想使用主动轮廓进行分割,我希望在这种图像中自动初始化活动轮廓。为此,我必须找到一种方法将轮廓放入绘制初始轮廓。任何想法如何可以做到这一点,任何你可以看到,我可以采取的纹理(纹理等)? 感谢

回答

1

做这将是门槛的形象,用regionprops找到对象的一种简单的方法,只保留那些感兴趣的(在这里,面积标准),并找到bwboundaries轮廓。

在实践中,这给:

% Define threshold 
th_BW = 100; 

% Read image 
img = imread('myimage.jpg'); 

% Get objects and filter them 
R = regionprops(img>th_BW, 'Area', 'PixelIdxList'); 
I = find([R.Area]>1000 & [R.Area]<10000); 

% Get contours 
C = cell(numel(I),1); 
for i = 1:numel(I) 
    BW = img*0; 
    BW(R(I(i)).PixelIdxList) = 1; 
    tmp = bwboundaries(BW); 
    C{i} = tmp{1}; 
end 

% Display 
imshow(img) 
hold on 
plot(C{1}(:,2), C{1}(:,1), 'Linewidth', 2); 
plot(C{2}(:,2), C{2}(:,1), 'Linewidth', 2); 

这里是结果:

Result image

0

如果你有最近的MATLAB的版本,尝试Image Segmenter应用。

+0

谢谢疯狂的老鼠和迪马。问题是,我想使用主动轮廓,我想在这种图像自动初始化。任何想法如何采取初始轮廓内这个图像,你可以看到任何charactiristic我可以拿(纹理等)? – 2015-02-14 09:38:35