Skip to content

Commit

Permalink
**
Browse files Browse the repository at this point in the history
  • Loading branch information
friskluft committed Oct 18, 2024
1 parent 4b7daa3 commit cc8c277
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 39 deletions.
82 changes: 43 additions & 39 deletions src/nyx/env_features.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,47 +198,51 @@ bool Environment::expand_2D_featuregroup (const std::string & s)
if ((Fgroup2D)fgcode == Fgroup2D::FG2_ALL)
{
Nyxus::theFeatureSet.enableAll (enable);
return true; //???????????????
return true;
}

if ((Fgroup2D)fgcode == Fgroup2D::FG2_WHOLESLIDE)
{
Nyxus::theFeatureSet.enableAll(enable);

// Handle whole-slide mode differently: disable features irrelevant to this mode (shape, neighbors, etc)
if (singleROI && enable)
{
std::cout << box_text ("Activating whole slide (aka single-ROI) mode\n"
"ATTENTION: disabling inappplicable and time-sonsuming features:\n"
" - morphological features\n"
" - neighbor features\n"
" - GLDM, GLDZM, GLRLM, GLSZM, NGLDM, NGTDM");

theFeatureSet.disableFeatures(BasicMorphologyFeatures::featureset);
theFeatureSet.disableFeatures(EnclosingInscribingCircumscribingCircleFeature::featureset);
theFeatureSet.disableFeatures(ContourFeature::featureset); // and its dependencies below (see file reduce_trivial_rois_manual.cpp)
theFeatureSet.disableFeatures(ConvexHullFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures(FractalDimensionFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures(GeodeticLengthThicknessFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures(NeighborsFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures(RoiRadiusFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures(EllipseFittingFeature::featureset);
theFeatureSet.disableFeatures(EulerNumberFeature::featureset);
theFeatureSet.disableFeatures(ExtremaFeature::featureset);
theFeatureSet.disableFeatures(ErosionPixelsFeature::featureset);
theFeatureSet.disableFeatures(CaliperFeretFeature::featureset);
theFeatureSet.disableFeatures(CaliperMartinFeature::featureset);
theFeatureSet.disableFeatures(CaliperNassensteinFeature::featureset);
theFeatureSet.disableFeatures(ChordsFeature::featureset);

// enabling GaborFeature
// enabling ImageMomentsFeature
// enabling GLCMFeature

theFeatureSet.disableFeatures(GLDMFeature::featureset); // costs about 4.72 %
theFeatureSet.disableFeatures(GLDZMFeature::featureset); // costs about 38.14 %
theFeatureSet.disableFeatures(GLRLMFeature::featureset); // costs about 17.29 %
theFeatureSet.disableFeatures(GLSZMFeature::featureset); // costs about 15.94 %
theFeatureSet.disableFeatures(NGLDMfeature::featureset); // costs about 3.57 %
theFeatureSet.disableFeatures(NGTDMFeature::featureset); // costs about 5.13 %
}

return true;
std::cout << box_text(
"Activating whole slide (aka single-ROI) mode\n"
"Using GPU is advised!\n"
"ATTENTION: disabling inappplicable and time-sonsuming features:\n"
" - morphological features\n"
" - neighbor features\n"
" - GLDZM");

theFeatureSet.disableFeatures (BasicMorphologyFeatures::featureset);
theFeatureSet.disableFeatures (EnclosingInscribingCircumscribingCircleFeature::featureset);
// enabling ContourFeature (builds a special trivial wholeslide contour)
theFeatureSet.disableFeatures (ConvexHullFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures (FractalDimensionFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures (GeodeticLengthThicknessFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures (NeighborsFeature::featureset); // no neighbors for whole slide; depends on ContourFeature
theFeatureSet.disableFeatures (RoiRadiusFeature::featureset); // depends on ContourFeature
theFeatureSet.disableFeatures (EllipseFittingFeature::featureset);
theFeatureSet.disableFeatures (EulerNumberFeature::featureset);
theFeatureSet.disableFeatures (ExtremaFeature::featureset);
theFeatureSet.disableFeatures (ErosionPixelsFeature::featureset);
theFeatureSet.disableFeatures (CaliperFeretFeature::featureset);
theFeatureSet.disableFeatures (CaliperMartinFeature::featureset);
theFeatureSet.disableFeatures (CaliperNassensteinFeature::featureset);
theFeatureSet.disableFeatures (ChordsFeature::featureset);

// enabling GaborFeature
// enabling ImageMomentsFeature
//
// enabling GLCMFeature
// enabling GLDMFeature
theFeatureSet.disableFeatures(GLDZMFeature::featureset); // costs about 82 %
// enabling GLRLMFeature
// enabling GLSZMFeature
// enabling NGLDMfeature
// enabling NGTDMFeature

return true;
}

if ((Fgroup2D) fgcode == Fgroup2D::FG2_EASY)
Expand Down
1 change: 1 addition & 0 deletions src/nyx/featureset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,7 @@ namespace Nyxus
std::map <std::string, Fgroup2D> UserFacing2dFeaturegroupNames =
{
{ "*ALL*", Fgroup2D::FG2_ALL},
{ "*WHOLESLIDE*", Fgroup2D::FG2_WHOLESLIDE},
{ "*ALL_INTENSITY*", Fgroup2D::FG2_INTENSITY },
{ "*ALL_MORPHOLOGY*", Fgroup2D::FG2_MORPHOLOGY },
{ "*BASIC_MORPHOLOGY*", Fgroup2D::FG2_BASIC_MORPHOLOGY },
Expand Down
1 change: 1 addition & 0 deletions src/nyx/featureset.h
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,7 @@ namespace Nyxus
enum class Fgroup2D
{
FG2_ALL = 0,
FG2_WHOLESLIDE,
FG2_INTENSITY,
FG2_MORPHOLOGY,
FG2_BASIC_MORPHOLOGY,
Expand Down

0 comments on commit cc8c277

Please sign in to comment.