gpt4 book ai didi

matlab - 在 MATLAB 中查找标签图像的轮廓/边界

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:49 25 4
gpt4 key购买 nike

我想知道是否有一种简单的方法可以将标签矩阵转换为一个矩阵,在该矩阵中,两个标记区域相交的地方有线,其他地方为零,这样您就可以基本上将区域的边界叠加到标签所在的原始图像上作为流行的 label2rgb 函数的另一种可视化替代方法生成。

我问的原因是我目前正在处理一些超像素代码,所以我有很多标记区域(500 到 5,000)。我一直在使用 rgblabel 将超像素标签转换为彩色区域,打开保持,然后将它们显示在原始图像上,并关闭“AlphaData”以使其半透明。然而,有这么多区域,这可能很难从视觉上进行分析,我认为区域的简单边界会更好。谢谢。

[编辑] @O_O:尽管我现在对 Jonas 的第二个建议非常满意,但我已经附上了样本标签矩阵和目标结果。第二天也会尝试 user616736 的方法。我也uploaded此处提供 .mat 格式的示例图像,以防其他人想要试验它们。

标签矩阵:

Label Matrix

期望的结果:

Desired Result

最佳答案

一种方法是遍历所有标签并消除除边框以外的所有标签,就像这样(其中 lblImg 是您的标签矩阵)

nLabels = max(lblImg(:));
for lbl = 1:nLabels
currenObject = lblImg == lbl; %# find pixels belonging to current label
lblImg(imerode(currentObject,strel('disk',1))) = 0; %# mask all but the border
end

imshow(label2rgb(lblImg))

编辑

一种更快的查找边界的方法,是使用标记图像的梯度

[gx,gy] = gradient(lblImg);
lblImg((gx.^2+gy.^2)==0) = 0;

imshow(label2rgb(lblImg))

关于matlab - 在 MATLAB 中查找标签图像的轮廓/边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com