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 apuntan uniformemente y en forma normal al círculo). Mi lógica me está fallando un poco, pero tengo:Calcular el campo de vector de degradado de una imagen
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)
si tuviera que simplemente hacer lo anterior, aparece un campo vectorial, pero es simplemente la pendiente de una malla vacía (es decir, sólo un campo vectorial del gradiente y = x). Lo que realmente quiero es utilizar
[dx,dy] = gradient(im);
para detectar los bordes del círculo en la imagen, y luego calcular el campo vectorial gradiente por el círculo en la imagen. Obviamente, asignar u = x y v = y solo me dará el campo vectorial de una línea recta, así que bascialmente, quiero incrustar el gradiente de la imagen en los vectores uy v. ¿Cómo hago esto?
Se puede publicar littlecircle.png? –