# Eigen Values and Eigen Vectors in Image Processing

I have been reading about eigen values and eigen vectors but I haven't been able to find any decent explanation relating their application in Image Processing / Computer Vision.

For example, How can those be used for face detection and eye detection? Can somebody please through some light on this?

I will try giving you some intuition.
The SVD says each matrix can be decomposed into 3 operations - Rotation, Stretching (Scaling) and the another Rotation.

What matters is which directions are scaled and how.
Directions are vectors (Pointing some direction).

The SVD has many uses in Linear Algebra.
One its most known use is Low Rank Approximation of a matrix.
Low rank meaning to try represent the same data with lower number of degrees of freedom.

It is immediately rings a bell for compression and dimensionality reduction (Also the SVD is practically the basis for Karhunen Loève Compression).

## Image Compression

Think of decomposing the image into patches of $$n \times n$$ (Where usually $$n = 8$$ or $$n = 16$$).
Now build a matrix of those patches (Each patch as a column).
Then, using the SVD you will be able to find a low rank representation of this image which is basically a compression.
Why isn't it used?
Because this is the most effective compression in $${L}_{2}$$ sense yet the base it uses is adaptive to the image. Namely with each compressed image you'll have also to deliver the base which hurts the practical compression ratio.
But this is the idea.

## Eigen Faces

This is a nice implementation of idea using SVD.
You can read about in the great article on Wikipedia - Eigen Face (Including Code).
Basically, again, you can use the low rank representation either to compress the data base of faces and / or use it as a method to recognize faces.

## Compressed Sensing

The SVD is heavily used in the Compressed Sensing frame work.
For instance have a look on the Dictionary Learning method called - K-SVD.

## Image Smoothing

The SVD is used to decompose the Tensor Structure Vector and infer about the directions of gradients in the patch.
For instance look at the work: Joachim Weickert - Coherence Enhancing Diffusion of Colour Images.

## Feature Extractor (Corner Detection)

The Eigen Decomposition (Eigen Values) is used to analyze the structure tensor in order to detect corners.
Harris Corner Detector uses trace and determinant to approximate the smallest eigenvalue, to save computations. The Shi-Tomasi variant directly computes the smallest eigenvalue.

The Wikipedia article about the SVD is really great place start reading about it - Singular Value Decomposition (SVD).

Remark: Information on the smoothing and corner detection is credited to @Cris Luengo.

• Some additions: Eigenvalues are also used in corner detection; Harris uses trace and determinant to approximate the smallest eigenvalue, to save computations; but Shi-Tomasi directly computes the smallest eigenvalue. Weickert’s coherence enhancing anisotropic diffusion also uses the eigenvalues of the structure tensor. Commented Apr 1 at 13:10
• @CrisLuengo, Would you mind if I added those to the answer?
– Royi
Commented Apr 1 at 14:02
• No, please do, that's why I left a comment rather than an answer. Commented Apr 1 at 14:48
• @CrisLuengo, Done.
– Royi
Commented Apr 1 at 15:02