Clear Filters
Clear Filters

Reading 3D Xray CT image in Matlab and performing PCA

7 views (last 30 days)
Hi, I have a Xray CT volume of few irregular shape. I want to read the file in Matlab and want to plot principal axis of each object using PCA. I've never worked in with 3D in matlab. Can anyone please suggest a procedure. Thanks.

Accepted Answer

Image Analyst
Image Analyst on 24 Dec 2017
Segment your object. Then use find() to find the row, columns, and slice of the voxels. Then put them into columns and call pca(). Attached is a demo where I used PCA to find PCs of the 3-D color gamut. It will be easy for you to adapt it.
  13 Comments
Image Analyst
Image Analyst on 3 Jan 2018
regionprops works on arrays, and arrays are composed of elements with integer indexes. The array has no concept of spatially calibrated global coordinates, like whether the voxel spacing is 0.45 mm or whatever, all it knows is rows and columns, etc. If you have a spatial calibration to map indexes into real world coordinates, then you keep track of that separately. regionprops doesn't care (it ignores any spatial calibration you're thinking of) and works in voxels or pixels.

Sign in to comment.

More Answers (1)

Ashbub
Ashbub on 26 Dec 2017
Let me clarify my problem.
From xray CT, I have exported image of for example few 3D irregular shape particles as matfile (3200NnofilterXZ, attached). I have done PCA analysis of these particles in 2D to get the direction of the principal component of particles for each slice (2D). Screenshot of first few lines of my code is attached. But this will not be serving my purpose. I will need principal component of each particle in 3D and not 2D. Now, as I don't know how to deal with 3D image to get the pricipal component. I badly need to solve this urgently.
Please suggest.
  1 Comment
Walter Roberson
Walter Roberson on 26 Dec 2017
Mathworks Consulting might possibly be open.
Most of the regular volunteers are on Christmas holidays and not willing to take on any "urgent" task. (To be more thorough: very few of the volunteers are willing to volunteer on "urgent" projects that take more than about 5 minutes to think about and write up, at the best of times, and even less so during this major holiday season.)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!