当前位置: 首页>>代码示例>>C#>>正文


C# HTuple.TupleLength方法代码示例

本文整理汇总了C#中HTuple.TupleLength方法的典型用法代码示例。如果您正苦于以下问题:C# HTuple.TupleLength方法的具体用法?C# HTuple.TupleLength怎么用?C# HTuple.TupleLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HTuple的用法示例。


在下文中一共展示了HTuple.TupleLength方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SetIADynamicParamTuple

        /// <summary>
        /// 
        /// </summary>        
        public void SetIADynamicParamTuple(HTuple paramName,
                                           HTuple paramValue)
        {
            string parameterName;
            int    indexOfdo_;

            // Check if the input parameters are valid
            if ((paramName.TupleLength() > 0) &&
                (paramName.TupleLength() == paramValue.TupleLength()))
            {
                // get string value of parameter name
                parameterName = paramName[0].S;
                // get the index of the string "do_"
                indexOfdo_    = parameterName.IndexOf("do_");

                    try
                    {
                        frameGrabber.SetFramegrabberParam(paramName,
                                                          paramValue);
                        // check if the parameter ist a "do_"-parameter
                        // these parameter cannot be read with the method
                        // get_framegrabber_param()
                        if (indexOfdo_ == -1)
                        {
                            // Acquire the changed value from IA Interface
                            paramValue =
                            frameGrabber.GetFramegrabberParam(paramName);
                        }

                        // fire event, to notify the main program,
                        // that the IA parameter has changed
                        if (OnParameterChange != null)
                            OnParameterChange(this, parameterName,
                                              paramValue);
                    }
                    catch (HOperatorException exc)
                    {
                        throw exc;
                    }
                    // add the entry to the list to
                    // record the order of parameter settings
                    AddAdjustedParamToHistoryList(parameterName,paramValue);
                }
                else
                {
                    throw new ArgumentException("Invalid name of IA" +
                                                " parameter!");
                }
        }
开发者ID:rtigithub,项目名称:HALCON-12-codelets,代码行数:52,代码来源:HImageAcquisition.cs

示例2: tuple_equal_greater

    private void tuple_equal_greater(HTuple hv_Tuple, 
                                   HTuple hv_Threshold, 
                                   out HTuple hv_Selected,
                                   out HTuple hv_Indices)
    {
        // Local control variables

        HTuple hv_Sgn;

        // Initialize local and output iconic variables

        hv_Selected = new HTuple();
        HOperatorSet.TupleSgn(hv_Tuple - hv_Threshold, out hv_Sgn);
        HOperatorSet.TupleFind(hv_Sgn, 1, out hv_Indices);
        if ((int)((new HTuple((new HTuple(hv_Indices.TupleLength())).TupleGreater(1))).TupleOr(
        new HTuple(((hv_Indices.TupleSelect(0))).TupleNotEqual(-1)))) != 0)
        {
          HOperatorSet.TupleSelect(hv_Tuple, hv_Indices, out hv_Selected);
        }

        return;
    }
开发者ID:rtigithub,项目名称:HALCON-12-codelets,代码行数:22,代码来源:QualityProcedures.cs

