Пример #1
0
 public override HalconDotNet.HRegion GetRegion()
 {
     HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
     _circularArc.Dispose();
     _circularArc.GenCircleContourXld(_locateRow, _locateCol, _radius, _startPhi, (_startPhi + _extentPhi), _circularArcDir, 1.0);
     rg = new HalconDotNet.HRegion(_circularArc);
     return(rg);
 }
Пример #2
0
        public override HalconDotNet.HRegion GetRegion()
        {
            HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
            rg.GenRectangle1(_upLeftRow, _upLeftCol, _botRightRow, _botRightCol);



            return(rg);
        }
Пример #3
0
 public ROICtrller()
 {
     _signROI        = SIGN_ROI_NONE;
     ROIList         = new System.Collections.ArrayList();
     ActiveROIIndex  = -1;
     ModelROI        = new HalconDotNet.HRegion();
     NotifyIconic    = new IconicDelegate(DummyI);
     DeletedROIIndex = -1;
     _currX          = _currY = -1;
 }
Пример #4
0
        /// <summary>
        /// Calculates the ModelROI region for all objects contained
        /// in ROIList, by adding and subtracting the positive and
        /// negative ROI objects.
        /// </summary>
        public bool DefineModelROI()
        {
            HalconDotNet.HRegion tmpAdd, tmpDiff, tmp;
            double row, col;

            if (_signROI == SIGN_ROI_NONE)
            {
                return(true);
            }

            tmpAdd  = new HalconDotNet.HRegion();
            tmpDiff = new HalconDotNet.HRegion();
            tmpAdd.GenEmptyRegion();
            tmpDiff.GenEmptyRegion();

            for (int i = 0; i < ROIList.Count; i++)
            {
                switch (((ROI)ROIList[i]).GetROISign())
                {
                case ROI.SIGN_NEGATIVE:
                    tmp     = ((ROI)ROIList[i]).GetRegion();
                    tmpDiff = tmp.Union2(tmpDiff);
                    break;

                case ROI.SIGN_POSITIVE:
                    tmp    = ((ROI)ROIList[i]).GetRegion();
                    tmpAdd = tmp.Union2(tmpAdd);
                    break;
                }
            }

            if (this.ModelROI != null)
            {
                this.ModelROI.Dispose();
            }

            this.ModelROI = null;

            if (tmpAdd.AreaCenter(out row, out col) > 0)
            {
                tmp = tmpAdd.Difference(tmpDiff);
                if (tmp.AreaCenter(out row, out col) > 0)
                {
                    this.ModelROI = tmp;
                }
            }

            if (this.ModelROI == null || ROIList.Count == 0)
            {
                return(false);
            }

            return(true);
        }
Пример #5
0
 /// <summary>
 /// Clears all variables managing ROI objects
 /// </summary>
 public void Reset()
 {
     ROIList.Clear();
     ActiveROIIndex = -1;
     _ROIMode       = null;
     if (ModelROI != null)
     {
         ModelROI.Dispose();
     }
     ModelROI = null;
     this.NotifyIconic(EVENT_DELETED_ALL_ROIS);
 }
Пример #6
0
        public override HalconDotNet.HRegion GetRegion()
        {
            HalconDotNet.HRegion rgInternal = new HalconDotNet.HRegion();
            rgInternal.GenCircle(_locateRow, _locateCol, _radiusInternal);

            HalconDotNet.HRegion rgExternal = new HalconDotNet.HRegion();
            rgExternal.GenCircle(_locateRow, _locateCol, _radiusExternal);

            HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
            rg.Dispose();

            //计算圆环区域:半径大的圆与半径小的圆之间的差集
            rg = (_radiusExternal > _radiusInternal) ? rgExternal.Difference(rgInternal) : rgInternal.Difference(rgExternal);

            return(rg);
        }
Пример #7
0
        public CalibImage(HalconDotNet.HObject hImg, ProVision.Calibration.CalibOnPlateAssistant assistant)
        {
            HalconDotNet.HTuple width, height;
            _hImage      = hImg;
            _assistant   = assistant;
            CanCalib     = 1; //标记:未准备好标定
            _plateStatus = ProVision.Calibration.CalibOnPlateAssistant.PS_NOT_FOUND;
            HalconDotNet.HOperatorSet.GetImageSize(_hImage, out width, out height);
            ImageWidth          = width.I;
            ImageHeight         = height.I;
            _estimatedPlateSize = 0;
            ErrorMessage        = string.Empty;

            _caltabRegion  = new HalconDotNet.HRegion();
            _markCenterXLD = new HalconDotNet.HXLDCont();
            _estimatedWorldCoordinateSystem = new HalconDotNet.HObject();
            _qualityIssueList = new System.Collections.ArrayList(15);

            _markCenterRows     = new HalconDotNet.HTuple();
            _markCenterCols     = new HalconDotNet.HTuple();
            _plateEstimatedPose = new HalconDotNet.HPose();
        }
Пример #8
0
 public override HalconDotNet.HRegion GetRegion()
 {
     HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
     rg.GenRegionPolygon(new HalconDotNet.HTuple(_sizeRows), new HalconDotNet.HTuple(_sizeCols));
     return(rg);
 }
Пример #9
0
 public MyRegion(RoiType type, HalconDotNet.HRegion region)
 {
     mRoiType = type;
     mRegion  = region;
 }
Пример #10
0
 public override HalconDotNet.HRegion GetRegion()
 {
     HalconDotNet.HRegion region = new HalconDotNet.HRegion();
     region.GenRectangle2(_locateRow, _locateCol, _phi, _length1, _length2);
     return(region);
 }
Пример #11
0
 public override HalconDotNet.HRegion GetRegion()
 {
     HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
     rg.GenRegionLine(_startRow, _startCol, _extentRow, _extentCol);
     return(rg);
 }
Пример #12
0
 public override HalconDotNet.HRegion GetRegion()
 {
     HalconDotNet.HRegion rg = new HalconDotNet.HRegion();
     rg.GenCircle(_locateRow, _locateCol, _radius);
     return(rg);
 }