In Harris corner detection, as I see, the goal is to find out those points $(x,y)$ which makes $S(x,y)$ a large value for any direction of shifting, $$ S(x,y) = [\Delta x , \Delta y]M\left[ \begin{array}{c} \Delta x \\ \Delta y \\ \end{array} \right]$$, while $$M = \sum_{(x,y)}\left[ \begin{array}{cc} I_x(x,y)^2,& I_x(x,y)I_y(x,y) \\ I_x(x,y)I_y(x,y),& I_y(x,y)^2 \\ \end{array} \right]$$. Here is my problem, as the wiki tells me that $M$ should have 2 large eigenvalues in order to make $S(x,y)$ large in any direction. WHY large eigenvalue? HOW?


1 Answer 1


Basic linear algebra. M is a symmetric matrix, so there's a decomposition:

$M=Q^{\mathsf{T}} \Lambda Q$

where Q is a rotation and $\Lambda$ is a diagonal matrix.

We can rotate $[\text{$\Delta $x},\text{$\Delta $y}]$ by $Q^{\mathsf{T}}$

$Q^{\mathsf{T}} [\text{$\Delta $x},\text{$\Delta $y}]^{\mathsf{T}}=\left[\text{$\Delta $x}',\text{$\Delta $y}'\right]^{\mathsf{T}}$


$S(x,y)=\left[\text{$\Delta $x}',\text{$\Delta $y}'\right]\Lambda \left[\text{$\Delta $x}',\text{$\Delta $y}'\right]^{\mathsf{T}}=\Lambda _{1,1} \left(\text{$\Delta $x}'\right)^2+\Lambda _{2,2} \left(\text{$\Delta $y}'\right)^2$

So $S(x,y)$ is large in both directions $\text{$\Delta $x}'$ and $\text{$\Delta $y}'$, if both eigenvalues are large.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.