Oblicz pole wektora gradientu obrazu

Chcę odczytać na obrazie - obraz koła i obliczyć pole wektora gradientu tego obrazu (tj. Wektory wskazujące jednolicie i normalnie do okręgu). Moja logika trochę mi zawodzi, ale mam:

<code>clear all;
im = im2double(imread('littlecircle.png'));
im = double(im);
[nr,nc]=size(im);
[dx,dy] = gradient(im);
[x y] = meshgrid(1:nc,1:nr);
u = x;
v = y;
quiver(x,y,u,v)
</code>

jeśli miałbym po prostu wykonać powyższe, otrzymuję pole wektorowe, ale jest to po prostu gradient pustej siatki (tj. tylko pole wektorowe gradientu y = x). To czego chcę, to użyć

<code>[dx,dy] = gradient(im);
</code>

aby wykryć krawędzie okręgu na obrazie, a następnie oblicz pole gradientu wektora z powodu okręgu na obrazie. oczywiście przypisanie u = x i v = y da mi tylko pole wektorowe prostej - tak więc chcę osadzić gradient obrazu w wektorach u i v. Jak to zrobić?

questionAnswers(1)

yourAnswerToTheQuestion