public bool ExtractCircle(HImage hImage, double centerX, double centerY, double innerCircleRadius, double outerCircleRadius, out Circle foundCircle, out double roundness, int regionsCount, // int regionHeight, int regionWidth, double sigma, double threshold, SelectionMode selectionMode, Transition transition, CircleDirect direct) { try { HTuple centerX2, centerY2, radius, roundness2; SpokeCircle(hImage, centerY, centerX, outerCircleRadius, innerCircleRadius, regionsCount, regionWidth, sigma, threshold, transition.ToHalconString(), selectionMode.ToHalconString(), direct.ToHalconString(), out centerY2, out centerX2, out radius, out roundness2); foundCircle = new Circle(centerX2, centerY2, radius); //roundness = roundness2; roundness = 0; return(true); } catch (HOperatorException e) { foundCircle = new Circle(); roundness = 0; return(false); } }
public static string ToHalconString(this CircleDirect selectionMode) { string selectionModeString = null; switch (selectionMode) { case CircleDirect.Inner: selectionModeString = "inner"; break; case CircleDirect.Outer: selectionModeString = "outer"; break; } return(selectionModeString); }