【发布时间】:2011-10-19 08:50:01
【问题描述】:
假设我有一个整数值矩阵,例如显示的矩阵:
在上图中,暗边界由数字 0 表示,宽度为 一个像素(请忽略缩放伪影)。
有没有一种有效的方法可以在 MATLAB 中添加缺失的暗边界? (白色圆圈显示缺少边界的位置示例)。
我想保证在 4-wise 像素连通性下,每个彩色区域都被深色边界完全包围。
请注意,解决方案必然会将非零值翻转为零。
所讨论的矩阵是 uint32 类型(以上面的颜色显示)。
编辑:原图在这里:
【问题讨论】:
-
比 O(n) 效率更高,其中 n 是图像中的像素数?
-
您要查找的关键字是形态学运算:膨胀/腐蚀等。MATLAB + IPT 有很多函数。
-
O(n) 可能会很好!虽然我想避免循环,如果可能的话。
-
谢谢@Amro。我认为有一种方法可以通过随后对
diff的调用以及一些形态学来做到这一点,但没有想出任何有效的方法。 -
@AmV: 你能发一张没有白圈的图片吗?