Computar campo vetorial gradiente de uma imagem
Eu quero ler em uma imagem - uma imagem de um círculo, e calcular o campo vetorial gradiente dessa imagem (ou seja, vetores apontando uniformemente e no normal para o círculo). Minha lógica está falhando um pouco, mas eu tenho:
<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>
se eu fosse simplesmente fazer o acima, recebo um campo vetorial, mas é simplesmente o gradiente de uma malha vazia (ou seja, apenas um campo vetorial do gradiente y = x). O que eu realmente quero é usar
<code>[dx,dy] = gradient(im); </code>
para detectar as arestas do círculo na imagem e, em seguida, calcule o campo vetorial de gradiente devido ao círculo na imagem. obviamente, atribuir u = x e v = y só me dará o campo vetorial de uma linha reta - então, basicamente, eu quero incorporar o gradiente da imagem nos vetores u e v. Como faço isso?