使用保持显示标记的对象

时间:2014-02-10 17:29:00

标签: matlab image-processing label figure

所以我有CT扫描图像。我想显示升主动脉和降主动脉,但没有别的。我有大部分代码都工作,唯一不能得到的是当它循环遍历标签列表时,它不会保持升序到图形,所以我只是以降序结束或者可能使更有意义的是,它只显示一个对象,它应该显示2.

%% set boundaries and get areas

%set boundaries and label objects
[B,L] = bwboundaries(AAB,'noholes');

%get the Filled Area of these objects
area = regionprops(L,'FilledArea');

%% display objects based on area

figure;
for k=1:size(area)

   if (area(k).FilledArea > 1500)
       imshow(L==(k));
       hold on;
   end
end

我检查了区域值,1500是显示两者的合适数量。

AAB是我从原始扫描中创建的二进制图像。

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

imshow不支持持有,就像情节一样。所以它只是打印在上一张图像上。

如果您只有两张图片,则可以使用imshowpair代替。或者为每个标签指定不同的颜色。

或做类似的事情:

mask=zeros(size(L));
figure;
for k=1:size(area)

   if (area(k).FilledArea > 1500)
       mask=mask+(L==(k));
   end
end

imshow(mask>0);