Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Computer Vision, Corners and Eigenvalues

  1. Mar 13, 2009 #1
    This question is about the use of eigenvalues in a specific application.
    The subject is Computer Vision and the topic is the Harris Corner detection method. The attached file is PDF document of slides that show the math in a bit more detail.

    In the slides, a corner is located by looking at the image brightness gradient in a region (say 5 x5 neighboring pixel) about each pixel in the image. The gradient value (formula) is

    D(u,v) = [u v]C[u v]T = constant. C is the co-variance matrix for the neighborhood about a given pixel.

    C is then diagonalized with eigenvalues, and they and their eigenvectors indicate the direction and strength of the brightness gradient.

    But I’m puzzled why eigenvalues are calculated at all. Isn’t calculating D(u,v) for each pixel enough?

    I am aware that eigenvalues provide a root to the homogeneous equation Ax=0, but why try and find roots at all in this situation? And what is the equation we trying to solve in this case?

    Attached Files:

  2. jcsd
  3. Mar 13, 2009 #2
    The directions in which the gradient variation is maximal/minimal are given by the eigenvectors of D(u,v), and the magnitude of these maxima, minima is given by the eigenvalues. Supposedly a corner is characterized by the condition that both eigenvalues are large, which is why the are computed.
  4. Mar 14, 2009 #3
  5. Mar 15, 2009 #4
    I don't think this has to do with principal component analysis, but it was a thoughtful suggestion.

    I think you are right yyat. D(u,v) calculates the change in intensity about a point. But its essential term is I(i+u,j+v)-I(i,j). Is this a difference equation - effectively a discrete derivative? Or is the derivative of this equation what we want to set to zero and solve.

    In the PDF the Taylor expansion is for I(i+u,j+v)=I(i,j)+Ix(u)+Iy(v)...(where Ix=dI/dx, and Iy=dI/dy, and x and y are in the i and j direction). But is this applied to the difference equation or to its derivative?

    By the way, i and j represent pixel indices and have nothing to do with unit directional vectors.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook