【发布时间】:2013-04-09 02:06:44
【问题描述】:
x-导数 Sobel 看起来是这样的:
-1 0 +1
-2 0 +2
-1 0 +1
假设我的图像中有两个样本看起来像这样(0=黑色,1=白色):
0 0 1 1 0 0
0 0 1 & 1 0 0
0 0 1 1 0 0
如果我执行卷积,我将分别得到 4 和 -4。
所以我的自然反应是将结果标准化 8 并将其转换 0.5 - 那是对的吗? (我想知道找不到维基百科等提及任何规范化)
编辑: 我使用 Sobel 滤波器创建一个 2D 结构张量(带有导数 dX 和 dY):
A B
Structure Tensor = C D
with A = dx^2
B = dx*dy
C = dx*dy
D = dy^2
最终我想将结果存储在 [0,1] 中,但现在我只是想知道是否必须规范化 Sobel 结果(默认情况下,不仅仅是为了存储它),即:
A = dx*dx
//OR
A = (dx/8.0)*(dx/8.0)
//OR
A = (dx/8.0+0.5)*(dx/8.0+0.5)
【问题讨论】:
-
它只取决于您的应用程序。如果目标是存储它并将结果可视化为位图,那么您应该平移和缩放以使其落在 0..255 范围内。你的目标是什么?
-
“所以我的自然反应是将结果标准化 8 并将其转换 0.5 - 对吗?”你对什么的回应?
-
@WhitAngl:存储和可视化是最终目标(所以我会在最后进行适当的规范化/翻译),但我必须在两者之间进行更多计算。而且我想知道 Sobel 过滤器是否必须始终标准化(请参阅更新的问题)。
-
@Lajos Arpad:对获得不再在输入范围内的结果的自然反应,即 [0=black to 1=white]
-
对任何卷积进行归一化的唯一原因是我想查看结果,或者算法需要归一化。如果您只是将生成的系数用于进一步计算,则没有理由进行归一化。
标签: image-processing discrete-mathematics