2

如果我有一个结构元素,看起来像这样(原点位于 SE 的中心):

0  0  0
0  0  0 
0  0  0

如果我对二进制图像执行腐蚀/膨胀,结果全是 0 或 1。有人可以向我解释一下吗?(通过matlab检查)
非常感谢。

4

1 回答 1

3

你有一个完全有效的 SE。它是一个扁平的正方形,在每个图像处理库中都被普遍接受和使用。

现在,了解平面和非平面结构元素(或结构函数)之间的区别和相似性很重要。相似之处在于它们在某个社区内运作。对于基本正方形元素,邻域可以用 3x3 矩阵表示,其中每个元素都在元素的邻域中(例如,对于菱形 SE,它也是一个 3x3 矩阵,但角不属于邻里)。在 Matlab 中,这种特定的邻域关系由ones(3, 3)或简单地表示[1 1 1; 1 1 1; 1 1 1]。扁平化和非扁平化 SE 的区别在于strelMatlab中的功能就是这样。非平坦 SE 意味着它可以不同地对待邻居,因此它并不完全依赖于值 0(腐蚀和膨胀的定义稍作修改以处理这种情况)。例如,正方形 SE 在 Matlab 中正确定义为strel('arbitrary', ones(3, 3), zeros(3, 3))(指定zeros(3, 3)为第二个参数基本上是一个错误,因为你说你没有邻居)。另一方面,可以用无限的方式定义非平面正方形,其中一种可能是strel('arbitrary', ones(3, 3), [-1 -1 -1; -1 0 -1; -1 -1 -1])

总而言之,您很可能使用strel不正确。

于 2013-01-01T21:27:40.663 回答