Calcular el campo de vector gradiente de una imagen
Quiero leer en una imagen, una imagen de un círculo, y calcular el campo de vector de gradiente de esa imagen (es decir, vectores que señalan de manera uniforme y normal al círculo). Mi lógica me está fallando un poco, pero tengo:
<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>
si tuviera que hacer simplemente lo anterior, obtendré un campo vectorial, pero es simplemente el gradiente de una malla vacía (es decir, solo un campo vectorial del gradiente y = x). Lo que realmente quiero es usar
<code>[dx,dy] = gradient(im); </code>
para detectar los bordes del círculo en la imagen y luego calcular el campo de vector gradiente debido al círculo en la imagen. obviamente, la asignación de u = x y v = y solo me dará el campo vectorial de una línea recta; por lo tanto, quiero incrustar el degradado de la imagen en los vectores u y v. ¿Cómo hago esto?