Objective:
Is to decompress the image using SVD (SINGLE VALUE DECOMPOSITION) and study the observation.
Assumption:
Single value decomposition: decompose the bigger matrix into smaller.
Image of size M x N (M cross N) can be consider as bigger matrix and using SVD we can decompose that into further smaller matrix hence decomposing of image is obtained.
Tools used:
Initially I stared with octave (the high-level language primarily intended for numerical computations) and i proceed well but when tried to convert image to double conversion by im2double function I got an error saying unidentified line . This is because octave has a bug in im2double for uint16 images, I found this piece of information from one of community site forum
So now it a time to play with Mat lab instead of octave .
Observation and legends:
I took two type of image for compression. Sizes of the images are 400×400.
1. An image that covers less details of the snap.
2. An image that covers more details of the snap.
I apply svd so as to obtain U,S,V matrix and changed the K values to both of images to study the observation.
when K = 400
80 % |
![]() |
![]() |
when K = 300
60 % |
![]() |
![]() |
when K = 250
50% |
![]() |
![]() |
when k = 150 30% |
![]() |
![]() quality of image changes |
when k = 50 10% |
![]() |
![]() |
when K =25 5 % |
![]() quality of image changes |
|
when k = 12.5
2.5 % |
![]() |
Mat lab code :
close all
[A,map]=imread(‘h:cccc.jpg’);
Im2D=im2double(A,’indexed’);
imshow(Im2D,map)
[u,s,v]=svd(Im2D);
C=zeros(size(Im2D));
k=10; // k values will be changed
for
j=1:k
C=C+s(j,j)*u(:,j)*v(:,j).’;
end
C=floor(C);
imshow(C,map)
k=find(C<1);
C(k)=1;
set(gcf,’Unit’,’inches’,’Paperposition’,[0,0,2,1])
print -djpeg ‘lenak.jpg’
Result
4 Comments
at 8:22 PM - 19th February 2011 Permalink
I want to ask you, I have problem here,,,
what matrices that we call subspace from SVD factorization?
is it U,,V or T?
Thank you
at 3:52 AM - 20th February 2011 Permalink
Yes , you are right
to be more appropriate it is U V S.
Where U corresponds to rows , V corresponds to columns and S corresponds to diagonals.
at 7:55 AM - 20th February 2011 Permalink
yes, that’s U S V,,,
do you know what matrices that call subspace?
is it u s or v???
thank you…
at 12:02 PM - 22nd February 2011 Permalink
Lets say A be matrix of size m X n , then n columns is a linear subspace of n-dimensional Euclidean space. So it can be V.
I also believe that there are four fundamental subspace, and row space is one among.If that is going to be case there is a possibly for U S also.
thank you
Post a Comment