我正在尝试细分图片
我想用蓝色
取两个轮廓
任何人都知道我可以使用哪种技术进行此类细分?
问题是我想使用活动轮廓进行分割,我希望在这种图像中自动初始化活动轮廓。为此我必须找到一种方法来放入轮廓内部我绘制一个初始轮廓。任何关于如何制作这个,你可以看到的任何特征,我可以采取(纹理等)的想法? 谢谢
答案 0 :(得分: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);
结果如下:
答案 1 :(得分:0)
如果你有最新版本的MATLAB,请试试Image Segmenter app。