public HRegion Process(HRegion region) { if (Math.Abs(Radius) < 0.0000001) { return(region.MoveRegion(0, 0)); } var dilation = region.ErosionCircle(Radius); return(dilation); }
/// <summary> /// Example test method 2 for the Process call. /// </summary> /// <param name="region">The region to modify.</param> /// <returns>The area of the region.</returns> private double CircularizeAndShrinkRegion(HRegion region) { HRegion circleRegion = new HRegion(); double unusedDouble; double area = 0; try { // Test code. // System.Threading.Thread.Sleep(2000); // Does not block. // throw new Exception("Test Exception"); circleRegion = region.ShapeTrans("circle"); if (this.dilationSize > 0) { this.WaferRegion = circleRegion.ErosionCircle(this.dilationSize); // (400.5); } else { this.WaferRegion = circleRegion.CopyObj(1, -1); } area = this.waferRegion.AreaCenter(out unusedDouble, out unusedDouble); } catch (HalconException) { this.ErrorMessage = "Halcon Exception in FillAndShrinkRegion"; this.ErrorCode = ProcessingErrorCode.ProcessingStep2Error; } catch (Exception) { this.ErrorMessage = "System Exception in FillAndShrinkRegion"; this.ErrorCode = ProcessingErrorCode.ProcessingStep2Error; } finally { circleRegion.Dispose(); } return(area); }