示例3: disp_3d_coord_system

    /// <summary>
    /// Display the axes of a 3d coordinate system.
    /// </summary>
    private void disp_3d_coord_system(HTuple hv_WindowHandle, 
                                    HTuple hv_CamParam, 
                                    HTuple hv_Pose,
                                    HTuple hv_CoordAxesLength)
    {
        // Local iconic variables

        HObject ho_ContX, ho_ContY, ho_ContZ;

        // Local control variables

        HTuple hv_TransWorld2Cam, hv_OrigCamX, hv_OrigCamY;
        HTuple hv_OrigCamZ, hv_Row0, hv_Column0, hv_X, hv_Y, hv_Z;
        HTuple hv_RowAxX, hv_ColumnAxX, hv_RowAxY, hv_ColumnAxY;
        HTuple hv_RowAxZ, hv_ColumnAxZ;

        // Initialize local and output iconic variables
        HOperatorSet.GenEmptyObj(out ho_ContX);
        HOperatorSet.GenEmptyObj(out ho_ContY);
        HOperatorSet.GenEmptyObj(out ho_ContZ);

        if ((int)(new HTuple((new HTuple(hv_Pose.TupleLength())).TupleNotEqual(7))) != 0)
        {
          ho_ContX.Dispose();
          ho_ContY.Dispose();
          ho_ContZ.Dispose();

          return;
        }
        if ((int)(new HTuple(((hv_Pose.TupleSelect(5))).TupleEqual(0.0))) != 0)
        {
          ho_ContX.Dispose();
          ho_ContY.Dispose();
          ho_ContZ.Dispose();

          return;
        }
        HOperatorSet.PoseToHomMat3d(hv_Pose, out hv_TransWorld2Cam);
        //Project the world origin into the image
        HOperatorSet.AffineTransPoint3d(hv_TransWorld2Cam, 0, 0, 0, out hv_OrigCamX,
        out hv_OrigCamY, out hv_OrigCamZ);
        HOperatorSet.Project3dPoint(hv_OrigCamX, hv_OrigCamY, hv_OrigCamZ, hv_CamParam,
        out hv_Row0, out hv_Column0);
        //Project the coordinate axes into the image
        HOperatorSet.AffineTransPoint3d(hv_TransWorld2Cam, hv_CoordAxesLength, 0, 0,
        out hv_X, out hv_Y, out hv_Z);
        HOperatorSet.Project3dPoint(hv_X, hv_Y, hv_Z, hv_CamParam, out hv_RowAxX, out hv_ColumnAxX);
        HOperatorSet.AffineTransPoint3d(hv_TransWorld2Cam, 0, hv_CoordAxesLength, 0,
        out hv_X, out hv_Y, out hv_Z);
        HOperatorSet.Project3dPoint(hv_X, hv_Y, hv_Z, hv_CamParam, out hv_RowAxY, out hv_ColumnAxY);
        HOperatorSet.AffineTransPoint3d(hv_TransWorld2Cam, 0, 0, hv_CoordAxesLength,
        out hv_X, out hv_Y, out hv_Z);
        HOperatorSet.Project3dPoint(hv_X, hv_Y, hv_Z, hv_CamParam, out hv_RowAxZ, out hv_ColumnAxZ);
        ho_ContX.Dispose();
        gen_arrow_cont(out ho_ContX, hv_Row0, hv_Column0, hv_RowAxX, hv_ColumnAxX);
        ho_ContY.Dispose();
        gen_arrow_cont(out ho_ContY, hv_Row0, hv_Column0, hv_RowAxY, hv_ColumnAxY);
        ho_ContZ.Dispose();
        gen_arrow_cont(out ho_ContZ, hv_Row0, hv_Column0, hv_RowAxZ, hv_ColumnAxZ);
        if (HDevWindowStack.IsOpen())
        {
          //dev_display (ContX)
        }
        if (HDevWindowStack.IsOpen())
        {
          //dev_display (ContY)
        }
        if (HDevWindowStack.IsOpen())
        {
          //dev_display (ContZ)
        }
        HOperatorSet.DispObj(ho_ContX, hv_WindowHandle);
        HOperatorSet.DispObj(ho_ContY, hv_WindowHandle);
        HOperatorSet.DispObj(ho_ContZ, hv_WindowHandle);
        HOperatorSet.SetTposition(hv_WindowHandle, hv_RowAxX + 3, hv_ColumnAxX + 3);
        HOperatorSet.WriteString(hv_WindowHandle, "X");
        HOperatorSet.SetTposition(hv_WindowHandle, hv_RowAxY + 3, hv_ColumnAxY + 3);
        HOperatorSet.WriteString(hv_WindowHandle, "Y");
        HOperatorSet.SetTposition(hv_WindowHandle, hv_RowAxZ + 3, hv_ColumnAxZ + 3);
        HOperatorSet.WriteString(hv_WindowHandle, "Z");
        ho_ContX.Dispose();
        ho_ContY.Dispose();
        ho_ContZ.Dispose();

        return;
    }
开发者ID:rtigithub,项目名称:HALCON-12-codelets,代码行数:89,代码来源:QualityProcedures.cs

示例4: find_caltab_edges


