Я хочу прочитать изображение - изображение круга и вычислить векторное поле градиента этого изображения (т.е. векторы, указывающие равномерно и в нормальном окружности). Моя логика немного сбивает меня, но у меня есть:
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)
Если бы я просто делал это, я получаю векторное поле, но это просто градиент пустой сетки (т.е. просто векторное поле градиента y = x). Я действительно хочу использовать
[dx,dy] = gradient(im);
чтобы обнаружить края окружности в изображении, а затем вычислить векторное поле градиента из-за круга на изображении. очевидно, присваивание u = x и v = y даст мне только векторное поле прямой линии - так что в основном, я хочу встроить градиент изображения в векторы u и v. Как это сделать?