Skip to content

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

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

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

@hjmjohnson hjmjohnson commented Jul 13, 2026

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).

Data: the two objects are staged in SimpleITK/SimpleITKExternalData#50 — CI cannot fetch them until that PR merges.

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 343.0 (longer) against a tolerance of 0.01. The 2D dispatch and BinaryMinMaxCurvatureFlowImageFilter (user-supplied threshold, never calls ComputeThreshold) are unaffected — their baselines need no change.

How the alternates were generated and validated

The baselines are the actual harness outputs: BasicFilters.MinMaxCurvatureFlowImageFilter was run via ctest against an ITK main build containing the threshold fix, and the failing-compare outputs written by ImageCompare (center z-slice, 64×64×1 float NRRD) were hashed directly, byte-identical across two runs. With the alternates placed in the ExternalData store, the test passes against ITK main; the primary baselines are untouched, so current-ITK builds keep passing via ImageCompare's best-RMS selection over the name.N.nrrd series (sitkImageCompare.cxx). The generated test commands reference baselines as DATA{...nrrd,:}, so the .1.nrrd series members are fetched automatically — no CMake changes needed.

An earlier revision of this PR carried transcribed hashes that did not correspond to any real file; the content links now hold the verified hashes of the uploaded objects.

@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.

@hjmjohnson

Copy link
Copy Markdown
Contributor Author

Related to : InsightSoftwareConsortium/ITK#6667 for minimizing inter-project dependancies on test cases.

… 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.
@hjmjohnson

Copy link
Copy Markdown
Contributor Author

Data uploaded per the sitk-upload-binary-data skill: SimpleITK/SimpleITKExternalData#50 (draft).

The previous content-link hashes were transcribed and did not match any real file; the branch is now rebased onto main with content links pointing at the verified regenerated outputs (byte-identical across two ctest runs against ITK main with the threshold fix). The test passes locally against ITK main with the alternates in the object store, and the untouched primary baselines keep current-ITK builds green via the existing name.N.nrrd best-RMS selection.

@hjmjohnson
hjmjohnson marked this pull request as ready for review July 24, 2026 16:55
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