NRRDLoader: Fix loading 16-bits file with custom axes. #25367
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue: #24501
Description
The key issue for this issue is that some 16-bit NRRD files do have not standard vectors.
So using the old if judgment statement cannot get a good result for loading them.
issue code:
The 16-bit NRRD files vectors are like this below:
Thus under this if statement, it will always get xIndex=yIndex=zIndex=0
Then for the axis array we always get only direction ["z"]. Not the ["x","y","z"].
So I add a new if statement inside this if to solve this issue:
Instead
Then, as for the segmentation purpose, I also add a setSegementation() function.
If the user use loader.setSegementation(true) outside, we can get the NRRD Original size slices/images, not the RASDimention one size.