Skip to content

Commit

Permalink
Merge pull request PolusAI#242 from friskluft/POL5510_fix_allmorphology
Browse files Browse the repository at this point in the history
fixed all-morphology and other group nicknames
  • Loading branch information
sameeul authored Oct 31, 2024
2 parents b1789a3 + 22fee06 commit d2cce58
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 54 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ Apart from defining your feature set by explicitly specifying comma-separated fe
| \*all_glszm\* | glszm_sae, glszm_lae, glszm_gln, glszm_glnn, glszm_szn, glszm_sznn, glszm_zp, glszm_glv, glszm_zv, glszm_ze, glszm_lglze, glszm_hglze, glszm_salgle, glszm_sahgle, glszm_lalgle, glszm_lahgle
| \*all_gldm\* | gldm_sde, gldm_lde, gldm_gln, gldm_dn, gldm_dnn, gldm_glv, gldm_dv, gldm_de, gldm_lgle, gldm_hgle, gldm_sdlgle, gldm_sdhgle, gldm_ldlgle, gldm_ldhgle
| \*all_ngtdm\* | ngtdm_coarseness, ngtdm_contrast, ngtdm_busyness, ngtdm_complexity, ngtdm_strength
| \*all_easy\* | All the features except the most time-consuming GABOR, GLCM, and the group of 2D moment features
| \*wholeslide\* | All the features except those irrelevant for the whole-slide use case (BasicMorphology, EnclosingInscribingCircumscribingCircle, ConvexHull, FractalDimension, GeodeticLengthThickness, Neighbor, RoiRadius, EllipseFitting, EulerNumber, Extrema, ErosionPixel, CaliperFeret, CaliperMartin, CaliperNassenstein, and Chords)
| \*all\* | All the features

## Command line usage
Expand Down
69 changes: 18 additions & 51 deletions src/nyx/env_features.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -245,16 +245,6 @@ bool Environment::expand_2D_featuregroup (const std::string & s)
return true;
}

if ((Fgroup2D) fgcode == Fgroup2D::FG2_EASY)
{
theFeatureSet.enableAll();
theFeatureSet.disableFeatures(GaborFeature::featureset);
theFeatureSet.disableFeatures(GLCMFeature::featureset);
theFeatureSet.disableFeatures(Imoms2D_feature::featureset);
theFeatureSet.disableFeatures(Smoms2D_feature::featureset);
return true;
}

if ((Fgroup2D) fgcode == Fgroup2D::FG2_NEIG)
{
Nyxus::theFeatureSet.enableFeatures (NeighborsFeature::featureset, enable);
Expand All @@ -268,51 +258,28 @@ bool Environment::expand_2D_featuregroup (const std::string & s)
}
if ((Fgroup2D) fgcode == Fgroup2D::FG2_MORPHOLOGY)
{
auto F = {
Feature2D::AREA_PIXELS_COUNT,
Feature2D::AREA_UM2,
Feature2D::CENTROID_X,
Feature2D::CENTROID_Y,
Feature2D::DIAMETER_EQUAL_AREA,
Feature2D::WEIGHTED_CENTROID_Y,
Feature2D::WEIGHTED_CENTROID_X,
Feature2D::COMPACTNESS,
Feature2D::BBOX_YMIN,
Feature2D::BBOX_XMIN,
Feature2D::BBOX_HEIGHT,
Feature2D::BBOX_WIDTH,
Feature2D::MAJOR_AXIS_LENGTH,
Feature2D::MINOR_AXIS_LENGTH,
Feature2D::ECCENTRICITY,
Feature2D::ORIENTATION,
Feature2D::ROUNDNESS,
Feature2D::EXTENT,
Feature2D::ASPECT_RATIO,
Feature2D::DIAMETER_EQUAL_PERIMETER,
Feature2D::CONVEX_HULL_AREA,
Feature2D::SOLIDITY,
Feature2D::PERIMETER,
Feature2D::EDGE_MEAN_INTENSITY,
Feature2D::EDGE_STDDEV_INTENSITY,
Feature2D::EDGE_MAX_INTENSITY,
Feature2D::EDGE_MIN_INTENSITY,
Feature2D::CIRCULARITY,
Feature2D::MASS_DISPLACEMENT };
Nyxus::theFeatureSet.enableFeatures (F, enable);
theFeatureSet.enableFeatures (BasicMorphologyFeatures::featureset, enable);
theFeatureSet.enableFeatures (EnclosingInscribingCircumscribingCircleFeature::featureset, enable);
theFeatureSet.enableFeatures (ContourFeature::featureset, enable);
theFeatureSet.enableFeatures (ConvexHullFeature::featureset, enable);
theFeatureSet.enableFeatures (FractalDimensionFeature::featureset, enable);
theFeatureSet.enableFeatures (GeodeticLengthThicknessFeature::featureset, enable);
theFeatureSet.enableFeatures (NeighborsFeature::featureset, enable);
theFeatureSet.enableFeatures (RoiRadiusFeature::featureset, enable);
theFeatureSet.enableFeatures (EllipseFittingFeature::featureset, enable);
theFeatureSet.enableFeatures (EulerNumberFeature::featureset, enable);
theFeatureSet.enableFeatures (ExtremaFeature::featureset, enable);
theFeatureSet.enableFeatures (ErosionPixelsFeature::featureset, enable);
theFeatureSet.enableFeatures (CaliperFeretFeature::featureset, enable);
theFeatureSet.enableFeatures (CaliperMartinFeature::featureset, enable);
theFeatureSet.enableFeatures (CaliperNassensteinFeature::featureset, enable);
theFeatureSet.enableFeatures (ChordsFeature::featureset, enable);

return true;
}
if ((Fgroup2D)fgcode == Fgroup2D::FG2_BASIC_MORPHOLOGY)
{
auto F = {
Feature2D::AREA_PIXELS_COUNT,
Feature2D::AREA_UM2,
Feature2D::CENTROID_X,
Feature2D::CENTROID_Y,
Feature2D::BBOX_YMIN,
Feature2D::BBOX_XMIN,
Feature2D::BBOX_HEIGHT,
Feature2D::BBOX_WIDTH };
Nyxus::theFeatureSet.enableFeatures (F, enable);
theFeatureSet.enableFeatures (BasicMorphologyFeatures::featureset, enable);
return true;
}
if ((Fgroup2D)fgcode == Fgroup2D::FG2_GLCM)
Expand Down
1 change: 0 additions & 1 deletion src/nyx/featureset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,6 @@ namespace Nyxus
{ "*ALL_NGTDM*", Fgroup2D::FG2_NGTDM },
{ "*ALL_BUT_GABOR*", Fgroup2D::FG2_BUT_GABOR },
{ "*ALL_BUT_GLCM*", Fgroup2D::FG2_ALL_BUT_GLCM },
{ "*ALL_EASY*", Fgroup2D::FG2_EASY },
{ "*ALL_NEIGHBOR*", Fgroup2D::FG2_NEIG },
{ "*GEOMOMS*", Fgroup2D::FG2_GEOMOMENTS },
{ "*IGEOMOMS*", Fgroup2D::FG2_GEOMOMENTS_I },
Expand Down
1 change: 0 additions & 1 deletion src/nyx/featureset.h
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,6 @@ namespace Nyxus
FG2_NGTDM,
FG2_BUT_GABOR,
FG2_ALL_BUT_GLCM,
FG2_EASY,
FG2_NEIG,
FG2_GEOMOMENTS, // shape and intensity geometric moments
FG2_GEOMOMENTS_I, // intensity geometric moments
Expand Down

0 comments on commit d2cce58

Please sign in to comment.