2014-11-02 36 views
1

我想应用一个核心过滤器来计算中心差异x梯度。一个直接的方法似乎是应用以下核心过滤:二维图像卷积 - X梯度的中心差异

 
A = [ 
    0 0 0 
    -1 0 1 
    0 0 0 
] 

但由于它的价值总和为零,我该如何规范呢?乘以系数0.5合法吗?如果是这样,有人可以解释为什么?

而且,我依稀记得,这可能需要应用类似

 
B = [ 
    0 1 0 
    0 2 0 
    0 1 0 
] 

应用A之前,也就是,A * (B * f)其中f是源图像会比A * f好,可能有人帮助我了解B做什么以及为什么它更好?

回答

0

我认为Sobel and Scharr operators和它的解释将澄清这个问题给你。如果这个链接将被删除,只是谷歌的“索贝尔运营商” - 这是众所周知的,并在互联网上随处可见。用两个词来表示:Sobel dx算子是oy方向模糊和简单中心ox差异的组合。模糊执行减少与纯中央差异运算符相关联的伪像。 Scharr算子对于旋转对称性和“在傅里叶域中使加权均方角度误差最小化的优化结果”更好地进行了优化。它的理论有点复杂,因此您最好访问wiki或阅读Scharr paper

+0

尽管此链接可能会回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – laalto 2014-11-03 08:03:23

+0

它是维基链接。有人知道维基链接的例子变得无效吗?无论如何,链接名称“索贝尔操作员”是一个很好的线索谷歌它如果维基会突然消失。 – 2014-11-03 16:32:12

+0

该评论是质量极低的帖子评论队列中的一个罐装选项,旨在用于链接专用答案(而不是垃圾邮件)。关于SO的答案应该是自我支持的,不仅依赖于链接的材料。 http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers/8259 – laalto 2014-11-03 16:40:31

0

要规格化图像内核,除以元素的绝对值的总和。

因此,对于您的第一个内核,您有非零元素[-1,1],所以| -1 | + | 1 | = 1 + 1 = 2。所以乘以1/2 = 0.5来归一化。对于边缘检测,您不一定要进行归一化。对图像核进行归一化通常不会避免扭曲像素的大小。当你试图检测它们时,你通常希望这样做强调边缘。内核B要做两件事,首先它会模糊图像(所有相同的带符号的非零元素),其次它只在y方向上运行。在你的A内核之前应用它的想法是它会在y方向上进行(排序)一个无边缘检测。想法是在y方向上抑制沿x方向的检测边缘。

不记得使用这个,但它有一定程度的意义。