brucezepplin
brucezepplin

Reputation: 9752

Edge orientation

Hi I am trying to get the boundary orientation of an image from the image gradient or canny edge detector as in equation 11 of http://www.cs.swan.ac.uk/~csjason/papers/xxmm-pami2008.pdf

I currently have:

 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

However I am getting a subscript indices mismatch when storing into O(c,r). Why is this? and also if anyone thinks there is a better way to do this from the paper then I would love to here it. Thanks.

Upvotes: 1

Views: 3057

Answers (1)

sivann
sivann

Reputation: 2131

You could do the canny + orientation detection in one step, by modifying matlab's canny edge detection code or modify an alternative like this. Canny works by determining the orientation on each step, so you could modify the canny code to also return an orientation map for each pixel.

Upvotes: 1

Related Questions