用prewitt算子计算梯度

时间:2015-03-12 15:45:55

标签: computer-vision gradient

我是新手,并试图了解它。

我搜索了谷歌上的各种链接,但有一些关于 如果你能告诉我如何对梯度进行计算,我会很高兴但是通过计算prewitt算子。

例如: 你有图像5X5 - > I(x,y)= | 4-i-j |;
                                           我,j = 0..4;

如何用prewitt算子(Gx和Gy)计算?

2 个答案:

答案 0 :(得分:1)

使用名为convolution的数学运算执行图像的梯度计算。下面给出了两个矩阵fg的卷积公式。

enter image description here

在伪代码中,算法将是:

let f be the prewitt (convolution) operator
let g be the image
let h be the convolution result

for x from 1 to height of h
    for y from 1 to width of h
       h[x,y] = 0;
       for n1 from top to bottom of f
           for n2 from left to right of f
               h[x,y] += f[n1,n2]*g[x-n1,y-n2]

有些语言/库会为您实现卷积。

答案 1 :(得分:0)

python的热门scipy包有一个内置函数prewitt,用于准确计算您描述的内容:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.filters.prewitt.html#scipy.ndimage.filters.prewitt