I have read few image enhancement papers, where an image is enhanced in transformed domain using either DCT (discrete cosine transform) or DWT (discrete wavelet transform) with SVD (singular value decomposition). An example is given in Enhancement of low contrast satellite images using discrete cosine transform and singular value decomposition, 2011.

In these works, once the image matrix is factored into three matrices (say $U$, $S$, and $V$) using the SVD, then only the maximum value of matrix S is taken for processing. Can anyone please tell that why only the maximum value is taken for processing?

  • $\begingroup$ I have expanded the reference. The three links seemed to refer to the same paper. Please re-edit if I made a mistake. $\endgroup$ Commented Oct 17, 2016 at 11:06

2 Answers 2


The SVD Decompose the image into the (One way to look at it) many matrices.
For instance, given an Image $ I $ its SVD is given by:

$$ I = U S {V}^{T} = \sum_{i=1}^{\textrm{rank}(I)} {s}_{i} {u}_{i} {v}_{i}^{T} $$

As you can see, the image is decomposed into linear combination of matrices (Given by $ {u}_{i} {v}_{i}^{T} $) where the weight of the $ i $ -th matrix is given by $ {s}_{i} $ which is the $ i $-th Singular Value (Usually they are organized in descending order).

The dominant features are usually goes with the large Singular Values (Moreover, the smallest one usually describe noise). I guess methods want to focus on the large dominant features and avoid dealing with noise hence it makes sense to deal only with the dominant matrix in this decomposition.

By the way, I'd experiment with trying to work on the next ones as well.
In addition, on the recompositon process I'd neglect the last few to have "Simple Denoising".

One should be aware that the SVD of the whole image might be time and memory consuming when dealing with large images.

Moreover, it makes sense to stack few image patches into large matrix and then apply the SVD.
This might extract what is common to all patches (Linear Dimensionality Reduction).


[EDIT: some code made available] A common framework for (multivariate) image processing is to suppose that its useful features (edges, textures, spectral correlation) contain redundancy, while the noise is pretty uncorrelated. A major preprocessing task consists in decorrelating or compacting the image features prior to processing, hoping to separate them from unwanted noises better in some transformed domain, or by projection onto a set of vectors $v_i$.

One holy grail in image $I$ decomposition is to find the best $M$-term approximation, so that a norm $\|I-\sum_1^M \lambda_i v_i\|$ is minimal, when $M$ is small with respect to the size of the image. Such a problem is generally very difficult. So many methods try to find the best $v_i$s or $\lambda_i$ (or both) under some assumptions, or using optimization methods.

Two main types of linear transformations are usually considered:

  1. adaptive transformations, dependent on image characteristics
  2. fixed transformations, independent of images, but generally designed to capture features of image classes or models

SVD, PCA, Karhunen-Loève transformations belong to Type 1. Fourier, DCT and wavelets belong to Type 2. However, they are somehow related, and under some assumptions, Fourier derives from PCA, and DCT is a good approximation to Karhunen-Loève. They are all related to minimum squared norm formulations, provide "orthogonal" vectors $v_i$, and very often, one considers that the energy of the projection coefficients $\lambda_i$ onto the $v_i$s are good enough representations for practical purposes, less efficient than best $M$-terms, but easier to compute.

Now, the bigger the $\lambda_i^2$, the more it contributes to the energy of the image. Resultingly, as long as the vectors have the same norm, it is a good bet to select the most important projection coefficients $|\lambda_i$| (in magnitude), to provide a sparse representation of the image.

Then, depending on the direction (spatial, spectral), fixed and adapted transformations can be combined, such as PCA (or other learnt linear transformations) and wavelets. Three additional sources on multivariate denoising for you:

  • $\begingroup$ Is there a code which implements any of the methods you presented? $\endgroup$
    – Royi
    Commented Apr 13, 2016 at 6:16
  • $\begingroup$ @Drazick thank you for asking for code, it pushed me to make it available $\endgroup$ Commented Apr 24, 2016 at 10:19
  • $\begingroup$ Thank you for sharing. I'm currently playing with Wavelets and actually looking for simple and effective technique. $\endgroup$
    – Royi
    Commented Apr 24, 2016 at 14:15
  • $\begingroup$ @Drazick While it proved effective, I would not call it simple... Simple and effective, that is what we are all looking for $\endgroup$ Commented Apr 24, 2016 at 17:28
  • $\begingroup$ I looked at Florian Luisier's work and at least for Orthonormal Wavelets it is pretty simple. I'm looking for something to be Spatial yet not too complex. The MMSE and MAP are simple but maybe there is something little more complex yet much better? $\endgroup$
    – Royi
    Commented Apr 25, 2016 at 7:45

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.