Login  Register

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

Posted by Shameem Sampath on Jun 30, 2015; 11:50am
URL: http://imagej.273.s1.nabble.com/what-s-the-best-way-to-process-3D-image-data-in-ImageJ-tp5013349p5013358.html

Hi List,
Coincidentally, I have a related query regarding analysing CAT scan Dicom images of knees in ImageJ.
Is there a way to measure trabecular orientation in the xyz planes?
Regards,
Shameem Sampath
The Bluespot Knee Clinic


> On 30 Jun 2015, at 04:52, Thomas Boudier <[hidden email]> wrote:
>
> 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

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