2015-03-12 2 views
0

Я новичок и стараюсь узнать об этом.Расчет градиента с помощью оператора prewitt

Я искал все виды ссылок в Google, но было что-то около . Я был бы счастлив, если бы вы могли рассказать мне, как выполнять вычисления по градиенту, но вычисляя на операторе prewitt.

например: у вас есть изображение 5X5 -> I (x, y) = | 4-i-j |;
i, j = 0..4;

Как вычислить с помощью оператора prewitt (Gx и Gy) ??

ответ

1

Градиентные вычисления на изображениях выполняются с использованием математической операции convolution. Ниже приведена формула для свертки двух матриц f и g.

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] 

Некоторые языки/библиотеки реализовать свертку для вас.

  • MATLAB язык имеет встроенный conv2
  • Питон библиотека NumPy как функция numpy.convolve