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; } } }