how can I show the denoised image after applying pca to a noisy image.

im=imread('cameraman.tif'); im1=imresize(im,[50,50]); im=double(im1); figure(1);imshow(im,[]); sig=10; noi=sig*randn(size(im)); data=im+noi; figure(2);imshow(data,[]);
[m,n]=size(data);
mn = mean(data,2); data = data-repmat(mn,1,n); covari=data*data'/n-1; [PC,V] = eig(covari); diav = diag(V); [junk, rindices] = sort(-1*diav); V = diav(rindices); PC = PC(:,rindices);

3 Comments

In this uncommented, unformatted code, what is the denoised image? Which variable and what is its size? To show it you'd use imshow().
im=imread('cameraman.tif');
im1=imresize(im,[50,50]);
im=double(im1);
figure(1);imshow(im,[]);
sig=10;
noi=sig*randn(size(im));
data=im+noi; %noised image
figure(2);
imshow(data,[]);
[m,n]=size(data);
mn = mean(data,2);
data = data-repmat(mn,1,n);
covari=data*data'/n-1;
[PC,V] = eig(covari);
diav = diag(V);
[junk, rindices] = sort(-1*diav);
V = diav(rindices);
PC = PC(:,rindices);
PC represents principal components of noisy image i.e data. Now pls help me how to get the image from these PCs.

Sign in to comment.

Answers (1)

figure;
imshow(PC, [], 'InitialMagnification', 1600);
title('PC Image', 'FontSize', 20);

Asked:

on 31 Jan 2016

Commented:

on 5 Aug 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!