《zw版·Halcon-delphi系列原创教程》 Halcon分类函数017·point点函数
为方便阅读,在不影响说明的前提下,笔者对函数进行了简化:
- :: 用符号“**”,替换:“procedure”
- :: 用大写字母“X”,替换:“IHUntypedObjectX”
- :: 省略了字符:“const”、“OleVariant”
【示例】 说明
函数:
procedure AddNoiseWhiteContourXld( const Contours: IHUntypedObjectX; out NoisyContours: IHUntypedObjectX; NumRegrPoints: OleVariant; Amp: OleVariant);
简化后为:
** AddNoiseWhiteContourXld( Contours: X; out NoisyContours: X; NumRegrPoints, Amp);
---------------------- 【《zw版·Halcon-delphi系列原创教程》,网址,cnblogs.com/ziwang/】 ----------------------
1 ** AddNoiseWhiteContourXld( Contours: X; out NoisyContours: X; NumRegrPoints, Amp); 2 说明, add_noise_white_contour_xld,向XLD轮廓,中加入噪声。 3 4 ** AffineTransPoint2D( HomMat2d, Px, Py, out Qx, out Qy); 5 说明, affine_trans_point_2d,对点进行任意的最简二维变换 6 7 ** AffineTransPoint3D( HomMat3d, Px, Py, Pz, out Qx, out Qy, out Qz); 8 说明, affine_trans_point_3d,对点运用一个随即仿射三维变换。 9 10 ** AreaCenterPointsXld( XLD: X; out Area, out Row, out Column); 11 说明, area_center_points_xld,被看做点云的轮廓,和多边形(polygon)的面积和重心。 12 13 ** AreaCenterXld( XLD: X; out Area, out Row, out Column, out PointOrder); 14 说明, area_center_xld,轮廓,和多边形(polygon)的面积和重心。 15 16 ** CaltabPoints( CalTabDescrFile, out X, out Y, out Z); 17 说明, caltab_points,从校准板说明文件中读取标志中心点。 18 19 ** ChangeRadialDistortionPoints( Row, Col, CamParamIn, CamParamOut, out RowChanged, out ColChanged); 20 说明, 改变点的放射失真。 21 22 ** ClipEndPointsContoursXld( Contours: X; out ClippedContours: X; Mode, Length); 23 说明, clip_end_points_contours_xld,去除线条两端的部分像素。 24 25 ** ClosestPointTransform( Region: X; out Distances: X; out ClosestPoints: X; Metric, Foreground, ClosestPointMode, Width, Height); 26 说明, 关闭点变换 27 28 ** ConnectGridPoints( Image: X; out ConnectingLines: X; Row, Column, Sigma, MaxDist); 29 说明, connect_grid_points,建立矫正网格的矫正点间的连接。 30 31 ** ContourPointNumXld( Contour: X; out Length); 32 说明, contour_point_num_xld,返回一个XLD轮廓,中点的数目。 33 34 ** ConvertPoint3DCartToSpher( X, Y, Z, EquatPlaneNormal, ZeroMeridian, out Longitude, out Latitude, out Radius); 35 说明, convert_point_3d_cart_to_spher,把直角坐标系中的一个3D点转变为极坐标。 36 37 ** ConvertPoint3DSpherToCart( Longitude, Latitude, Radius, EquatPlaneNormal, ZeroMeridian, out X, out Y, out Z); 38 说明, convert_point_3d_spher_to_cart,把极坐标中的一个3D点转变为直角坐标。 39 40 ** CreateCamPoseLookAtPoint( CamPosX, CamPosY, CamPosZ, LookAtX, LookAtY, LookAtZ, RefPlaneNormal, CamRoll, out CamPose); 41 说明, create_cam_pose_look_at_point,从摄像机中心和观察方向创建一个3D摄像机位置。 42 43 ** CreateSerializedItemPtr( Pointer, Size, Copy, out SerializedItemHandle); 44 说明, 建立序列数据 45 46 ** CriticalPointsSubPix( Image: X; Filter, Sigma, Threshold, out RowMin, out ColumnMin, out RowMax, out ColumnMax, out RowSaddle, out ColumnSaddle); 47 说明, critical_points_sub_pix,一幅图像中主要点的子像素精确度检测。 48 49 ** DisparityToPoint3D( CamParamRect1, CamParamRect2, RelPoseRect, Row1, Col1, Disparity, out X, out Y, out Z); 50 说明, disparity_to_point_3d,将一个图像点和它的不均衡值转换为一个矫正立体系统中的三维点。 51 52 ** DistEllipseContourPointsXld( Contour: X; DistanceMode, ClippingEndPoints, Row, Column, Phi, Radius1, Radius2, out Distances); 53 说明, dist_ellipse_contour_points_xld,计算所有轮廓,内的点到一个椭圆的距离。 54 55 ** DistEllipseContourXld( Contours: X; Mode, MaxNumPoints, ClippingEndPoints, Row, Column, Phi, Radius1, Radius2, out MinDist, out MaxDist, out AvgDist, out SigmaDist); 56 说明, dist_ellipse_contour_xld,轮廓到一个椭圆的距离。 57 58 ** DistRectangle2ContourPointsXld( Contour: X; ClippingEndPoints, Row, Column, Phi, Length1, Length2, out Distances); 59 说明, dist_rectangle2_contour_points_xld,计算所有轮廓,内的点到一个矩形的距离。 60 61 ** DrawPoint( WindowHandle, out Row, out Column); 62 说明, draw_point,画一个点。 63 64 ** DrawPointMod( WindowHandle, RowIn, ColumnIn, out Row, out Column); 65 说明, draw_point_mod,画一个点。 66 67 ** EccentricityPointsXld( XLD: X; out Anisometry); 68 说明, eccentricity_points_xld,被看做点云的轮廓,或多变形(polygon)的Anisometry。 69 70 ** EllipticAxisPointsXld( XLD: X; out Ra, out Rb, out Phi); 71 说明, elliptic_axis_points_xld,被看做点云的轮廓,或多边形(polygon)的等价椭圆参数。 72 73 ** Find1DBarCodeScanline( Image: X; out CodeRegion: X; BarCodeDescr, GenericName, GenericValue, StopIfFound, out BarcodeFound, out BarCodeElements, out Orientation, out ScanlineNumPoints, out ScanlineDecoded, out ScanlinePointsRow, out ScanlinePointsColumn); 74 说明, find_1d_bar_code_scanline,搜索一幅图像中的一个条形码。 75 76 ** FindSurfaceModel( SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue, out Pose, out Score, out SurfaceMatchingResultID); 77 说明, 找出表面模型 78 79 ** FitCircleContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, 80 81 ** FitEllipseContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, 82 83 ** FitLineContourXld( Contours: X; Algorithm, MaxNumPoints, ClippingEndPoints, Iterations, ClippingFactor, out RowBegin, out ColBegin, out RowEnd, out ColEnd, out Nr, out Nc, out Dist); 84 85 ** FitRectangle2ContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, Iterations, ClippingFactor, out Row, out Column, out Phi, out Length1, out Length2, out PointOrder); 86 说明, fit_rectangle2_contour_xld,用矩形来匹配XLD轮廓,。 87 88 ** GenCircleContourXld( out ContCircle: X; Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolution); 89 90 ** GenImage1( out Image: X; Type_, Width, Height, PixelPointer); 91 说明, gen_image1,从像素的一个指针创建一个图像。 92 93 ** GenImage1Extern( out Image: X; Type_, Width, Height, PixelPointer, ClearProc); 94 说明, gen_image1_extern,从带存储管理的像素的一个指针创建一个图像。 95 96 ** GenImage1Rect( out Image: X; PixelPointer, Width, Height, VerticalPitch, HorizontalBitPitch, BitsPerPixel, DoCopy, ClearProc); 97 说明, gen_image1_rect,从像素(带存储管理)的指针创建一个矩形区域的图像。 98 99 ** GenImage3( out ImageRGB: X; Type_, Width, Height, PixelPointerRed, PixelPointerGreen, PixelPointerBlue); 100 说明, gen_image3,从像素(红、绿、蓝)的三个指针创建一个图像。 101 102 ** GenImage3Extern( out Image: X; Type_, Width, Height, PointerRed, PointerGreen, PointerBlue, ClearProc); 103 说明, gen_image3,从像素(红、绿、蓝)的三个指针创建一个图像,带参数。 104 105 ** GenImageInterleaved( out ImageRGB: X; PixelPointer, ColorFormat, OriginalWidth, OriginalHeight, Alignment, Type_, ImageWidth, ImageHeight, StartRow, StartColumn, BitsPerChannel, BitShift); 106 说明, gen_image_interleaved,从交叉像素的一个指针创建一个三通道图像。 107 108 ** GenObjectModel3DFromPoints( X, Y, Z, out ObjectModel3D); 109 说明, 从节点生成3d模型对象 110 111 ** GenRegionPoints( out Region: X; Rows, Columns); 112 说明, gen_region_points,将个别的像素存储为图像区域。 113 114 ** Get1DBarCodeScanline( BarCodeRegion: X; BarCodeDescr, GenericName, GenericValue, Orientation, StopIfFound, out BarCodeElements, out ScanlineNumPoints, out ScanlineDecoded, out ScanlinePointsRow, out ScanlinePointsColumn); 115 说明, get_1d_bar_code_scanline,提取一个条形码区域中元素的宽度。 116 117 ** GetCalibDataObservPoints( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, out Row, out Column, out Index, out Pose); 118 说明, 获取校准数据节点 119 120 ** GetDescriptorModelPoints( ModelID, Set_, Subset, out Row, out Column); 121 说明, 获取描述模型节点 122 123 ** GetImagePointer1( Image: X; out Pointer, out Type_, out Width, out Height); 124 说明, get_image_pointer1,获取Image图像的数据指针Pointer,图像类型Type,图像宽度Width和高度Height。Pointer指向了Image data的起点位置。 125 126 ** GetImagePointer1Rect( Image: X; out PixelPointer, out Width, out Height, out VerticalPitch, out HorizontalBitPitch, out BitsPerPixel); 127 说明, get_image_pointer1_rect,获取图像数据指针和输入图像区域内最小矩形内部的图像数据。 128 129 ** GetImagePointer3( ImageRGB: X; out PointerRed, out PointerGreen, out PointerBlue, out Type_, out Width, out Height); 130 说明, get_image_pointer3,获取Image图像中坐标为(Row,Column)的点的R、G、B三色值l。 131 132 ** GetPointsEllipse( Angle, Row, Column, Phi, Radius1, Radius2, out RowPoint, out ColPoint); 133 134 ** GetRegionPoints( Region: X; out Rows, out Columns); 135 说明, get_region_points,查询一个区域的像素数。 136 137 ** GetSerializedItemPtr( SerializedItemHandle, out Pointer, out Size); 138 说明, 获取序列化ptr参数 139 140 ** GetWindowPointer3( WindowHandle, out ImageRed, out ImageGreen, out ImageBlue, out Width, out Height); 141 说明, get_window_pointer3,窗口像素数据的通道。 142 143 ** HandEyeCalibration( X, Y, Z, Row, Col, NumPoints, RobotPoses, CameraParam, Method, QualityType, out CameraPose, out CalibrationPose, out Quality); 144 说明, hand_eye_calibration,执行一个手---眼校准。 145 146 ** HomMat3dProject( HomMat3d, PrincipalPointRow, PrincipalPointCol, Focus, out HomMat2d); 147 说明, hom_mat3d_project,给一个二维投影变换矩阵投影一个仿射三维变换矩阵。 148 149 ** ImagePointsToWorldPlane( CameraParam, WorldPose, Rows, Cols, Scale, out X, out Y); 150 说明, image_points_to_world_plane,将图像中的点转换到坐标轴平面Z为零上。 151 152 ** InterpolateScatteredDataPointsToImage( out ImageInterpolated: X; Method, Rows, Columns, Values, Width, Height, GenParamNames, GenParamValues); 153 说明, 计算图像散布节点的交集。 154 155 ** IntersectionCircleContourXld( Contour: X; CircleRow, CircleColumn, CircleRadius, CircleStartPhi, CircleEndPhi, CirclePointOrder, out Row, out Column); 156 说明, 计算xld圆形对象交集。 157 158 ** IntersectionCircles( Circle1Row, Circle1Column, Circle1Radius, Circle1StartPhi, Circle1EndPhi, Circle1PointOrder, Circle2Row, Circle2Column, Circle2Radius, Circle2StartPhi, Circle2EndPhi, Circle2PointOrder, out Row, out Column, out IsOverlapping); 159 说明, 计算圆形对象交集。 160 161 ** IntersectionLineCircle( LineRow1, LineColumn1, LineRow2, LineColumn2, CircleRow, CircleColumn, CircleRadius, CircleStartPhi, CircleEndPhi, CirclePointOrder, out Row, out Column); 162 说明, 计算直线-圆形对象交集。 163 164 ** IntersectionSegmentCircle( SegmentRow1, SegmentColumn1, SegmentRow2, SegmentColumn2, CircleRow, CircleColumn, CircleRadius, CircleStartPhi, CircleEndPhi, CirclePointOrder, out Row, out Column); 165 说明, 计算圆形分段对象交集。 166 167 ** JunctionsSkeleton( Region: X; out EndPoints: X; out JuncPoints: X); 168 说明, junctions_skeleton,找到框架中的结点和终点。 169 170 ** MatchEssentialMatrixRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, CamMat1, CamMat2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out EMatrix, out CovEMat, out Error, out Points1, out Points2); 171 说明, 按RANSA算法匹配矩阵 172 173 ** MatchFundamentalMatrixDistortionRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out FMatrix, out Kappa, out Error, out Points1, out Points2); 174 说明, 按RANSA算法匹配矩阵,有失真度参数 175 176 ** MatchFundamentalMatrixRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out FMatrix, out CovFMat, out Error, out Points1, out Points2); 177 说明, 按RANSA算法匹配矩阵,基本匹配 178 179 ** MatchRelPoseRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, CamPar1, CamPar2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out RelPose, out CovRelPose, out Error, out Points1, out Points2); 180 说明, 按RANSA算法匹配相对位置 181 182 ** MomentsAnyPointsXld( XLD: X; Mode, Area, CenterRow, CenterCol, P, Q, out M); 183 说明, moments_any_points_xld,被看做点云的轮廓,或多变形(polygon)的任意几何时刻(moments)。 184 185 ** MomentsAnyXld( XLD: X; Mode, PointOrder, Area, CenterRow, CenterCol, P, Q, out M); 186 说明, moments_any_xld,轮廓,或多变形(polygon)的任意集合时刻(moments)。 187 188 ** MomentsPointsXld( XLD: X; out M11, out M20, out M02); 189 说明, moments_points_xld,被看做点云的轮廓,或多变形(polygon)的几何时刻(moments)M20, M02, 和 M11。 190 191 ** NumPointsFunct1D( Function_, out Length); 192 说明, num_points_funct_1d,函数控制点的数目。 193 194 ** OrientationPointsXld( XLD: X; out Phi); 195 说明, orientation_points_xld,被看做点云的轮廓,或多变形(polygon)的方向。 196 197 ** PointsFoerstner( Image: X; SigmaGrad, SigmaInt, SigmaPoints, ThreshInhom, ThreshShape, Smoothing, EliminateDoublets, out RowJunctions, out ColumnJunctions, out CoRRJunctions, out CoRCJunctions, out CoCCJunctions, out RowArea, out ColumnArea, out CoRRArea, out CoRCArea, out CoCCArea); 198 说明, points_foerstner,使用F?rstner算子检测关注点。 199 200 ** PointsHarris( Image: X; SigmaGrad, SigmaSmooth, Alpha, Threshold, out Row, out Column); 201 说明, points_harris,使用Harris算子检测关注点。 202 203 ** PointsHarrisBinomial( Image: X; MaskSizeGrad, MaskSizeSmooth, Alpha, Threshold, Subpix, out Row, out Column); 204 说明, 使用Harris算子检测关注二项式。 205 206 ** PointsLepetit( Image: X; Radius, CheckNeighbor, MinCheckNeighborDiff, MinScore, Subpix, out Row, out Column); 207 说明, 208 209 ** PointsSojka( Image: X; MaskSize, SigmaW, SigmaD, MinGrad, MinApparentness, MinAngle, Subpix, out Row, out Column); 210 说明, points_sojka,使用Sojka算子找出角点。 211 212 ** Project3DPoint( X, Y, Z, CameraParam, out Row, out Column); 213 说明, project_3d_point,将三维点投射到子像素图像坐标。 214 215 ** ProjectHomPointHomMat3d( HomMat3d, Px, Py, Pz, Pw, out Qx, out Qy, out Qw); 216 说明, 3D目标模型,投影坐标计算 217 218 ** ProjectiveTransHomPoint3D( HomMat3d, Px, Py, Pz, Pw, out Qx, out Qy, out Qz, out Qw); 219 说明, 3d节点,投影变换矩阵计算 220 221 ** ProjectiveTransPoint2D( HomMat2d, Px, Py, Pw, out Qx, out Qy, out Qw); 222 说明, projective_trans_point_2d,利用一个投影变换矩阵表示一个二维齐次点。 223 224 ** ProjectiveTransPoint3D( HomMat3d, Px, Py, Pz, out Qx, out Qy, out Qz); 225 226 ** ProjectPointHomMat3d( HomMat3d, Px, Py, Pz, out Qx, out Qy); 227 说明, 3D目标模型,节点投影坐标计算 228 229 ** ProjMatchPointsDistortionRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out HomMat2d, out Kappa, out Error, out Points1, out Points2); 230 说明, Ransac算法节点投影失真计算 231 232 ** ProjMatchPointsDistortionRansacGuided( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, HomMat2dGuide, KappaGuide, DistanceTolerance, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out HomMat2d, out Kappa, out Error, out Points1, out Points2); 233 说明, Ransac引导算法节点投影失真计算 234 235 ** ProjMatchPointsRansac( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, RowMove, ColMove, RowTolerance, ColTolerance, Rotation, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out HomMat2d, out Points1, out Points2); 236 说明, Ransac算法,投影节点匹配 237 238 ** ProjMatchPointsRansacGuided( Image1: X; Image2: X; Rows1, Cols1, Rows2, Cols2, GrayMatchMethod, MaskSize, HomMat2dGuide, DistanceTolerance, MatchThreshold, EstimationMethod, DistanceThreshold, RandSeed, out HomMat2d, out Points1, out Points2); 239 说明, Ransac引导算法,投影节点匹配 240 241 ** QuatRotatePoint3D( Quaternion, Px, Py, Pz, out Qx, out Qy, out Qz); 242 说明, Quat旋转矩阵,节点3D旋转 243 244 ** RadialDistortionSelfCalibration( Contours: X; out SelectedContours: X; Width, Height, InlierThreshold, RandSeed, DistortionModel, DistortionCenter, PrincipalPointVar, out CameraParam); 245 说明, 失真校准取值范围 246 247 ** ructPointsStereo( StereoModelID, Row, Column, CovIP, CameraIdx, PointIdx, out X, out Y, out Z, out CovWP, out PointIdxOut); 248 说明, 从立体节点获取高度 249 250 ** SaddlePointsSubPix( Image: X; Filter, Sigma, Threshold, out Row, out Column); 251 说明, saddle_points_sub_pix,一幅图像中底部点的子像素精确度检测。 252 253 ** SelectPointsObjectModel3D( ObjectModel3D, Attrib, MinValue, MaxValue, out ObjectModel3DThresholded); 254 说明, 选择3d模型节点。 255 256 ** SelectRegionPoint( Regions: X; out DestRegions: X; Row, Column); 257 说明, select_region_point,选择包括给定像素在内的所有区域。 258 259 ** SelectXldPoint( XLDs: X; out DestXLDs: X; Row, Column); 260 说明, select_xld_point,选择包括给定点在内的所有的轮廓,或多边形(polygon)。 261 262 ** SetCalibDataObservPoints( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, Row, Column, Index, Pose); 263 说明, 设置校准数据节点 264 265 ** ShapeHistoPoint( Region: X; Image: X; Feature, Row, Column, out AbsoluteHisto, out RelativeHisto); 266 说明, shape_histo_point,用极限值确定特征的一个直方图。 267 268 ** SmallestSphereObjectModel3D( ObjectModel3D, out CenterPoint, out Radius); 269 说明, 3d模型最小外接球形对象 270 271 ** SmoothContoursXld( Contours: X; out SmoothedContours: X; NumRegrPoints); 272 说明, smooth_contours_xld,XLD轮廓,的平滑。 273 274 ** TestRegionPoint( Regions: X; Row, Column, out IsInside); 275 说明, 测试区域节点 276 277 ** TestXldPoint( XLD: X; Row, Column, out IsInside); 278 说明, test_xld_point,测试一个或多个包括给定点在内的轮廓,或多边形(polygon)。 279 280 ** VectorToProjHomMat2dDistortion( Points1Row, Points1Col, Points2Row, Points2Col, CovRR1, CovRC1, CovCC1, CovRR2, CovRC2, CovCC2, ImageWidth, ImageHeight, Method, out HomMat2d, out Kappa, out Error); 281 说明, 矢量2d矩阵失真变换