Вычислить градиентное векторное поле изображения

Я хочу прочитать изображение - изображение круга и вычислить поле вектора градиента этого изображения (т.е. векторы, направленные равномерно и перпендикулярно к окружности). Моя логика немного подводит меня, но у меня есть:

<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>

если бы я просто сделал вышеупомянутое, я получил бы векторное поле, но это просто градиент пустой сетки (т. е. просто векторное поле градиента y = x). На самом деле я хочу использовать

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

определить края окружности на изображении, а затем вычислить векторное поле градиента из-за окружности на изображении. очевидно, что присвоение u = x и v = y даст мне только векторное поле прямой линии - поэтому, в сущности, я хочу встроить градиент изображения в векторы u и v. Как мне это сделать?

my result

image that i am getting error with

Ответы на вопрос(1)

Ваш ответ на вопрос