FAQ - Frequently Asked Questions
Issue:
-
How do I automate PCA analysis for multiple images?
Possible Solutions:
-
Because the version of IMGPCA provided in the standard PLS_Toolbox requires some inputs to operate, IMGPCA is not well suited to automated analysis. Although future versions of the PLS_Toolbox will allow this, the current version requires you use the basic PCA routine and handle the image aspects yourself.
First, create a preprocessing structure use the preprocess function:
>> s = preprocess;
This will bring up a dialog box that lets you specify what preprocessing you want. When you click "OK" it will return a preprocessing structure, s. (Alternatively, you can request the preprocessing method directly using the 'default' keyword. See "preprocess help" for more information.)
s =
description: 'Mean Center'
calibrate: {'[data,out{1}] = mncn(data);'}
apply: {'data = scale(data,out{1});'}
undo: {'data = rescale(data,out{1});'}
out: {}
settingsgui: ''
settingsonadd: 0
usesdataset: 0
caloutputs: 1
keyword: 'Mean Center'
userdata: []
Next, create a PCA options structure using:
>> opts = pca('options')
opts =
name: 'options'
display: 'on'
plots: 'final'
outputversion: 3
preprocessing: {[]}
blockdetails: 'standard'
then put the preprocessing structure s into this:
>> opts.preprocessing{1} = s
opts =
name: 'options'
display: 'on'
plots: 'final'
outputversion: 3
preprocessing: {[1x1 struct]}
blockdetails: 'standard'
Turn off the display, and turn the plots to 'none':
>> opts.display = 'off'; >> opts.plots = 'none';Take you data and reshape it to number of pixels by number of channels
(3 in your case) using the 'reshape' function.
>> data = reshape(data,size(data,1)*size(data,2),size(data,3));Then use the PCA function like:
model = pca(data,2,opts);The loadings will be in the model.loads field.
Still having problems? Check our documentation Wiki or try writing our helpdesk at helpdesk@eigenvector.com





