help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: octave equivalent for Harris corner detector


From: Seetha Parameswaran
Subject: Re: octave equivalent for Harris corner detector
Date: Mon, 18 Feb 2013 07:41:53 +0530

thank you
I am trying.

When tested with a 'L-shaped object', the code I gave is identifying a point inside the L, while matlab corner function is giving the endpoints and the corner of L correctly.

Maybe the code needs some optimisation, thats were i need help.



On Sun, Feb 17, 2013 at 10:34 PM, Carnë Draug <address@hidden> wrote:
On 14 February 2013 18:00,  <address@hidden> wrote:
> Message: 1
> Date: Thu, 14 Feb 2013 22:00:44 +0530
> From: Seetha Parameswaran <address@hidden>
> To: "address@hidden" <address@hidden>
> Subject: octave equivalent for Harris corner detector
> Message-ID:
>         <address@hidden>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hi all,
>
> Is there any efficient Octave equivalent for Matlab corner function to
> detect corners using Harris corner detector.
>
> the function i use currently is as given below. But it is not detecting the
> corners correctly.
>
> function [corners,R] = harris(I,sigma,Rmin)
> %    I - image
> %    sigma - determines the size of the window function (gaussian)
> %    Rmin - threshold for determining corners (cornerness measure R>Rmin)
> % OUTPUT
> %    corners [2 n_corners] - x and y coordinates of found corners
> %    R - the 'cornerness measure' map
>
> k = 0.06;
> % Empirical testing  has indicated that values of k = 0.04 to 0.06
> % Compute gradiants
> [Ix,Iy] = gradient(double(I));
> gs = fspecial('gaussian',6*sigma,sigma); % size of window = 6*sigma
> A = filter2(gs,Ix.*Ix);
> B = filter2(gs,Iy.*Iy);
> C = filter2(gs,Ix.*Iy);
>
> % Compute determinant and trace of M; and cornerness measure R
> detM = A.*B-C.^2;
> traceM = A+B;
> R = detM-k*traceM.^2;
>
> % Threshold R and find its local maxima
> thresh = R>Rmin;
> maxima = local_maxima(R);
> corners_mask = thresh & maxima;
> [r,c] = find(corners_mask);
> corners = [c(:)'; r(:)'];

The matlab function to perform this is named "corner" but it's not
implemented yet. If you can write it, I'll gladly add it to the image
package.

Carnë



--

--
Regards,
Seetha

reply via email to

[Prev in Thread] Current Thread [Next in Thread]