public HImage Process(HImage image) { // image.WriteImage("tiff", 0, @"B:\Test_Ori"); var preprocessImage = PreprocessFilter.Process(image); // preprocessImage.WriteImage("tiff", 0, @"B:\Test_preprocessImage"); var thresholdImage = ThresholdImageFilter.Process(preprocessImage); // thresholdImage.WriteImage("tiff", 0, @"B:\Test_thresholdImage"); HRegion region = preprocessImage.DynThreshold( thresholdImage, Offset, LightDark.ToHalconString()); var complement = region.Complement(); thresholdImage.OverpaintRegion(region, (double)ForegroundGray, "fill"); thresholdImage.OverpaintRegion(complement, (double)BackgroundGray, "fill"); // thresholdImage.WriteImage("tiff", 0, @"B:\Test_OverpaintRegion"); region.Dispose(); complement.Dispose(); preprocessImage.Dispose(); return(thresholdImage); }
public HRegion Extract(HImage image) { HImage preprocessImage; if (PreprocessFilter != null) { preprocessImage = PreprocessFilter.Process(image); } else { preprocessImage = image; } HImage thresholdImage; if (SeparateFilter) { var swThresholdImageFilter = new NotifyStopwatch("DynThresholdRegionExtractor.ThresholdImageFilter"); thresholdImage = ThresholdImageFilter.Process(image); swThresholdImageFilter.Dispose(); } else { var swThresholdImageFilter = new NotifyStopwatch("DynThresholdRegionExtractor.ThresholdImageFilter"); thresholdImage = ThresholdImageFilter.Process(preprocessImage); swThresholdImageFilter.Dispose(); } var swDynThreshold = new NotifyStopwatch("DynThresholdRegionExtractor.DynThreshold"); HRegion region = preprocessImage.DynThreshold( thresholdImage, Offset, LightDark.ToHalconString()); swDynThreshold.Dispose(); preprocessImage.Dispose(); thresholdImage.Dispose(); return(region); }