//.........这里部分代码省略.........
          ho_RegionDilation2.Dispose();
          HOperatorSet.DilationCircle(ho_RegionBorder1, out ho_RegionDilation2, 3.5);
          ho_RegionDifference1.Dispose();
          HOperatorSet.Difference(ho_RegionDynThresh, ho_RegionDilation2, out ho_RegionDifference1
          );
          ho_RegionOpening.Dispose();
          HOperatorSet.OpeningCircle(ho_RegionDifference1, out ho_RegionOpening, (hv_Width / 640) * 1.5);
          ho_ConnectedRegions.Dispose();
          HOperatorSet.Connection(ho_RegionOpening, out ho_ConnectedRegions);
          ho_SelectedRegions2.Dispose();
          HOperatorSet.SelectShape(ho_ConnectedRegions, out ho_SelectedRegions2, "area",
          "and", (hv_EstimatedCaltabSize.TuplePow(2)) / 10, (hv_EstimatedCaltabSize.TuplePow(
          2)) * 5);
          ho_SelectedRegions.Dispose();
          HOperatorSet.SelectShape(ho_SelectedRegions2, out ho_SelectedRegions, "compactness",
          "and", 1.4, 10);
          ho_RegionFillUp.Dispose();
          HOperatorSet.FillUp(ho_SelectedRegions, out ho_RegionFillUp);
          ho_SelectedRegions1.Dispose();
          HOperatorSet.SelectShape(ho_RegionFillUp, out ho_SelectedRegions1, "rectangularity",
          "and", 0.6, 1);
          ho_RegionIntersection.Dispose();
          HOperatorSet.Intersection(ho_SelectedRegions1, ho_RegionDynThresh, out ho_RegionIntersection
          );
          ho_RegionFillUp1.Dispose();
          HOperatorSet.FillUp(ho_RegionIntersection, out ho_RegionFillUp1);
          ho_RegionDifference.Dispose();
          HOperatorSet.Difference(ho_RegionFillUp1, ho_RegionIntersection, out ho_RegionDifference
          );
          HOperatorSet.CountObj(ho_RegionDifference, out hv_Number);
          ho_CaltabCandidates.Dispose();
          HOperatorSet.GenEmptyObj(out ho_CaltabCandidates);
          HOperatorSet.CaltabPoints(hv_DescriptionFileName, out hv_X, out hv_Y, out hv_Z);
          hv_NumDescrMarks = new HTuple(hv_X.TupleLength());
          for (hv_Index = 1; hv_Index.Continue(hv_Number, 1); hv_Index = hv_Index.TupleAdd(1))
          {
          ho_ObjectSelected.Dispose();
          HOperatorSet.SelectObj(ho_RegionDifference, out ho_ObjectSelected, hv_Index);
          ho_ConnectedMarks.Dispose();
          HOperatorSet.Connection(ho_ObjectSelected, out ho_ConnectedMarks);
          HOperatorSet.CountObj(ho_ConnectedMarks, out hv_NumberMarks);
          HOperatorSet.Eccentricity(ho_ConnectedMarks, out hv_Anisometry, out hv_Bulkiness,
              out hv_StructureFactor);
          HOperatorSet.AreaCenter(ho_ConnectedMarks, out hv_AreaMarks, out hv_Row, out hv_Column);
          ho_ObjectSelectedCaltab.Dispose();
          HOperatorSet.SelectObj(ho_RegionIntersection, out ho_ObjectSelectedCaltab,
              hv_Index);
          if ((int)((new HTuple((new HTuple((new HTuple(hv_NumberMarks.TupleGreaterEqual(
              10))).TupleAnd(new HTuple(hv_NumberMarks.TupleLess(hv_NumDescrMarks + 20))))).TupleAnd(
              new HTuple(((((hv_Anisometry.TupleSort())).TupleSelect((new HTuple(hv_Anisometry.TupleLength()
              )) / 2))).TupleLess(2))))).TupleAnd(new HTuple((new HTuple(hv_AreaMarks.TupleMean()
              )).TupleGreater(20)))) != 0)
          {
              HOperatorSet.ConcatObj(ho_CaltabCandidates, ho_ObjectSelectedCaltab, out OTemp[0]
                  );
              ho_CaltabCandidates.Dispose();
              ho_CaltabCandidates = OTemp[0];
          }
          }
          ho_RegionFillUpCand.Dispose();
          HOperatorSet.FillUp(ho_CaltabCandidates, out ho_RegionFillUpCand);
          HOperatorSet.Rectangularity(ho_RegionFillUpCand, out hv_Rectangularity);
          if ((int)(new HTuple((new HTuple(hv_Rectangularity.TupleLength())).TupleEqual(
          0))) != 0)
          {
          ho_ImageMean.Dispose();
开发者ID:rtigithub,项目名称:HALCON-12-codelets,代码行数:67,代码来源:QualityProcedures.cs

示例5: eval_caltab_tilt

    /// <summary>
    /// Measures the tilt that is used for the plates in the set
    /// of calibration images. The more tilted plates are used
    /// in the image set, the better you can correct the radial 
    /// distortion of the lense by performing the calibration.
    /// </summary>
    public void eval_caltab_tilt(HTuple hv_FinalPoses, 
                                out HTuple hv_TiltScore)
    {
        // Local control variables

          HTuple hv_NImages, hv_Ones, hv_Index, hv_Slant;
          HTuple hv_Pan, hv_FuzzyFunct, hv_SlantWeight, hv_PanWeight;
          HTuple hv_TmpPan, hv_TmpSlant;

          // Initialize local and output iconic variables

          hv_NImages = (new HTuple(hv_FinalPoses.TupleLength())) / 7;
          HOperatorSet.TupleGenConst(hv_NImages, 1, out hv_Ones);
          hv_Index = (hv_Ones.TupleCumul()) - 1;
          HOperatorSet.TupleSelect(hv_FinalPoses, (7 * hv_Index) + 3, out hv_Slant);
          HOperatorSet.TupleSelect(hv_FinalPoses, (7 * hv_Index) + 4, out hv_Pan);
          for (hv_Index = 0; (int)hv_Index <= (int)((new HTuple(hv_Slant.TupleLength())) - 1); hv_Index = (int)hv_Index + 1)
          {
          if ((int)(new HTuple(((hv_Slant.TupleSelect(hv_Index))).TupleGreater(180))) != 0)
          {
              if (hv_Slant == null)
                  hv_Slant = new HTuple();
              hv_Slant[hv_Index] = 360 - (hv_Slant.TupleSelect(hv_Index));
          }
          }
          for (hv_Index = 0; (int)hv_Index <= (int)((new HTuple(hv_Pan.TupleLength())) - 1); hv_Index = (int)hv_Index + 1)
          {
          if ((int)(new HTuple(((hv_Pan.TupleSelect(hv_Index))).TupleGreater(180))) != 0)
          {
              if (hv_Pan == null)
                  hv_Pan = new HTuple();
              hv_Pan[hv_Index] = 360 - (hv_Pan.TupleSelect(hv_Index));
          }
          }
          hv_Pan = hv_Pan.TupleRad();
          hv_Slant = hv_Slant.TupleRad();
          //function acting as a fuzzy weighting
          gen_fuzzy_weight_funct(256, (new HTuple(0.0)).TupleRad(), (new HTuple(90.0)).TupleRad()
          , (new HTuple(15.0)).TupleRad(), (new HTuple(40.0)).TupleRad(), out hv_FuzzyFunct);
          HOperatorSet.GetYValueFunct1d(hv_FuzzyFunct, hv_Slant, "constant", out hv_SlantWeight);
          HOperatorSet.GetYValueFunct1d(hv_FuzzyFunct, hv_Pan, "constant", out hv_PanWeight);
          //Calculate score value
          hv_TmpPan = (hv_PanWeight.TupleSum()) / 6;
          hv_TmpPan = ((hv_TmpPan.TupleConcat(0.5))).TupleMin();
          hv_TmpSlant = (hv_SlantWeight.TupleSum()) / 6;
          hv_TmpSlant = ((hv_TmpSlant.TupleConcat(0.5))).TupleMin();
          hv_TiltScore = hv_TmpSlant + hv_TmpPan;

          return;
    }
开发者ID:rtigithub,项目名称:HALCON-12-codelets,代码行数:56,代码来源:QualityProcedures.cs

示例6: Action


//.........这里部分代码省略.........
            //A3_X, A3_Y 分量
            hv_A3_X = (hv_STD_A3_V_Col * (hv_Img_Rotate_Angle.TupleCos())) + (hv_STD_A3_V_Row * (hv_Img_Rotate_Angle.TupleSin()
                ));
            hv_A3_Y = (hv_STD_A3_V_Row * (hv_Img_Rotate_Angle.TupleCos())) - (hv_STD_A3_V_Col * (hv_Img_Rotate_Angle.TupleSin()
                ));

            //目前圖形 A3_ 位置
            hv_A3_Pos_Row = (hv_STD_Row + hv_A3_Y) + hv_OffsetRow;
            hv_A3_Pos_Col = (hv_STD_Col + hv_A3_X) + hv_OffsetCol;

            //A3_ROI
            hv_A3_ROI_W = 40;
            hv_A3_ROI_H = 140;
            ho_A3_Region.Dispose();
            HOperatorSet.GenRectangle2(out ho_A3_Region, hv_A3_Pos_Row, hv_A3_Pos_Col,
                hv_Img_Rotate_Angle, hv_A3_ROI_W, hv_A3_ROI_H);
            //stop ()
            ho_A3_Reduced.Dispose();
            HOperatorSet.ReduceDomain(ho_Image, ho_A3_Region, out ho_A3_Reduced);
            //fit_Rectangle, 找金手指
            ho_A3Region.Dispose();
            HOperatorSet.FastThreshold(ho_A3_Reduced, out ho_A3Region, 100, 250, 20);
            ho_A3_RegionBorder.Dispose();
            HOperatorSet.Boundary(ho_A3Region, out ho_A3_RegionBorder, "inner");
            if (HDevWindowStack.IsOpen())
            {
                //dev_display (A3_RegionBorder)
            }
            hv_Rec_W = 11;
            hv_Rec_H = 11;
            ho_A3_RegionDilation.Dispose();
            HOperatorSet.DilationRectangle1(ho_A3_RegionBorder, out ho_A3_RegionDilation,
                hv_Rec_W, hv_Rec_H);
            //alpha 大容錯大
            hv_A3_Alpha = 4;
            hv_low = 10;
            hv_high = 100;
            ho_A3_Edges.Dispose();
            HOperatorSet.EdgesSubPix(ho_A3_Reduced, out ho_A3_Edges, "canny", hv_A3_Alpha,
                hv_low, hv_high);
            //stop ()
            hv_a3Limit = 200;
            ho_A3_Rectangles.Dispose();
            HOperatorSet.SelectShapeXld(ho_A3_Edges, out ho_A3_Rectangles, "contlength",
                "and", hv_a3Limit, 99999);
            HOperatorSet.CountObj(ho_A3_Rectangles, out hv_A3RecNumber);
            while ((int)(new HTuple(hv_A3RecNumber.TupleGreater(1))) != 0)
            {
                hv_a3Limit = hv_a3Limit + 10;
                ho_A3_Rectangles.Dispose();
                HOperatorSet.SelectShapeXld(ho_A3_Edges, out ho_A3_Rectangles, "contlength",
                    "and", hv_a3Limit, 99999);
                HOperatorSet.CountObj(ho_A3_Rectangles, out hv_A3RecNumber);
            }
            HOperatorSet.FitRectangle2ContourXld(ho_A3_Rectangles, "regression", -1, 0,
                0, 3, 2, out hv_A3Row, out hv_A3Column, out hv_A3Phi, out hv_A3Length1,
                out hv_A3Length2, out hv_A3PointOrder);
            //取A3 中心點
            HOperatorSet.CountObj(ho_A3_Rectangles, out hv_A3Number);
            if ((int)(new HTuple(hv_A3Number.TupleGreater(0))) != 0)
            {
                ho_A3Object.Dispose();
                HOperatorSet.SelectObj(ho_A3_Rectangles, out ho_A3Object, 1);
                //stop ()
                //取 A2Object 資訊
                hv_A3_Center_X = hv_A3Column[0];
                hv_A3_Center_Y = hv_A3Row[0];
                ho_A3Cross.Dispose();
                HOperatorSet.GenCrossContourXld(out ho_A3Cross, hv_A3Row, hv_A3Column, 10, 0);

                if (hv_A3Row.TupleLength() > 0 && hv_A2Row.TupleLength() > 0)
                {
                    mResult.Row2 = new HTuple(hv_A3Row);
                    mResult.Col2 = new HTuple(hv_A3Column);
                    HOperatorSet.DistancePp(hv_A2Row, hv_A2Column, hv_A3Row, hv_A3Column, out mResult.Distance);
                }
            }

            //*****A3 End

            ho_A2_Region.Dispose();
            ho_A2_Reduced.Dispose();
            ho_A2Region.Dispose();
            ho_A2_RegionBorder.Dispose();
            ho_A2_RegionDilation.Dispose();
            ho_A2_Edges.Dispose();
            ho_A2_Rectangles.Dispose();
            ho_A2Cross.Dispose();
            ho_A3_Region.Dispose();
            ho_A3_Reduced.Dispose();
            ho_A3Region.Dispose();
            ho_A3_RegionBorder.Dispose();
            ho_A3_RegionDilation.Dispose();
            ho_A3_Edges.Dispose();
            ho_A3_Rectangles.Dispose();
            ho_A3Object.Dispose();
            ho_A3Cross.Dispose();

            return mResult;
        }
开发者ID:Joncash,项目名称:HanboAOMClassLibrary,代码行数:101,代码来源:SDMS_A3.cs


注:本文中的HTuple.TupleLength方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。