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?


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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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