Image registration with PCA
Mostra commenti meno recenti
Hi,
I want to detect, and possibly compensate for, motion which happens between acquisition of images (1 image of one slice of the body is taken every 3 seconds) for MRI-data. I am using PCA (principal component analysis). What I have so far is:
-Using a training set of 90 images (160 x 160 pixels) I have used PCA, own implementation but very similar to Matlab's built-in function princomp, I calculate the PC:s (principal components), the variances they account for and the data scores in the PC coordinate system.
-The variances are very good, depending on the ROI I use (I take a subset of the image as data, from some interesting area) and the image set (I have three different cases) I can get about 97% of the variance with just 3 PC:s.
-I have plotted (or rather, created a coloured grid) the load of all the 90 images on the first n (say 7) PC:s, to see which components are influenced the most by which image.
-I have also made images of the PC scores for the first four components.
-Finally, I have calculated a correlation coefficient between each image after the training images and the first four PC:s. I have plotted the index of the component for which this correlation is the largest (1,2,3 or 4) against image number.
Now, what I want to do is to tell in which images after the training set some large motion has occurred, and possibly even compensate for it. My problem is, I can't quite wrap my head around how I compile all the data I have gathered, and use it to motion detection or compensation. Can anyone help me with this? Just to make the most important point clear, the aim is to register the images to a reference image, but since the body is sometimes moving, we can't just use the first slice as reference, so I want to try PCA to get something useful out.
-Mikael
2 Commenti
Sean de Wolski
il 3 Ott 2012
Could you give us an idea of how the data is structured? Like small examples of what data you have to work with?
Mikael
il 3 Ott 2012
Risposte (1)
Image Analyst
il 3 Ott 2012
0 voti
This looks like you need an algorithm rather than MATLAB coding advice. I don't know which of the approximately 120 MRI registration algorithms listed here: http://iris.usc.edu/Vision-Notes/bibliography/medical879.html#Brain,%20Cortex,%20Registration,%20MRI,%20Other would be the best for you. Maybe PCA is better than all those - I don't know. Perhaps we can help with small chunks of code once you have picked a good algorithm.
1 Commento
Mikael
il 3 Ott 2012
Categorie
Scopri di più su Dimensionality Reduction and Feature Extraction in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!