Clear Filters
Clear Filters

Creating cartesian volumetric dataset from polar coordinates

14 views (last 30 days)
I have an ultrasound dataset that consists of multiple individual rectangular arrays of 2D ultrasound images which are scanned around a fixed point. The individual ultrasound images provide R (+/- distance relative to the center point based on pixel location relative to the center line of the image) and Z (depth) information. The angle of changes between each image in the data set (1-5 degrees between the images depending on the specific data set).
The images are scanned using a radial technique where the center line on all the images is the same fixed point. The total sweep of the probe is 180 degrees, however, since the center point is fixed, the data set covers 360 degrees.
The total imaged volume is essentially a cylinder of tissue. I would like help processing the images into a volumetric 3D dataset: reconstructing from polar coordinates, and then converting that to a cartesian system. We need to co-localize this data set with a concurrent x-ray modality that acquires circular X,Y slices, with each image representing a different Z value. I would also like to be able to change the circle slice thickness if needed.
Since the center points of the cylinder will be imaged numerous times, I would like those pixel values to be the average of all the samples.
I have no idea where to begin with this if anyone could please help. Thank you!

Answers (1)

William Rose
William Rose on 12 Jan 2024
This is quite do-able. I know there are people on this site who are very much able to assist you. I have experience using cardiac and vacsular ultrasound, and have written code to analyze the data, so I have some understanding of what you are doing. I have not tried to correlate ultrasound and cylindrical CT data, but it is certainly possible, if there are at least three fiducial points visible in both images.
It is a simple matter to convert the polar coordinates of the ultrasound pixels to their Cartesian equivalents. In my experience, this is done inside the ultrasound device, so the 2D video scans I acquire are already mapped into their x,y equivalents. The figure below, from here, shows what I mean:
The ultrasound video files I collect look like the image on the right. It sounds like your image data is in the format shown in the middle. This conversion is straightforward.
Once you have the Cartesian coordinates of the points, you can resample the data onto a grid that matches the CT grid, using interp2() or interp3(), depending on whether you are doing it in 2D slices or all at once in 3D.


Find more on Biomedical Imaging in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!