public RGBChannels ApplyFeatureDetection(RGBChannels image, HarrisCornerDetection type, double threshold = 0.0000000002) { if (featureDetector == null) { featureDetector = FeatureDetector.Instance(); } RGBChannels output = image; List <HarrisNode> maximas; switch (type) { case HarrisCornerDetection.fValues: output = featureDetector.HarrisCornerDetection(image); break; case HarrisCornerDetection.LokalMaxima9x9: output = featureDetector.HarrisCornerDetection(image); maximas = featureDetector.GetMaximas(9, 9, output); output = featureDetector.GetColorFromFValue(output, maximas); break; case HarrisCornerDetection.fValues4bin: output = featureDetector.HarrisCornerDetection(image); maximas = featureDetector.GetMaximas(9, 9, output); maximas = featureDetector.ThresholdMaximas(maximas, threshold); RGBChannels orientation = filterManipulator.GradientOrientation(image); maximas = featureDetector.GetOrientationBin(orientation, maximas); output = featureDetector.GetColorFromOrientation(output, maximas); break; } return(output); }