《zw版·Halcon-delphi系列原创教程》 Halcon分类函数003·contour,轮廓处理
为方便阅读,在不影响说明的前提下,笔者对函数进行了简化:
- :: 用符号“**”,替换:“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);
1 ** AddNoiseWhiteContourXld( Contours: X; out NoisyContours: X; NumRegrPoints, Amp); 2 说明, add_noise_white_contour_xld,向XLD轮廓,中加入噪声。 3 4 ** AffineTransContourXld( Contours: X; out ContoursAffinTrans: X; HomMat2d); 5 6 ** ChangeRadialDistortionContoursXld( Contours: X; out ContoursRectified: X; CamParamIn, CamParamOut); 7 说明, change_radial_distortion_contours_xld,改变了轮廓,的放射失真。 8 9 ** ClipContoursXld( Contours: X; out ClippedContours: X; Row1, Column1, Row2, Column2); 10 说明, clip_contours_xld,修剪一个XLD轮廓,。 11 12 ** ClipEndPointsContoursXld( Contours: X; out ClippedContours: X; Mode, Length); 13 说明, clip_end_points_contours_xld,去除线条两端的部分像素。 14 15 ** CloseContoursXld( Contours: X; out ClosedContours: X); 16 说明, close_contours_xld,关闭一个XLD轮廓,。 17 18 ** ClusterModelComponents( TrainingImages: X; out ModelComponents: X; ComponentTrainingID, AmbiguityCriterion, MaxContourOverlap, ClusterThreshold); 19 说明, cluster_model_components,把用于创建模型组件的新参数用于训练结果。 20 21 ** ContourPointNumXld( Contour: X; out Length); 22 说明, contour_point_num_xld,返回一个XLD轮廓,中点的数目。 23 24 ** ContourToWorldPlaneXld( Contours: X; out ContoursTrans: X; CameraParam, WorldPose, Scale); 25 说明, contour_to_world_plane_xld,将一个XLD轮廓,转换为一个坐标系统中平面Z为零。 26 27 ** CreateAnisoShapeModelXld( Contours: X; NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, MinContrast, out ModelID); 28 说明, 为各向异性尺度不变匹配准备一个XLD模型 29 30 ** CreateLocalDeformableModelXld( Contours: X; NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, MinContrast, ParamName, ParamValue, out ModelID); 31 说明, 建立本地XLD变形模型 32 33 ** CreatePlanarCalibDeformableModelXld( Contours: X; CamParam, ReferencePose, NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, MinContrast, ParamName, ParamValue, out ModelID); 34 说明, 建立XLD变形模型校准平面 35 36 ** CreatePlanarUncalibDeformableModelXld( Contours: X; NumLevels, AngleStart, AngleExtent, AngleStep, ScaleRMin, ScaleRMax, ScaleRStep, ScaleCMin, ScaleCMax, ScaleCStep, Optimization, Metric, MinContrast, ParamName, ParamValue, out ModelID); 37 说明, 建立XLD变形模型无校准平面 38 39 ** CreateScaledShapeModelXld( Contours: X; NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, MinContrast, out ModelID); 40 说明, 为尺度不变匹配准备一个XLD轮廓模型。 41 42 ** CreateShapeModelXld( Contours: X; NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, MinContrast, out ModelID); 43 说明, 建立轮廓XLD模型 44 45 ** CropContoursXld( Contours: X; out CroppedContours: X; Row1, Col1, Row2, Col2, CloseContours); 46 说明, crop_contours_xld,切割一个XLD轮廓,。 47 48 ** DifferenceClosedContoursXld( Contours: X; Sub: X; out ContoursDifference: X); 49 说明, difference_closed_contours_xld,闭合轮廓,的差异。 50 51 ** DistanceCc( Contour1: X; Contour2: X; Mode, out DistanceMin, out DistanceMax); 52 说明, distance_cc,计算两个轮廓,间的距离。 53 54 ** DistanceCcMin( Contour1: X; Contour2: X; Mode, out DistanceMin); 55 说明, distance_cc_min,计算两个轮廓,间的最小距离。 56 57 ** DistanceLc( Contour: X; Row1, Column1, Row2, Column2, out DistanceMin, out DistanceMax); 58 说明, distance_lc,计算一条线和一个轮廓,间的距离。 59 60 ** DistancePc( Contour: X; Row, Column, out DistanceMin, out DistanceMax); 61 说明, distance_pc,计算一个点和一个轮廓,间的距离。 62 63 ** DistanceSc( Contour: X; Row1, Column1, Row2, Column2, out DistanceMin, out DistanceMax); 64 说明, distance_sc,计算一条分割线和一个轮廓,间的距离。 65 66 ** DistEllipseContourPointsXld( Contour: X; DistanceMode, ClippingEndPoints, Row, Column, Phi, Radius1, Radius2, out Distances); 67 说明, dist_ellipse_contour_points_xld,计算所有轮廓,内的点到一个椭圆的距离。 68 69 ** DistEllipseContourXld( Contours: X; Mode, MaxNumPoints, ClippingEndPoints, Row, Column, Phi, Radius1, Radius2, out MinDist, out MaxDist, out AvgDist, out SigmaDist); 70 说明, dist_ellipse_contour_xld,轮廓到一个椭圆的距离。 71 72 ** DistRectangle2ContourPointsXld( Contour: X; ClippingEndPoints, Row, Column, Phi, Length1, Length2, out Distances); 73 说明, dist_rectangle2_contour_points_xld,计算所有轮廓,内的点到一个矩形的距离。 74 75 ** FindLocalDeformableModel( Image: X; out ImageRectified: X; out VectorField: X; out DeformedContours: X; ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, ResultType, ParamName, ParamValue, out Score, out Row, out Column); 76 77 ** FitCircleContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, 78 79 ** FitEllipseContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, 80 81 ** FitLineContourXld( Contours: X; Algorithm, MaxNumPoints, ClippingEndPoints, Iterations, ClippingFactor, out RowBegin, out ColBegin, out RowEnd, out ColEnd, out Nr, out Nc, out Dist); 82 83 ** FitRectangle2ContourXld( Contours: X; Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, Iterations, ClippingFactor, out Row, out Column, out Phi, out Length1, out Length2, out PointOrder); 84 说明, fit_rectangle2_contour_xld,用矩形来匹配XLD轮廓,。 85 86 ** Fourier1Dim( Rows, Columns, ParContour, MaxCoef, out RealCoef, out ImaginaryCoef); 87 说明, fourier_1dim,计算一个参数化的元组的傅里叶系数。 88 89 ** GenCircleContourXld( out ContCircle: X; Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolution); 90 91 ** GenContourNurbsXld( out Contour: X; Rows, Cols, Knots, Weights, Degree, MaxError, MaxDistance); 92 93 ** GenContourPolygonRoundedXld( out Contour: X; Row, Col, Radius, SamplingInterval); 94 说明, gen_contour_polygon_rounded_xld,根据一个多边形(polygon)(以元组形式给出)的圆形角点创建一个XLD轮廓,。 95 96 ** GenContourPolygonXld( out Contour: X; Row, Col); 97 说明, gen_contour_polygon_xld,根据一个多边形(polygon)(以元组形式给出)创建一个XLD轮廓,。 98 99 ** GenContourRegionXld( Regions: X; out Contours: X; Mode); 100 101 ** GenContoursSkeletonXld( Skeleton: X; out Contours: X; Length, Mode); 102 说明, gen_contours_skeleton_xld,将框架转换为XLD轮廓,。 103 104 ** GenCrossContourXld( out Cross: X; Row, Col, Size, Angle); 105 说明, gen_cross_contour_xld,根据每个输入点交叉的形状创键一个XLD轮廓,。 106 107 ** GenEllipseContourXld( out ContEllipse: X; Row, Column, Phi, Radius1, Radius2, 108 109 ** GenParallelContourXld( Contours: X; out ParallelContours: X; Mode, Distance); 110 说明, gen_parallel_contour_xld,计算一个XLD轮廓,的平行轮廓,。 111 112 ** GenPolygonsXld( Contours: X; out Polygons: X; Type_, Alpha); 113 说明, gen_polygons_xld,根据多边形近似创建XLD轮廓,。 114 115 ** GenRectangle2ContourXld( out Rectangle: X; Row, Column, Phi, Length1, Length2); 116 说明, gen_rectangle2_contour_xld,创建一个矩形XLD轮廓,。 117 118 ** GenRegionContourXld( Contour: X; out Region: X; Mode); 119 说明, gen_region_contour_xld,从XLD元组中创建一个区域。 120 121 ** GetCalibDataObservContours( out Contours: X; CalibDataID, ContourName, CameraIdx, CalibObjIdx, CalibObjPoseIdx); 122 说明, 获取校准数据轮廓 123 124 ** GetCirclePose( Contour: X; CameraParam, Radius, out putType, out Pose1, out Pose2); 125 说明, get_circle_pose,从一个圆周相应的二维投射中决定它的三维模式。 126 127 ** GetContourAngleXld( Contour: X; AngleMode, CalcMode, Lookaround, out Angles); 128 说明, get_contour_angle_xld,为每个轮廓,点计算一个XLD轮廓,方向。 129 130 ** GetContourAttribXld( Contour: X; Name, out Attrib); 131 说明, get_contour_attrib_xld,返回一个XLD轮廓,的点的特征值。 132 133 ** GetContourGlobalAttribXld( Contour: X; Name, out Attrib); 134 135 ** GetContourXld( Contour: X; out Row, out Col); 136 说明, get_contour_xld,返回XLD轮廓,的坐标。 137 138 ** GetDeformableModelContours( out ModelContours: X; ModelID, Level); 139 说明, 获取变形模型轮廓 140 141 ** GetGrayvalContourXld( Image: X; Contour: X; Interpolation, out Grayval); 142 说明, 获取xld轮廓灰度值 143 144 ** GetMetrologyObjectMeasures( out Contour: X; MetrologyHandle, Indices, Transition, out Row, out Column); 145 说明, 获取计量对象均值参数 146 147 ** GetRectanglePose( Contour: X; CameraParam, Width, Height, WeightingMode, ClippingFactor, out Pose, out CovPose, out Error); 148 说明, get_rectangle_pose,从一个矩形相应的二维投射中决定它的三维模式。 149 150 ** GetRegionContour( Region: X; out Rows, out Columns); 151 说明, get_region_contour,查询一个目标的轮廓,。 152 153 ** GetRegressParamsXld( Contours: X; out Length, out Nx, out Ny, out Dist, out Fpx, out Fpy, out Lpx, out Lpy, out Mean, out Deviation); 154 说明, get_regress_params_xld,返回XLD轮廓,参数。 155 156 ** GetShapeModel3DContours( out ModelContours: X; ShapeModel3DID, Level, View, out ViewPose); 157 说明, get_shape_model_3d_contours,返回一个3D轮廓模型视图的轮廓表示。 158 159 ** GetShapeModelContours( out ModelContours: X; ModelID, Level); 160 说明, get_shape_model_contours,返回一个轮廓模型的轮廓表示。 161 162 ** GrabData( out Image: X; out Region: X; out Contours: X; AcqHandle, out Data); 163 说明, grab_data,从指定的图像获取设备获取图像和预处理图像数据。 164 165 ** GrabDataAsync( out Image: X; out Region: X; out Contours: X; AcqHandle, MaxDelay, out Data); 166 说明, grab_data_async,从指定的图像获取设备获取图像和预处理图像数据并且开始下一个异步获取。 167 168 ** InspectClusteredComponents( out ModelComponents: X; ComponentTrainingID, AmbiguityCriterion, MaxContourOverlap, ClusterThreshold); 169 说明, inspect_clustered_components,检查从训练获取的刚性的模型组件。 170 171 ** IntersectionCircleContourXld( Contour: X; CircleRow, CircleColumn, CircleRadius, CircleStartPhi, CircleEndPhi, CirclePointOrder, out Row, out Column); 172 说明, 计算xld圆形对象交集。 173 174 ** IntersectionClosedContoursXld( Contours1: X; Contours2: X; out ContoursIntersection: X); 175 说明, intersection_closed_contours_xld,闭合轮廓,的交集。 176 177 ** IntersectionContoursXld( Contour1: X; Contour2: X; IntersectionType, out Row, out Column, out IsOverlapping); 178 说明, 计算xld轮廓对象交集。 179 180 ** IntersectionLineContourXld( Contour: X; LineRow1, LineColumn1, LineRow2, LineColumn2, out Row, out Column, out IsOverlapping); 181 说明, 计算直线-轮廓对象交集。 182 183 ** IntersectionSegmentContourXld( Contour: X; SegmentRow1, SegmentColumn1, SegmentRow2, SegmentColumn2, out Row, out Column, out IsOverlapping); 184 说明, 计算xld轮廓分段对象交集。 185 186 ** LocalMaxContoursXld( Contours: X; Image: X; out LocalMaxContours: X; MinPercent, MinDiff, Distance); 187 说明, local_max_contours_xld,选择局域最大灰度值的XLD轮廓,。 188 189 ** MoveContourOrig( Rows, Columns, out RowsMoved, out ColumnsMoved); 190 说明, move_contour_orig,将原点变换到引力的中心。 191 192 ** PolarTransContourXld( Contour: X; out PolarTransContour: X; Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height); 193 说明, polar_trans_contour_xld,将一个环状弧中的轮廓,转换为极坐标形式。 194 195 ** PolarTransContourXldInv( PolarContour: X; out XYTransContour: X; Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, WidthIn, HeightIn, Width, Height); 196 说明, polar_trans_contour_xld_inv,将极坐标下的轮廓,转换为笛卡尔坐标下的形式。 197 198 ** PrepContourFourier( Rows, Columns, TransMode, out ParContour); 199 说明, prep_contour_fourier,参数化传输的元组。 200 201 ** ProjectiveTransContourXld( Contours: X; out ContoursProjTrans: X; HomMat2d); 202 说明, xld轮廓,投影变换矩阵计算 203 204 ** ProjectObjectModel3D( out ModelContours: X; ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue); 205 说明, project_object_model_3d,把一个3D目标模型的边缘投影到图像坐标中。 206 207 ** ProjectShapeModel3D( out ModelContours: X; ShapeModel3DID, CamParam, Pose, HiddenSurfaceRemoval, MinFaceAngle); 208 说明, project_shape_model_3d,把一个3D轮廓模型的边缘投影到图像坐标中。 209 210 ** QueryContourAttribsXld( Contour: X; out Attribs); 211 说明, query_contour_attribs_xld,返回一个XLD轮廓,定义的属性的名字。 212 213 ** QueryContourGlobalAttribsXld( Contour: X; out Attribs); 214 说明, query_contour_global_attribs_xld,返回一个XLD轮廓,定义的全局属性的名字。 215 216 ** RadialDistortionSelfCalibration( Contours: X; out SelectedContours: X; Width, Height, InlierThreshold, RandSeed, DistortionModel, DistortionCenter, PrincipalPointVar, out CameraParam); 217 说明, 失真校准取值范围 218 219 ** ReadContourXldArcInfo( out Contours: X; FileName); 220 说明, read_contour_xld_arc_info,从用ARC/INFO生成格式表示的文件读取XLD轮廓。 221 222 ** ReadContourXldDxf( out Contours: X; FileName, GenParamNames, GenParamValues, out DxfStatus); 223 说明, read_contour_xld_dxf,从一个DXF文件中读取 XLD轮廓。 224 225 ** RegressContoursXld( Contours: X; out RegressContours: X; Mode, Iterations); 226 227 ** SegmentContoursXld( Contours: X; out ContoursSplit: X; Mode, 228 229 ** SelectContoursXld( Contours: X; out SelectedContours: X; Feature, Min1, Max1, Min2, Max2); 230 231 ** SmoothContoursXld( Contours: X; out SmoothedContours: X; NumRegrPoints); 232 说明, smooth_contours_xld,XLD轮廓,的平滑。 233 234 ** SortContoursXld( Contours: X; out SortedContours: X; SortMode, Order, RowOrCol); 235 236 ** SplitContoursXld( Polygons: X; out Contours: X; Mode, Weight, Smooth); 237 说明, split_contours_xld,在主要点分割XLD轮廓,。 238 239 ** SymmDifferenceClosedContoursXld( Contours1: X; Contours2: X; out ContoursDifference: X); 240 说明, symm_difference_closed_contours_xld,闭合轮廓,的对称差异。 241 242 ** TrainModelComponents( ModelImage: X; InitialComponents: X; TrainingImages: X; out ModelComponents: X; ContrastLow, ContrastHigh, MinSize, MinScore, SearchRowTol, SearchColumnTol, SearchAngleTol, TrainingEmphasis, AmbiguityCriterion, MaxContourOverlap, ClusterThreshold, out ComponentTrainingID); 243 说明, train_model_components,为基于组件的匹配训练组件和关系。 244 245 ** Union2ClosedContoursXld( Contours1: X; Contours2: X; out ContoursUnion: X); 246 说明, union2_closed_contours_xld,闭合轮廓,的并集。 247 248 ** UnionAdjacentContoursXld( Contours: X; out UnionContours: X; MaxDistAbs, MaxDistRel, Mode); 249 250 ** UnionCocircularContoursXld( Contours: X; out UnionContours: X; MaxArcAngleDiff, MaxArcOverlap, MaxTangentAngle, MaxDist, MaxRadiusDiff, MaxCenterDist, MergeSmallContours, Iterations); 251 252 ** UnionCollinearContoursExtXld( Contours: X; out UnionContours: X; MaxDistAbs, MaxDistRel, MaxShift, MaxAngle, MaxOverlap, MaxRegrError, MaxCosts, WeightDist, WeightShift, WeightAngle, WeightLink, WeightRegr, Mode); 253 254 ** UnionCollinearContoursXld( Contours: X; out UnionContours: X; MaxDistAbs, MaxDistRel, MaxShift, MaxAngle, Mode); 255 256 ** UnionCotangentialContoursXld( Contours: X; out UnionContours: X; FitClippingLength, FitLength, MaxTangAngle, MaxDist, MaxDistPerp, MaxOverlap, Mode); 257 说明, 按余切,合并位于同一条直线上的轮廓,。 258 259 ** UnionStraightContoursHistoXld( Contours: X; out UnionContours: X; out SelectedContours: X; RefLineStartRow, RefLineStartColumn, RefLineEndRow, RefLineEndColumn, Width, MaxWidth, FilterSize, out HistoValues); 260 说明, union_straight_contours_histo_xld,合并到给定线有相似距离的相邻直线轮廓,。 261 262 ** UnionStraightContoursXld( Contours: X; out UnionContours: X; MaxDist, MaxDiff, Percent, Mode, Iterations); 263 说明, union_straight_contours_xld,合并具有相似方向的相邻直线轮廓,。 264 265 ** WriteContourXldArcInfo( Contours: X; FileName); 266 说明, write_contour_xld_arc_info,向用ARC/INFO生成格式表示的文件写入XLD轮廓。 267 268 ** WriteContourXldDxf( Contours: X; FileName); 269 说明, write_contour_xld_dxf,向一个DXF格式的文件中写入 XLD轮廓。 270 query_contour_global_attribs_xld