Circle Fitting (Legacy)¶
This code snippet shows how to create a circle measurement tool, adjust the transition parameters, set the nominal gauge position, perform the measurement and retrieve the result using the legacy EasyGauge API.
C++¶
#include <eVision/EasyGauge/Legacy/ECircleGauge.h>
using namespace eVision;
using namespace eVision::Legacy;
// Image constructor
EImageBW8 srcImage;
// ECircleGauge constructor
Legacy::ECircleGauge circleGauge;
// Adjust the transition parameters
circleGauge.SetTransitionType(ETransitionType_Bw);
circleGauge.SetTransitionChoice(ETransitionChoice_LargestAmplitude);
// Set the Circle fitting gauge position, diameter (50 units),
// starting angle (10), and amplitude (270)
EPoint center(256.f, 256.f);
Legacy::ECircle circle(center, 50.f, 10.f, 270.f);
circleGauge.SetCircle(circle);
// Measure
circleGauge.Measure(&srcImage);
// Get the center point coordinates and the radius of the fitted circle
float centerX = circleGauge.GetMeasuredCircle().GetCenter().GetX();
float centerY = circleGauge.GetMeasuredCircle().GetCenter().GetY();
float radius = circleGauge.GetMeasuredCircle().GetRadius();
// Save the point gauge measurement context
circleGauge.Save("myCircleGauge.gge");
C#¶
using eVision;
using Legacy = eVision.Legacy;
// Image constructor
EImageBW8 srcImage = new EImageBW8();
// ECircleGauge constructor
Legacy.ECircleGauge circleGauge = new Legacy.ECircleGauge();
// Adjust the transition parameters
circleGauge.TransitionType = ETransitionType.Bw;
circleGauge.TransitionChoice = ETransitionChoice.LargestAmplitude;
// Set the Circle fitting gauge position, diameter (50 units),
// starting angle (10°), and amplitude (270°)
EPoint center = new EPoint(256.0f, 256.0f);
Legacy.ECircle circle = new Legacy.ECircle(center, 50.0f, 10.0f, 270.0f);
circleGauge.Circle = circle;
// Measure
circleGauge.Measure(srcImage);
// Get the center point coordinates and the radius of the fitted circle
float centerX = circleGauge.MeasuredCircle.Center.X;
float centerY = circleGauge.MeasuredCircle.Center.Y;
float radius = circleGauge.MeasuredCircle.Radius;
// Save the point gauge measurement context
circleGauge.Save("myCircleGauge.gge");
Python¶
import eVision
import eVision.Legacy as Legacy
# Image constructor
src_image = eVision.EImageBW8()
# ECircleGauge constructor
circle_gauge = Legacy.ECircleGauge()
# Adjust the transition parameters
circle_gauge.TransitionType = eVision.ETransitionType.Bw
circle_gauge.TransitionChoice = eVision.ETransitionChoice.LargestAmplitude
# Set the Circle fitting gauge position, diameter (50 units),
# starting angle (10°), and amplitude (270°)
center = eVision.EPoint(256.0, 256.0)
circle = Legacy.ECircle(center, 50.0, 10.0, 270.0)
circle_gauge.Circle = circle
# Measure
circle_gauge.Measure(src_image)
# Get the center point coordinates and the radius of the fitted circle
centerX = circle_gauge.MeasuredCircle.Center.X
centerY = circle_gauge.MeasuredCircle.Center.Y
radius = circle_gauge.MeasuredCircle.Radius
# Save the point gauge measurement context
circle_gauge.Save("myCircleGauge.gge")