Skip to content

Commit

Permalink
COMP: Fix compiler warnings in ComputeSurfaceFeaturesTest (BlueQuartz…
Browse files Browse the repository at this point in the history
…Software#1003)

Signed-off-by: Michael Jackson <[email protected]>
Co-authored-by: Jared Duffey <[email protected]>
  • Loading branch information
imikejackson and JDuffeyBQ committed Jul 8, 2024
1 parent fd3cf33 commit ca39645
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,20 @@ ITKConnectedComponents (ConnectedComponents)

## Description

\par
This method is based on Topological Stable State Thresholding to calculate the threshold set point. This method is particularly effective when there are a large number of objects in a microscopy image. Compiling in Debug mode and enable the debug flag for this filter to print debug information to see how the filter focuses in on a threshold value. Please see the Insight Journal's MICCAI 2005 workshop for a complete description. References are below.

### Parameters

\par Parameters
The MinimumObjectSizeInPixels parameter is controlled through the class Get/SetMinimumObjectSizeInPixels() method. Similar to the standard itk::BinaryThresholdImageFilter the Get/SetInside and Get/SetOutside values of the threshold can be set. The GetNumberOfObjects() and GetThresholdValue() methods return the number of objects above the minimum pixel size and the calculated threshold value.

### Automatic Thresholding in ITK

\par Automatic Thresholding in ITK
There are multiple methods to automatically calculate the threshold intensity value of an image. As of version 4.0, ITK has a Thresholding ( ITKThresholding ) module which contains numerous automatic thresholding methods.implements two of these. Topological Stable State Thresholding works well on images with a large number of objects to be counted.

## References

1) Urish KL, August J, Huard J. "Unsupervised segmentation for myofiber
counting in immunofluorescent microscopy images". Insight Journal. ISC/NA-MIC/MICCAI Workshop on Open-Source Software (2005) https://insight-journal.org/browse/publication/40 2) Pikaz A, Averbuch, A. "Digital image thresholding based on topological
1) Urish KL, August J, Huard J. "Unsupervised segmentation for myofiber counting in immunofluorescent microscopy images". Insight Journal. ISC/NA-MIC/MICCAI Workshop on Open-Source Software (2005) https://insight-journal.org/browse/publication/40
2) Pikaz A, Averbuch, A. "Digital image thresholding based on topological
stable-state". Pattern Recognition, 29(5): 829-843, 1996.

## Questions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ using FilterOutputType = uint8;
struct ITKThresholdMaximumConnectedComponentsImageFilterFunctor
{
uint32 minimumObjectSizeInPixels = 0u;
float64 upperBoundary = std::numeric_limits<double>::max();
float64 upperBoundary = 65536.0;
uint8 insideValue = 1u;
uint8 outsideValue = 0u;

Expand Down Expand Up @@ -86,7 +86,7 @@ Parameters ITKThresholdMaximumConnectedComponentsImageFilter::parameters() const
"The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside "
"value can be defined by the user, however the standard values are used as default if not set by the user. The default value of the: Inside value is the maximum pixel type intensity. Outside "
"value is the minimum pixel type intensity. Upper threshold boundary is the maximum pixel type intensity.",
std::numeric_limits<double>::max()));
65536.0));
params.insert(std::make_unique<UInt8Parameter>(
k_InsideValue_Key, "Inside Value",
"The following Set/Get methods are for the binary threshold function. This class automatically calculates the lower threshold boundary. The upper threshold boundary, inside value, and outside "
Expand Down
3 changes: 2 additions & 1 deletion src/Plugins/SimplnxCore/test/ComputeSurfaceFeaturesTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@ TEST_CASE("SimplnxCore::ComputeSurfaceFeaturesFilter: 3D", "[SimplnxCore][Comput

for(usize i = 0; i < featureArrayExemplary.getSize(); i++)
{
REQUIRE(featureArrayExemplary[i] == createdFeatureArray[i]);
uint8 value = featureArrayExemplary[i] ? 1 : 0;
REQUIRE(value == createdFeatureArray[i]);
}
}
}
Expand Down

0 comments on commit ca39645

Please sign in to comment.