我的任务是实现一个3x3 x衍生图像滤镜,它使用central difference并同时执行y方向的高斯平滑。
我有一个x方向的任务公式(h = 1),我不确定我是否理解正确:
(f(x+h;y)-f(x-h;y)) / 2*h
相对于我当前的像素(x),我在当前像素之前取像素值+1,并从当前像素后面的位置-1上的像素中减去该值。这个值是否除以2然后或多或少是我在x方向上的第一顺序推导?是不是我使用的实际当前像素值?
答案 0 :(得分:1)
传统上,对于图像,中心不用于微分滤波器。推理可以如下:
鉴于这两点,特别是第一点,显然内核应该有奇数个元素,中心应该是0.基本上,如果内核是奇数,那么它将倾向于保留原始边缘。
采用一维示例,并应用您提供的公式,修剪边缘(强制它们为0),结果如下:
[0 1 3 2 10 12 8 11];
[0 -2 -1 -7 -10 2 1 0 ];
请注意,两个最高幅度值恰好在峰值处。尝试使用其他内核,包括一些没有中心值为0的内核,并查看结果。
(*)Kernel表示您正在执行的功能。在你提供的情况下,内核是[1 0 -1]