Skip to content

ENH: Add MinMaxCurvatureFlow alternate baselines for ITK 3D threshold fix#2627

Draft
hjmjohnson wants to merge 1 commit into
SimpleITK:mainfrom
hjmjohnson:update-minmax-baselines-itk6619
Draft

ENH: Add MinMaxCurvatureFlow alternate baselines for ITK 3D threshold fix#2627
hjmjohnson wants to merge 1 commit into
SimpleITK:mainfrom
hjmjohnson:update-minmax-baselines-itk6619

Conversation

@hjmjohnson

Copy link
Copy Markdown
Contributor

Adds .1.nrrd alternate baselines for the MinMaxCurvatureFlowImageFilter defaults and longer tests, so they pass with both current ITK and an ITK containing InsightSoftwareConsortium/ITK#6603 (3D polar-angle threshold fix; full context in InsightSoftwareConsortium/ITK#6619).

Note: the two data objects are pending upload to data.kitware.com — CI will fail to fetch them until then.

Why the output changes, and by how much

ITK's 3D MinMaxCurvatureFlowFunction::ComputeThreshold normalized the gradient to length StencilRadius (2) instead of unit length before acos(), silently selecting the wrong polar angle since 2002. ITK#6603 restores the published algorithm (Sethian 1999). Measured on RA-Float.nrrd with this repo's exact test parameters, the center-slice RMS versus the current baselines is 55.6 (defaults) and 130.9 (longer) against a tolerance of 0.01. The 2D dispatch and BinaryMinMaxCurvatureFlowImageFilter (user-supplied threshold, never calls ComputeThreshold) are bit-identical — their baselines need no change.

How the alternates were generated and validated

The filter was run on Input/RA-Float.nrrd (float, 64³) with TimeStep=0.05/NumberOfIterations=5 (defaults) and 0.1/10 (longer), StencilRadius=2, against ITK main + PR 6603; the center z-slice was extracted to match ImageCompare's comparison. Validation: outputs from unpatched ITK reproduce the existing baselines at RMS = 0 (bit-exact, confirming the pipeline replicates the test harness), and the patched outputs match these new alternates at RMS = 0. The generated test commands reference baselines as DATA{...nrrd,:}, so the .1.nrrd series members are fetched automatically — no CMake changes needed.

… fix

ITK PR InsightSoftwareConsortium/ITK#6603 corrects the polar angle in the
3D MinMaxCurvatureFlowFunction threshold (context in
InsightSoftwareConsortium/ITK#6619), changing MinMaxCurvatureFlowImageFilter
output on 3D volumes. Add the post-fix center slices as .1.nrrd alternate
baselines so the defaults and longer tests pass with both current and
fixed ITK. The Binary variant is unaffected.
@blowekamp

Copy link
Copy Markdown
Member

Note: the two data objects are pending upload to data.kitware.com — CI will fail to fetch them until then.

Please create a PR for SimpleITK/SimpleITKExternalData with the data. I am unfortunately unable to locate developer documentation on uploading data. Hopefully making the PR to the data repo is straight forward enough.

@blowekamp

Copy link
Copy Markdown
Member

@hjmjohnson Please see the newly added sitk-upload-binary-data skill to upload data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants