【发布时间】:2017-01-03 11:34:41
【问题描述】:
我试图在 8 个不同方向上使用线结构元素对图像应用闭合操作。最初我想将它应用于[0 .. 360] 范围内的角度,但后来我意识到我的结构元素是对称的,所以我想改用[0 .. 180] 范围。然而,我后来意识到,Matlab 的结构元素函数(strel)对于相隔 180 度的角度不会产生对称的结果。考虑:
>> strel('line', 11, 120)
ans =
Flat STREL object containing 9 neighbors.
Neighborhood:
1 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 1
>>
还有:
>> strel('line', 11, 300)
ans =
Flat STREL object containing 9 neighbors.
Neighborhood:
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 0 0 0 0 1 0
0 0 0 0 0 1 0
0 0 0 0 0 0 1
我希望上面的 2 个结构元素应该是对称的,因为 300 = 120 + 180。为什么 Matlab 的 strel 函数不是这样?
【问题讨论】:
-
这只是一个近似值。我不希望得到完全相同的结果。稍微增加或减少你的角度,我相信你会在某个时候得到相同的结果。如果您真的想知道为什么应该联系 Mathworks 并询问他们。我怀疑我们中的许多人都看过他们的源代码:)