二进制面具的边界

时间:2014-03-04 17:22:16

标签: matlab image-processing

我有一个二进制掩码,我希望这个掩码的边框标有一个值,例如值2.最好是边框宽度为特定的百分比。换句话说,如果我们可以动态更改边框遮罩,那将是完美的。有谁能帮我高效,快捷地帮助我?

非常感谢,非常感谢您的帮助!

enter image description here

2 个答案:

答案 0 :(得分:0)

这不是一个答案,而是更多的指导性评论。您可以使用的工具 - IMDILATE(用于更改边界的宽度)和BWMORPH(用于计算宽度的变化,可以探索其骨架化选项),用于表示边界像素的二进制图像。这就是我能想到的全部内容。

答案 1 :(得分:0)

由于您拥有图像处理工具箱,因此使用bwperimbwboundaries可以轻松完成此操作。

bwperim的示例:

BW1 = imread('circbw.tif');
BW2 = bwperim(BW1,8);
figure; subplot(121);imshow(BW1);subplot(122);imshow(BW2)

enter image description here

但是,要更改边框宽度,您必须合并两个图像(BW3 = BW1 | BW2;)并重新运行bwperimBW4 = bwperim(BW3,8);)。因此,对于任何超过单个像素宽度边界的内容,我都会使用imdilatexor蒙版:

BW1 = imread('circbw.tif');
BW2 = imdilate(BW1,strel('disk',2));
BW_border = xor(BW2,BW1);

enter image description here