《zw版·Halcon-delphi系列原创教程》 Halcon分类函数010,obj,对象管理

《zw版·Halcon-delphi系列原创教程》 Halcon分类函数010,obj,对象管理

为方便阅读,在不影响说明的前提下,笔者对函数进行了简化:

  • :: 用符号“**”,替换:“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 ** AddMetrologyObjectCircleMeasure( MetrologyHandle, Row, Column, Radius, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue, out Index); 
  2 说明,  add_metrology_object_circle_measure (  :  :  MetrologyHandle, Row,Column, Radius, MeasureLength1, MeasureLength2, MeasureSigma,MeasureThreshold, GenParamName, GenParamValue :  Index )
  3 
  4 ** AddMetrologyObjectEllipseMeasure( MetrologyHandle, Row, Column, Phi, Radius1, Radius2, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue, out Index); 
  5 说明,  增加一个椭圆或弧形物体,到测量模型当中
  6 
  7 ** AddMetrologyObjectLineMeasure( MetrologyHandle, RowBegin, ColumnBegin, RowEnd, ColumnEnd, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue, out Index); 
  8 说明,  增加一个线型物体,到测量模型当中
  9 
 10 ** AddMetrologyObjectRectangle2Measure( MetrologyHandle, Row, Column, Phi, Length1, Length2, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue, out Index); 
 11 说明,  增加一个矩形物体,到测量模型当中
 12 
 13 ** AddSampleIdentifierPreparationData( SampleImage: X; SampleIdentifier, ObjectIdx, GenParamName, GenParamValue, out ObjectSampleIdx); 
 14 说明,  增加预设标定数据
 15 
 16 ** AddSampleIdentifierTrainingData( SampleImage: X; SampleIdentifier, ObjectIdx, GenParamName, GenParamValue, out ObjectSampleIdx); 
 17 说明,  增加标定训练数据
 18 
 19 ** AffineTransObjectModel3D( ObjectModel3D, HomMat3d, out ObjectModel3DAffineTrans); 
 20 说明,  affine_trans_object_model_3d,把一个任意有限3D变换用于一个3D目标模型。
 21 
 22 ** ApplySampleIdentifier( Image: X; SampleIdentifier, NumResults, RatingThreshold, GenParamName, GenParamValue, out ObjectIdx, out Rating); 
 23 说明,  应用样本标识
 24 
 25 ** AreaObjectModel3D( ObjectModel3D, out Area); 
 26 说明,  测量3d物体表面面积
 27 
 28 ** ClearAllObjectModel3D; 
 29 说明,  clear_all_object_model_3d,释放所有3D目标模型的内存。
 30 
 31 ** ClearMetrologyObject( MetrologyHandle, Indices); 
 32 说明,  清除计量对象
 33 
 34 ** ClearObj( Objects: X); 
 35 说明,  clear_obj,将一个对象的图标从HALCON数据库中删除。
 36 
 37 ** ClearObjectModel3D( ObjectModel3D); 
 38 说明,  clear_object_model_3d,释放一个3D目标模型的内存。
 39 
 40 ** ConcatObj( Objects1: X; Objects2: X; out ObjectsConcat: X); 
 41 说明,  concat_obj,连接两个目标元组的图标。
 42 
 43 ** ConnectionObjectModel3D( ObjectModel3D, Feature, Value, out ObjectModel3DConnected);
 44 
 45 ** ConvexHullObjectModel3D( ObjectModel3D, out ObjectModel3DConvexHull); 
 46 说明,  ConvexHullObjectModel3D,影响区域凸性的3D模型系数。
 47 
 48 ** CopyMetrologyObject( MetrologyHandle, Indices, out CopiedIndices); 
 49 说明,  复制计量对象
 50 
 51 ** CopyObj( Objects: X; out ObjectsSelected: X; Index, NumObj); 
 52 说明,  copy_obj,复制一个HALCON数据库中对象的图标 。
 53 
 54 ** CopyObjectModel3D( ObjectModel3D, Attributes, out CopiedObjectModel3D); 
 55 说明,  复制3d模型对象
 56 
 57 ** CountObj( Objects: X; out Number); 
 58 说明,  count_obj,统计一个元组中的对象。
 59 
 60 ** CreateCalibData( CalibSetup, NumCameras, NumCalibObjects, out CalibDataID); 
 61 说明,  建立校准数据
 62 
 63 ** CreateShapeModel3D( ObjectModel3D, CamParam, RefRotX, RefRotY, RefRotZ, OrderOfRotation, LongitudeMin, LongitudeMax, LatitudeMin, LatitudeMax, CamRollMin, CamRollMax, DistMin, DistMax, MinContrast, GenParamNames, GenParamValues, out ShapeModel3DID); 
 64 说明,  create_shape_model_3d,为匹配准备一个3D目标模型。
 65 
 66 ** CreateSurfaceModel( ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue, out SurfaceModelID); 
 67 说明,  建立表面模型
 68 
 69 ** DeserializeObject( out Object_: X; SerializedItemHandle); 
 70 说明,  对象数据转换
 71 
 72 ** DeserializeObjectModel3D( SerializedItemHandle, out ObjectModel3D); 
 73 说明,  3d模型对象数据转换
 74 
 75 ** DispObj( Object_: X; WindowHandle); 
 76 说明,  disp_obj,显示图像目标(图像,区域,XLD)。
 77 
 78 ** DispObjectModel3D( WindowHandle, ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue);
 79 
 80 ** DispXld( XLDObject: X; WindowHandle); 
 81 说明,  disp_xld,显示一个XLD物体。
 82 
 83 ** DistanceObjectModel3D( ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamNames, GenParamValues);
 84 
 85 ** FindCalibObject( Image: X; CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, GenParamName, GenParamValue); 
 86 说明,  检测校准对象
 87 
 88 ** FindSurfaceModel( SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue, out Pose, out Score, out SurfaceMatchingResultID); 
 89 说明,  找出表面模型
 90 
 91 ** FitPrimitivesObjectModel3D( ObjectModel3D, ParamName, ParamValue, out ObjectModel3DOut); 
 92 说明,  根据3D模型获取对象
 93 
 94 ** GenBoxObjectModel3D( Pose, LengthX, LengthY, LengthZ, out ObjectModel3D); 
 95 说明,  生成3d对象框架
 96 
 97 ** GenCylinderObjectModel3D( Pose, Radius, MinExtent, MaxExtent, out ObjectModel3D); 
 98 说明,  创建3d柱状模型
 99 
