画像(円の画像)を読み取り、その画像の勾配ベクトル場(つまり、円に均一に垂直に向いているベクトル)を計算したいと思います。私の論理は私を少し失敗させていますが、私は持っています:
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に埋め込みます。これを行うにはどうすればよいですか。