2012-04-22 14 views
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)に格納すると添え字インデックスが一致しない。どうしてこれなの?また、誰かが紙からこれを行うより良い方法があると思うなら、私はここにそれを愛するでしょう。ありがとう。

答えて

1

あなたは、MATLABの抜け目のエッジ検出コードを修正することにより、ワンステップで気の利いた+方向の検出を行うか、thisのような代替案を修正することができます。 Cannyは各ステップの向きを決定することで動作するので、各ピクセルの向きマップも返すようにcannyコードを変更できます。

+0

向きは気の利いたalgorithm.Iから入手することができることを指摘しておかげで、このになります。これは勾配をとって、私が質問にリンクしている論文の式11のように方位を計算することよりも簡単ですか? – brucezepplin

+0

おそらく...私は現在あなたのコードをデバッグするためにインストールされているmatlabを持っていないごめんなさい。 – sivann

関連する問題