Image registration with PCA
이전 댓글 표시
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
Sean de Wolski
2012년 10월 3일
Could you give us an idea of how the data is structured? Like small examples of what data you have to work with?
Mikael
2012년 10월 3일
답변 (1개)
Image Analyst
2012년 10월 3일
0 개 추천
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.
카테고리
도움말 센터 및 File Exchange에서 Dimensionality Reduction and Feature Extraction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!