是否可以在Matlab中分离imcontour给出的不同级别轮廓?

时间:2018-05-10 17:29:58

标签: matlab

我正在使用图像处理工具箱和

 imcontour

功能。我有两个问题。

1)究竟是什么水平? 2)如何在使用

时分离c中给出的不同等级轮廓
  [c,h]=imcontour(Img,3)

当显示轮廓时,Matlab为不同的级别呈现不同的颜色。我想只检索内轮廓的坐标,我该怎么做?在这张图片上,我展示了imcontour函数的输出,包括1级,2级,3级和4级。我只对3级图像的黄色部分感兴趣。

output of imcontour function for different levels

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但并非真正微不足道。 C返回的[C,h]=imcontour(Img,3)矩阵是ContourMatrix。这是一个2xN数组,包含绘制线条的所有顶点。

假设您有3个等高线(根据您对imcountour的第二个输入参数),并且想要找到第3个轮廓的顶点(我认为是黄色线)。您需要先跳过两个轮廓:

index = 1;
for ii=1:2             % skip 2 contours
   index = index + 1 + C(2,index);
end
N = C(2,index);        % number of vertices for 3rd contour
level = C(1,index);    % grey-level of 3rd contour
vertices = C(:,index+(1:N));