Вычислить градиентное векторное поле изображения
Я хочу прочитать изображение - изображение круга и вычислить поле вектора градиента этого изображения (т.е. векторы, направленные равномерно и перпендикулярно к окружности). Моя логика немного подводит меня, но у меня есть:
<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. Как мне это сделать?