100 ** GenEmptyObj( out EmptyObject: X); 
101 说明,  gen_empty_obj,创建一个空的目标元组。
102 
103 ** GenEmptyObjectModel3D( out EmptyObjectModel3D); 
104 说明,  创建一个空的3D模型对象。
105 
106 ** GenObjectModel3DFromPoints( X, Y, Z, out ObjectModel3D); 
107 说明,  从节点生成3d模型对象
108 
109 ** GenPlaneObjectModel3D( Pose, XExtent, YExtent, out ObjectModel3D); 
110 说明,  生成3d模型平面
111 
112 ** GenSphereObjectModel3D( Pose, Radius, out ObjectModel3D); 
113 说明,  创建球形3d模型对象
114 
115 ** GenSphereObjectModel3DCenter( X, Y, Z, Radius, out ObjectModel3D); 
116 说明,  创建中心球形3d模型对象
117 
118 ** GetBarCodeObject( out BarCodeObjects: X; BarCodeHandle, CandidateHandle, ObjectName); 
119 说明,  get_bar_code_object,访问创建在搜寻或条形码符号解码过程中的对象图标。
120 
121 ** GetCalibDataObservContours( out Contours: X; CalibDataID, ContourName, CameraIdx, CalibObjIdx, CalibObjPoseIdx); 
122 说明,  获取校准数据轮廓
123 
124 ** GetCalibDataObservPoints( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, out Row, out Column, out Index, out Pose); 
125 说明,  获取校准数据节点
126 
127 ** GetCalibDataObservPose( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, out ObjInCameraPose); 
128 说明,  获取校准数据姿势
129 
130 ** GetChannelInfo( Object_: X; Request, Channel, out Information); 
131 说明,  get_channel_info,一幅目标图像组成部分的信息。
132 
133 ** GetDataCode2DObjects( out DataCodeObjects: X; DataCodeHandle, CandidateHandle, ObjectName); 
134 说明,  get_data_code_2d_objects,查询搜索二维数据编码符号过程中创建的对象的图标。
135 
136 ** GetDescriptorModelResults( ModelID, ObjectID, ResultNames, out Results); 
137 说明,  获取描述模型结果
138 
139 ** GetDispObjectModel3DInfo( WindowHandle, Row, Column, Information, out Value); 
140 说明,  获取显示3d模型对角信息
141 
142 ** GetMetrologyObjectFuzzyParam( MetrologyHandle, Indices, GenParamName, out GenParamValue); 
143 说明,  获取计量对象模糊参数
144 
145 ** GetMetrologyObjectIndices( MetrologyHandle, out Indices); 
146 说明,  获取计量对象指数参数
147 
148 ** GetMetrologyObjectMeasures( out Contour: X; MetrologyHandle, Indices, Transition, out Row, out Column); 
149 说明,  获取计量对象均值参数
150 
151 ** GetMetrologyObjectNumInstances( MetrologyHandle, Indices, out NumInstances); 
152 说明,  获取计量对象均值参数
153 
154 ** GetMetrologyObjectParam( MetrologyHandle, Indices, GenParamName, out GenParamValue); 
155 说明,  获取计量对象参数
156 
157 ** GetMetrologyObjectResult( MetrologyHandle, Indices, Instance, GenParamName, GenParamValue, out Parameter); 
158 说明,  获取计量对象结果参数
159 
160 ** GetObjClass( Object_: X; out Class_); 
161 说明,  get_obj_class,一副目标图像类的名称。
162 
163 ** GetObjectModel3DParams( ObjectModel3D, ParamName, out ParamValue); 
164 说明,  get_object_model_3d_params,返回一个3D目标模型的参数。
165 
166 ** GetParamNames( ProcName, out InpObjPar, out OutpObjPar, out InpCtrlPar, out OutpCtrlPar); 
167 说明,  get_param_names,获取一个HALCON程序参数的名字。
168 
169 ** GetParamNum( ProcName, out CName, out InpObjPar, out OutpObjPar, out InpCtrlPar, out OutpCtrlPar, out Type_); 
170 说明,  get_param_num,获取一个HALCON程序不同参数类的数目。
171 
172 ** GetSampleIdentifierObjectInfo( SampleIdentifier, ObjectIdx, InfoName, out InfoValue); 
173 说明,  获取标识样本信息
174 
175 ** GetSheetOfLightResultObjectModel3D( SheetOfLightModelID, out ObjectModel3D); 
176 说明,  获取光线表结果,3d模型
177 
178 ** GetStereoModelObject( out Object_: X; StereoModelID, PairIndex, ObjectName); 
179 说明,  获取立体模型对象
180 
181 ** GetTextObject( out Characters: X; TextResultID, ResultName); 
182 说明,  获取文本对象
183 
184 ** IntegerToObj( out Objects: X; SurrogateTuple); 
185 说明,  integer_to_obj,将一个整型数转换为一个图标。
186 
187 ** IntersectPlaneObjectModel3D( ObjectModel3D, Plane, out ObjectModel3DIntersection); 
188 说明,  计算3d模型平面交集。
189 
190 ** MaxDiameterObjectModel3D( ObjectModel3D, out Diameter); 
191 说明,  3d模型最大直径
192 
193 ** MomentsObjectModel3D( ObjectModel3D, MomentsToCalculate, out Moments); 
194 说明,  3d xld对象被看做点云的轮廓,的几何时刻(moments)
195 
196 ** ObjDiff( Objects: X; ObjectsSub: X; out ObjectsDiff: X); 
197 说明,  对象差值
198 
199 ** ObjectModel3DToXyz( out X: X; out Y: X; out Z: X; ObjectModel3D, Type_, CamParam, Pose); 
200 说明,  3d对象xyz坐标
201 
202 ** ObjToInteger( Objects: X; Index, Number, out SurrogateTuple); 
203 说明,  obj_to_integer,将一个图标转换为一个整型数。
204 
205 ** PrepareObjectModel3D( ObjectModel3D, Purpose, OverwriteData, GenParamName, GenParamValue); 
206 说明,  为图像准备一个变化模型。
207 
208 ** ProjectiveTransObjectModel3D( ObjectModel3D, HomMat3d, out ObjectModel3DProjectiveTrans);
209 
210 ** ProjectObjectModel3D( out ModelContours: X; ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue); 
211 说明,  project_object_model_3d,把一个3D目标模型的边缘投影到图像坐标中。
212 
213 ** ReadObjectModel3D( FileName, Scale, GenParamName, GenParamValue, out ObjectModel3D, out Status); 
214 说明,  读取3d模型测量
215 
216 ** ReadObjectModel3DDxf( FileName, Scale, GenParamNames, GenParamValues, out ObjectModel3D, out DxfStatus); 
217 说明,  read_object_model_3d_dxf,从一个DXF文件中读取一个3D目标模型。
218 
219 ** ReduceObjectModel3DByView( Region: X; ObjectModel3D, CamParam, Pose, out ObjectModel3DReduced); 
220 说明,  通过视口,减少图像区域
221 
222 ** RefineSurfaceModelPose( SurfaceModelID, ObjectModel3D, InitialPose, MinScore, ReturnResultHandle, GenParamName, GenParamValue, out Pose, out Score, out SurfaceMatchingResultID); 
223 说明,  细化表面模型
224 
225 ** RegisterObjectModel3DGlobal( ObjectModels3D, HomMats3D, From, To_, GenParamName, GenParamValue, out HomMats3DOut, out Scores); 
226 说明,  注册为全局3d模型对象
227 
228 ** RegisterObjectModel3DPair( ObjectModel3D1, ObjectModel3D2, Method, GenParamName, GenParamValue, out Pose, out Score); 
229 说明,  注册为全局双目3d模型对象
230 
231 ** RemoveSampleIdentifierPreparationData( SampleIdentifier, ObjectIdx, ObjectSampleIdx); 
232 说明,  删除样本标识
233 
234 ** RemoveSampleIdentifierTrainingData( SampleIdentifier, ObjectIdx, ObjectSampleIdx); 
235 说明,  删除样本标识训练数据
236 
237 ** RenderObjectModel3D( out Image: X; ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue); 
238 说明,  渲染3d模型对象
239 
240 ** ResetMetrologyObjectFuzzyParam( MetrologyHandle, Indices); 
241 说明,  复位计量对象数据
242 
243 ** ResetMetrologyObjectParam( MetrologyHandle, Indices); 
244 说明,  复位计量对象数据参数
245 
246 ** ResetObjDb( DefaultImageWidth, DefaultImageHeight, DefaultChannels); 
247 说明,  reset_obj_db,HALCON系统的初始化。
248 
249 ** RigidTransObjectModel3D( ObjectModel3D, Pose, out ObjectModel3DRigidTrans); 
250 说明,  刚性3d模型变换
251 
252 ** ructSurfaceStereo( Images: X; StereoModelID, out ObjectModel3D); 
253 说明,  从立体表面获取高度
254 
255 ** SampleObjectModel3D( ObjectModel3D, Method, SampleDistance, GenParamName, GenParamValue, out SampledObjectModel3D); 
256 说明,  3d模型样本
257 
258 ** SegmentObjectModel3D( ObjectModel3D, ParamName, ParamValue, out ObjectModel3DOut);
259 
260 ** SelectObj( Objects: X; out ObjectSelected: X; Index); 
261 说明,  select_obj,从一个目标元组中选择目标。
262 
263 ** SelectObjectModel3D( ObjectModel3D, Feature, Operation, MinValue, MaxValue, out ObjectModel3DSelected); 
264 说明,  选择3d模型目标。
265 
266 ** SelectPointsObjectModel3D( ObjectModel3D, Attrib, MinValue, MaxValue, out ObjectModel3DThresholded); 
267 说明,  选择3d模型节点。
268 
269 ** SerializeObject( Object_: X; out SerializedItemHandle); 
270 说明,  对象数据序列化
271 
272 ** SerializeObjectModel3D( ObjectModel3D, out SerializedItemHandle); 
273 说明,  3d模型数据序列化
274 
275 ** SetCalibDataCalibObject( CalibDataID, CalibObjIdx, CalibObjDescr); 
276 说明,  设置校准数据对象
277 
278 ** SetCalibDataObservPoints( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, Row, Column, Index, Pose); 
279 说明,  设置校准数据节点
280 
281 ** SetCalibDataObservPose( CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, ObjInCameraPose); 
282 说明,  设置校准数据姿态
283 
284 ** SetMetrologyObjectFuzzyParam( MetrologyHandle, Indices, GenParamName, GenParamValue); 
285 说明,  设置计量对象参数
286 
287 ** SetMetrologyObjectParam( MetrologyHandle, Indices, GenParamName, GenParamValue); 
288 说明,  设置计量对象参数
289 
290 ** SetObjectModel3DAttrib( ObjectModel3D, Name, Type_, Data, out ObjectModel3DOut); 
291 说明,  设置3d模型属性
292 
293 ** SetObjectModel3DAttribMod( ObjectModel3D, Name, Type_, Data); 
294 说明,  设置3d模型属性
295 
296 ** SetSampleIdentifierObjectInfo( SampleIdentifier, ObjectIdx, InfoName, InfoValue); 
297 说明,  设置样本对象数据
298 
299 ** SmallestBoundingBoxObjectModel3D( ObjectModel3D, Type_, out Pose, out Length1, out Length2, out Length3);
300 
301 ** SmallestSphereObjectModel3D( ObjectModel3D, out CenterPoint, out Radius); 
302 说明,  3d模型最小外接球形对象
303 
304 ** SmoothObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out SmoothObjectModel3D); 
305 说明,  平滑3d模型
306 
307 ** SurfaceNormalsObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out ObjectModel3DNormals); 
308 说明,  3d模型表面
309 
310 ** TestAccess( Object_: X; out Dummy: X; NumReadChord, NumCopyObj, Write_chord); 
311 说明,  测试Access
312 
313 ** TestEqualObj( Objects1: X; Objects2: X; out IsEqual); 
314 说明,  test_equal_obj,比较目标图像的平等性。
315 
316 ** TestObjDef( Object_: X; out IsDefined); 
317 说明,  test_obj_def,测试目标是否被删除。
318 
319 ** TransformMetrologyObject( MetrologyHandle, Indices, Row, Column, Phi, Mode); 
320 说明,  对象变换
321 
322 ** TriangulateObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out TriangulatedObjectModel3D, out Information); 
323 说明,  3角曲面3d模型
324 
325 ** UnionObjectModel3D( ObjectModels3D, Method, out UnionObjectModel3D); 
326 说明,  合并3d模型
327 
328 ** VolumeObjectModel3DRelativeToPlane( ObjectModel3D, Plane, Mode, UseFaceOrientation, out Volume); 
329 说明,  3d模型相对体积平面
330 
331 ** WriteObjectModel3D( ObjectModel3D, FileType, FileName, GenParamName, GenParamValue); 
332 说明,  保存3d模型数据
333 
334 ** XyzToObjectModel3D( X: X; Y: X; Z: X; out ObjectModel3D); 
335 说明,  xyz坐标到3d模型在;换