-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How ITK Snap gets the intensity at a particular co-ordinate from the MRI Scan, and which library does the ITK Snap to get intensity at a particular co-ordinate #117
Comments
I am using PyTorch, but I can move on to Tensorflow if its works well with Tensorflow |
In case this wasn't clear, you can use ITK itself (python and c++) or simpleITK to get that behavior. ITK snap is a GUI built on ITK. |
Thanks @liamtimms , but I am using the ITK library in my code but still I am not getting the same intensity values when matched to ITK snap software. Can you pls guide me how to Get it? |
@NiharJani2002 I am not associated with ITK or ITKsnap, but you can find information about accessing pixel values and interpolation in the ITK book: https://itk.org/ItkSoftwareGuide.pdf or use the simpler nibabel -> numpy in python by just indexing to the voxel of interest if you are less interested in spatial coordinate. |
Pixel values are very easy to access with SimpleITK. You just have to watch
out for coordinate swaps, so for example x,y,z in Numpy maps to z,y,x in
SimpleITK/ITK-SNAP.
In ITK-SNAP the image coordinates (row,column,slice) displayed to the user
have 1-based indexing, i.e., if you have 5 slices, they are numbered
1,2,3,4,5, rather than 0,1,2,3,4 as in Python/NumPy arrays. So that might
be the source of the mismatch. In the early 2000s, when SNAP was first
developed, most people outside of C/C++ were not used to 0-based indexing,
so we thought 1-based would be more intuitive for our target audience.
Changing it now would make things confusing for users.
Finally, prior to version 4.2, ITK-SNAP internally represented all images
as int16. So when an image with floating point intensity values was loaded,
those values were mapped to the range between 0 and 2^16-1, resulting in
some loss of precision. Since 4.2, floating point intensity values are
stored as such.
Best,
Paul
…On Thu, Jul 18, 2024 at 11:41 PM Liam Timms, PhD ***@***.***> wrote:
@NiharJani2002 <https://github.com/NiharJani2002> I am not associated
with ITK or ITKsnap, but you can find information about accessing pixel
values and interpolation in the ITK book:
https://itk.org/ItkSoftwareGuide.pdf or use the simpler nibabel -> numpy
in python by just indexing to the voxel of interest if you are less
interested in spatial coordinate.
—
Reply to this email directly, view it on GitHub
<#117 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJPEW7P5J5P5URHNBFHWMLZNAZBZAVCNFSM6AAAAABKKMZW6OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZXGY3TANZXHE>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
I am doing Brain Tumour Segmentation. I am analysing BRATS 2020 dataset. If I hover over a particular co-ordinate (let the co-ordinate be [x,y,z]) in MRI scan using ITK snap, I get a particular intensity value.
My Question is How to get that particular intensity in the Python code or c++ code ? Such that I can it.
If possible share the code also, or what algorithm does ITK Snap uses to show that particular intensity from MRI Scan
The text was updated successfully, but these errors were encountered: