%image compression using PCA(principal Component Analysis)
clc
clear
close all
Data=imread('coloredChips.png');
Data_gray=rgb2gray(Data);
Data_grayD=im2double(Data_gray);
figure,set(gcf,'numbertitle','off','name','Grayscale Image')
imshow(Data_gray);
Data_mean=mean(Data_grayD);
[a,b]=size(Data_gray);
Data_meanNew=repmat(Data_mean,a,1);
Data_Adjust=Data_grayD-Data_meanNew;
imshow(Data_Adjust)
%figure
%imshow(Data_meanNew)
cov_Data=cov(Data_Adjust);
%imshow(cov_Data)
[V,D]=eig(cov_Data);
Data_Adjust_trans=(Data_Adjust)';
%Reduced_V
PCs=input('Enter number of Pc column needed')
PCs=b-PCs;
Reduced_V=V;
for ii=1:PCs
Reduced_V(:,1)=[];
end
Y=Reduced_V'*Data_Adjust_trans;
Compressed_Data=Reduced_V*Y;
Compressed_Data=Compressed_Data'+Data_meanNew;
figure,set(gcf,'numbertitle','off','name','Compressed Image')
imshow(Compressed_Data)