Re: what's the best way to process 3D image data in ImageJ

Posted by Thomas Boudier-3 on
URL: http://imagej.273.s1.nabble.com/what-s-the-best-way-to-process-3D-image-data-in-ImageJ-tp5013349p5013350.html

Dear Zhou Xin,

Yes ImageJ is not very developer-friendly for 3D processing. I released
a basic tutorial for 3D in ImageJ years ago, it may be a bit outdated
but give basic notions :

http://imagejdocu.tudor.lu/doku.php?id=tutorial:working:3d_image_processing_and_analysis_with_imagej

The guys from ImageJ2 did a great job in redesigning image format for
multidimensional images, in the imglib2 library :

http://fiji.sc/ImgLib2

I did not have the time to dig into this library, because I use my own
library ;)

http://imagejdocu.tudor.lu/doku.php?id=plugin:stacks:3d_ij_suite:start

In ImageJ there is the function getVoxels from ImageStack, it is noted
"experimental" but works well I think.

Here some information, hope this helps.

Best

Thomas


On 29/06/15 22:41, 周鑫 wrote:

> Hi all,
>
>
> I wonder what is the best way to process 3D image data in ImageJ.
> More and more medical images are produced in 3D, such as CT, MRI series....
> In imageJ, the commonly used way is ImageStack (I guess).
> But after reading the StackProcessor and StackConverter, I have some questions:
>
>
> 1: it is important to switch the data between sagittal plane, coronal plane and transverse plane.
> I know that "stacks -> orthogonal views" can show three views at the same time.
> But from data processing point of view,  sometimes we need to switch the whole stack from transverse view to sagittal views.
> I means, in matlab, we can use "permute" or "shiftdim" to just change the order of dimensions.
> In stackProcessor or stackConverter, I didn't find similar functions.
>
>
> 2: it is also important to do normalization of resolution.
> For example, a commonly used function is to normalize the stack to be 1x1x1mm voxel.
> In stackProcessor, there are "scale" and "resize", but non of them do z-axis interpolation. (They are just a loop of 2D resize)
> So my question is: what's the difference between  "scale" and "resize" ?
> and what's the best way of doing normalization of resolution?
>
>
> 3: in 2D processing,we can use getFloatArray() to get the image in form of float[][]
> in 3D prcessing, can we use getVoxels to get the image in form of float[][][] ?
>
>
> Sorry if these questions are too basic.
>
>
> Best regards, Zhou Xin
>
>
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
> --
>    /***************************************************************/
>       Thomas Boudier, Associate Professor, UPMC,
>       Université Pierre et Marie Curie, Paris, France.
>       BioInformatics Institute (BII)/IPAL, Singapore.
> /**************************************************************/

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html