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); }
public override HalconDotNet.HRegion GetRegion() { HalconDotNet.HRegion rg = new HalconDotNet.HRegion(); rg.GenRectangle1(_upLeftRow, _upLeftCol, _botRightRow, _botRightCol); return(rg); }
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; }
/// <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); }
/// <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); }
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); }
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(); }
public override HalconDotNet.HRegion GetRegion() { HalconDotNet.HRegion rg = new HalconDotNet.HRegion(); rg.GenRegionPolygon(new HalconDotNet.HTuple(_sizeRows), new HalconDotNet.HTuple(_sizeCols)); return(rg); }
public MyRegion(RoiType type, HalconDotNet.HRegion region) { mRoiType = type; mRegion = region; }
public override HalconDotNet.HRegion GetRegion() { HalconDotNet.HRegion region = new HalconDotNet.HRegion(); region.GenRectangle2(_locateRow, _locateCol, _phi, _length1, _length2); return(region); }
public override HalconDotNet.HRegion GetRegion() { HalconDotNet.HRegion rg = new HalconDotNet.HRegion(); rg.GenRegionLine(_startRow, _startCol, _extentRow, _extentCol); return(rg); }
public override HalconDotNet.HRegion GetRegion() { HalconDotNet.HRegion rg = new HalconDotNet.HRegion(); rg.GenCircle(_locateRow, _locateCol, _radius); return(rg); }