using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HalconDotNet;
namespace HalconTools
{
public class FitCircleResult
{
///
/// Model contour applied for model detection
///
public HXLD mContours;
public HXLDCont mContCircle;
public HXLDCont mContPoints;
///
/// All circle contours detected
///
public HXLDCont mFitCircleResult;
///
/// Row coordinate of the found instances of the model
///
public HTuple mRow;
///
/// Column coordinate of the found instances of the model
///
public HTuple mCol;
//Fit result
public HTuple mRowCenter;
public HTuple mColumnCenter;
public HTuple mRadius;
public HTuple mStartPhi;
public HTuple mEndPhi;
public HTuple mPointOrder;
///
/// Rotation angle of the found instances of the model
///
public HTuple mAngle;
public HTuple hv_Rows;
public HTuple hv_Columns;
///
/// Image Width
///
public int mWidth;
///
/// Image Height
///
public int mHeight;
///
/// Time needed to detect count numbers of model instances
///
public double mTime;
///
/// Number of model instances found
///
public int count;
///
/// 2D homogeneous transformation matrix that can be used to transform
/// data from the model into the test image.
///
public HHomMat2D hmat;
/// Constructor
public FitCircleResult()
{
hmat = new HHomMat2D();
mFitCircleResult = new HXLDCont();
mContCircle = new HXLDCont();
mContPoints = new HXLDCont();
}
///
/// Gets the detected contour.
///
/// Detected contour
public HXLDCont getDetectionResults()
{
HXLDCont rContours = new HXLDCont();
hmat.HomMat2dIdentity();
mFitCircleResult.GenEmptyObj();
//for (int i = 0; i < count; i++)
//{
// hmat.VectorAngleToRigid(0, 0, 0, mRow[i].D, mCol[i].D, mAngle[i].D);
// rContours = hmat.AffineTransContourXld(mContour);
// mFitLineResult = mFitLineResult.ConcatObj(rContours);
//}
return mFitCircleResult;
}
///
/// Resets the detection results and sets count to 0.
///
public void reset()
{
count = 0;
}
}
}