【发布时间】:2017-04-29 12:50:27
【问题描述】:
当将 Sobel 算子应用于 X 和 Y 方向的图像并从生成的 X/Y 向量计算角度 (atan2) 时,我似乎得到了 45 度步长的梯度方向。 Sobel 是否只能以 45 度的步长产生 8 个方向,或者我应该得到精确的角度还是可能是舍入误差?
我对这里提到的Gx 和Gy 使用sobel 卷积https://en.wikipedia.org/wiki/Sobel_operator
【问题讨论】:
-
Sobel 算子只会得到一个角度的梯度方向,而不是几个角度。你能展示一个 MCVE 吗?
-
抱歉,描述的不够充分。我正在计算 X 和 Y 的 sobel。更新的问题。
-
您仍然没有显示任何可以重现您的声明的代码。 Sobel,如果在浮动定位图像上计算,不应该给你这样的 45 度离散化。我猜你有整数舍入错误,但很难说没有看到任何代码。
-
@ImanolLuengo 从技术上讲是的,确实如此,它将主要增强这 8 个方向。我正在写一个答案
-
如果您只使用
Gx和Gy而不是对角 Sobel 运算符,并且您正在按照 Imanol 的建议使用atan2(Gx/Gy),那么您可能遇到浮点/整数问题