1

こんにちは、 http: //www.cs.swan.ac.uk/~csjason/papers/xxmm-pami2008.pdf の式 11 のように、画像勾配またはキャニー エッジ検出器から画像の境界方向を取得しようとしています。

私は現在持っています:

 clear all
 Img = imread('littlecircle.png');
 Img = Img(:,:,1);
 Img = double(Img);
 w = size(Img,1);               % width size
 h = size(Img,2);               % height size
 [Ix,Iy] = gradient(Img);       %gradient of image

 i=1;     %iteration for magnetic field loop
 b=0;     %initialize b to zero

 % Magnetic Field
 for pxRow = 1:h % fixed pixel row
 for pxCol = 1:w % fixed pixel column

 for r = 1:h % row of distant pixel
 for c = 1:w % column of distant pixel

 O(c,r) = [-Iy(c,r),Ix(c,r)];      % O(x) = (-1).^lambda(-Iy(x),Ix(x))    --ERROR HERE

 end
 end
 B(i) = {O}; % filling a cell array with results. read below
 i = i+1;
 end
 end

ただし、O(c,r) に格納するときに添字インデックスの不一致が発生します。どうしてこれなの?また、紙からこれを行うためのより良い方法があると誰かが考えている場合は、ここに書きたいと思います。ありがとう。

4

1 に答える 1

1

matlab のキャニ​​ー エッジ検出コードを変更するか、このような代替コードを変更することで、1 つのステップでキャニー + 方向検出を行うことができます。Canny は各ステップで方向を決定することで機能するため、キャニー コードを変更して、各ピクセルの方向マップも返すことができます。

于 2012-04-22T14:40:33.787 に答える