zoukankan      html  css  js  c++  java
  • 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数001·3D函数

    《zw版·Halcon-delphi系列原创教程》 Halcon分类函数001·3D函数

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

    • :: 用符号“**”,替换:“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 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数001·3D函数
      2 
      3 为简化文本,在不影响
      4 说明的前提下,笔者对函数进行了简化:
      5 :: 用符号“**”,替换:“procedure  6 :: 用大写字母“X”,替换:“IHUntypedObjectX”
      7 :: 省略了字符:“const”、“OleVariant”
      8 【示例】
      9 说明
     10 函数:
     11 procedure AddNoiseWhiteContourXld( const Contours: IHUntypedObjectX; out NoisyContours: IHUntypedObjectX; NumRegrPoints: OleVariant; Amp: OleVariant); 
     12 简化后为:
     13 ** AddNoiseWhiteContourXld( Contours: X; out NoisyContours: X; NumRegrPoints, Amp); 
     14 ----------------------
     15 【《zw版·Halcon-delphi系列原创教程》,网址,cnblogs.com/ziwang/ 16 ----------------------
     17 
     18 ** 3dFromFundamentalMatrix( Rows1, Cols1, Rows2, Cols2, CovRR1, CovRC1, CovCC1, CovRR2, CovRC2, CovCC2, FMatrix, CovFMat, out X, out Y, out Z, out W, out CovXYZW); 
     19 说明,  从矩阵建立3d对象
     20 
     21 ** AffineTransObjectModel3D( ObjectModel3D, HomMat3d, out ObjectModel3DAffineTrans); 
     22 说明,  affine_trans_object_model_3d,把一个任意有限3D变换用于一个3D目标模型。
     23 
     24 ** AffineTransPoint3D( HomMat3d, Px, Py, Pz, out Qx, out Qy, out Qz); 
     25 说明,  affine_trans_point_3d,对点运用一个随即仿射三维变换。
     26 
     27 ** AreaObjectModel3D( ObjectModel3D, out Area); 
     28 说明,  测量3d物体表面面积
     29 
     30 ** CamParPoseToHomMat3d( CameraParam, Pose, out HomMat3d); 
     31 说明,  Cam_Par_Pose_To_Hom_Mat_3d,从相机内部参数计算一个3D汉明矩阵。
     32 
     33 ** ClearAllObjectModel3D; 
     34 说明,  clear_all_object_model_3d,释放所有3D目标模型的内存。
     35 
     36 ** ClearAllShapeModel3D; 
     37 说明,  clear_all_shape_model_3d,释放所有3D轮廓模型的内存。
     38 
     39 ** ClearObjectModel3D( ObjectModel3D); 
     40 说明,  clear_object_model_3d,释放一个3D目标模型的内存。
     41 
     42 ** ClearShapeModel3D( ShapeModel3DID); 
     43 说明,  clear_shape_model_3d,释放一个3D轮廓模型的内存。
     44 
     45 ** ConnectionObjectModel3D( ObjectModel3D, Feature, Value, out ObjectModel3DConnected);
     46 
     47 ** ConvertPoint3DCartToSpher( X, Y, Z, EquatPlaneNormal, ZeroMeridian, out Longitude, out Latitude, out Radius); 
     48 说明,  convert_point_3d_cart_to_spher,把直角坐标系中的一个3D点转变为极坐标。
     49 
     50 ** ConvertPoint3DSpherToCart( Longitude, Latitude, Radius, EquatPlaneNormal, ZeroMeridian, out X, out Y, out Z); 
     51 说明,  convert_point_3d_spher_to_cart,把极坐标中的一个3D点转变为直角坐标。
     52 
     53 ** ConvexHullObjectModel3D( ObjectModel3D, out ObjectModel3DConvexHull); 
     54 说明,  ConvexHullObjectModel3D,影响区域凸性的3D模型系数。
     55 
     56 ** CopyObjectModel3D( ObjectModel3D, Attributes, out CopiedObjectModel3D); 
     57 说明,  复制3d模型对象
     58 
     59 ** CreateCamPoseLookAtPoint( CamPosX, CamPosY, CamPosZ, LookAtX, LookAtY, LookAtZ, RefPlaneNormal, CamRoll, out CamPose); 
     60 说明,  create_cam_pose_look_at_point,从摄像机中心和观察方向创建一个3D摄像机位置。
     61 
     62 ** CreateShapeModel3D( ObjectModel3D, CamParam, RefRotX, RefRotY, RefRotZ, OrderOfRotation, LongitudeMin, LongitudeMax, LatitudeMin, LatitudeMax, CamRollMin, CamRollMax, DistMin, DistMax, MinContrast, GenParamNames, GenParamValues, out ShapeModel3DID); 
     63 说明,  create_shape_model_3d,为匹配准备一个3D目标模型。
     64 
     65 ** CreateSurfaceModel( ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue, out SurfaceModelID); 
     66 说明,  建立表面模型
     67 
     68 ** DeserializeHomMat3d( SerializedItemHandle, out HomMat3d); 
     69 说明,  3d汉明矩阵数据转换
     70 
     71 ** DeserializeObjectModel3D( SerializedItemHandle, out ObjectModel3D); 
     72 说明,  3d模型对象数据转换
     73 
     74 ** DeserializeShapeModel3D( SerializedItemHandle, out ShapeModel3DID); 
     75 说明,  3d轮廓模型数据转换
     76 
     77 ** DisparityImageToXyz( Disparity: X; out X: X; out Y: X; out Z: X; CamParamRect1, CamParamRect2, RelPoseRect); 
     78 说明,  disp_xld,显示物体到3D坐标系。
     79 
     80 ** DisparityToPoint3D( CamParamRect1, CamParamRect2, RelPoseRect, Row1, Col1, Disparity, out X, out Y, out Z); 
     81 说明,  disparity_to_point_3d,将一个图像点和它的不均衡值转换为一个矫正立体系统中的三维点。
     82 
     83 ** DispObjectModel3D( WindowHandle, ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue);
     84 
     85 ** DistanceObjectModel3D( ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamNames, GenParamValues);
     86 
     87 ** FindShapeModel3D( Image: X; ShapeModel3DID, MinScore, Greediness, NumLevels, GenParamNames, GenParamValues, out Pose, out CovPose, out Score); 
     88 说明,  find_shape_model_3d,在一个图像中找出一个3D模型的最佳匹配。
     89 
     90 ** FindSurfaceModel( SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue, out Pose, out Score, out SurfaceMatchingResultID); 
     91 说明,  找出表面模型
     92 
     93 ** FitPrimitivesObjectModel3D( ObjectModel3D, ParamName, ParamValue, out ObjectModel3DOut); 
     94 说明,  根据3D模型获取对象
     95 
     96 ** GenBoxObjectModel3D( Pose, LengthX, LengthY, LengthZ, out ObjectModel3D); 
     97 说明,  生成3d对象框架
     98 
     99 ** GenCylinderObjectModel3D( Pose, Radius, MinExtent, MaxExtent, out ObjectModel3D); 
    100 说明,  创建3d柱状模型
    101 
    102 ** GenEmptyObjectModel3D( out EmptyObjectModel3D); 
    103 说明,  创建一个空的3D模型对象。
    104 
    105 ** GenObjectModel3DFromPoints( X, Y, Z, out ObjectModel3D); 
    106 说明,  从节点生成3d模型对象
    107 
    108 ** GenPlaneObjectModel3D( Pose, XExtent, YExtent, out ObjectModel3D); 
    109 说明,  生成3d模型平面
    110 
    111 ** GenSphereObjectModel3D( Pose, Radius, out ObjectModel3D); 
    112 说明,  创建球形3d模型对象
    113 
    114 ** GenSphereObjectModel3DCenter( X, Y, Z, Radius, out ObjectModel3D); 
    115 说明,  创建中心球形3d模型对象
    116 
    117 ** GetDispObjectModel3DInfo( WindowHandle, Row, Column, Information, out Value); 
    118 说明,  获取显示3d模型对角信息
    119 
    120 ** GetObjectModel3DParams( ObjectModel3D, ParamName, out ParamValue); 
    121 说明,  get_object_model_3d_params,返回一个3D目标模型的参数。
    122 
    123 ** GetShapeModel3DContours( out ModelContours: X; ShapeModel3DID, Level, View, out ViewPose); 
    124 说明,  get_shape_model_3d_contours,返回一个3D轮廓模型视图的轮廓表示。
    125 
    126 ** GetShapeModel3DParams( ShapeModel3DID, GenParamNames, out GenParamValues); 
    127 说明,  get_shape_model_3d_params,返回一个3D轮廓模型的参数。
    128 
    129 ** GetSheetOfLightResultObjectModel3D( SheetOfLightModelID, out ObjectModel3D); 
    130 说明,  获取光线表结果,3d模型
    131 
    132 ** GnuplotPlotImage( Image: X; GnuplotFileID, SamplesX, SamplesY, ViewRotX, ViewRotZ, Hidden3D); 
    133 说明,  gnuplot_plot_image,使用gnuplot使一个图像可视化。
    134 
    135 ** HomMat3dCompose( HomMat3dLeft, HomMat3dRight, out HomMat3dCompose); 
    136 说明,  hom_mat3d_compose,将两个同质三维变换矩阵相乘。
    137 
    138 ** HomMat3dDeterminant( HomMat3d, out Determinant); 
    139 说明,  构建三维变换矩阵。
    140 
    141 ** HomMat3dIdentity( out HomMat3dIdentity); 
    142 说明,  hom_mat3d_identity,构建三维变换同样的齐次变换矩阵。
    143 
    144 ** HomMat3dInvert( HomMat3d, out HomMat3dInvert); 
    145 说明,  hom_mat3d_invert,插入一个同质三维变换矩阵。
    146 
    147 ** HomMat3dProject( HomMat3d, PrincipalPointRow, PrincipalPointCol, Focus, out HomMat2d); 
    148 说明,  hom_mat3d_project,给一个二维投影变换矩阵投影一个仿射三维变换矩阵。
    149 
    150 ** HomMat3dRotate( HomMat3d, Phi, Axis, Px, Py, Pz, out HomMat3dRotate); 
    151 说明,  hom_mat3d_rotate,为一个同质三维变换矩阵添加一个循环。
    152 
    153 ** HomMat3dRotateLocal( HomMat3d, Phi, Axis, out HomMat3dRotate); 
    154 说明,  hom_mat3d_rotate_local,为一个同质三维变换矩阵添加一个循环。
    155 
    156 ** HomMat3dScale( HomMat3d, Sx, Sy, Sz, Px, Py, Pz, out HomMat3dScale); 
    157 说明,  hom_mat3d_scale,为一个同质三维变换矩阵添加一个缩放。
    158 
    159 ** HomMat3dScaleLocal( HomMat3d, Sx, Sy, Sz, out HomMat3dScale); 
    160 说明,  hom_mat3d_scale_local,为一个同质三维变换矩阵添加一个缩放。
    161 
    162 ** HomMat3dToPose( HomMat3d, out Pose); 
    163 说明,  hom_mat3d_to_pose,将一个齐次变换矩阵转换为一个三维模式。
    164 
    165 ** HomMat3dTranslate( HomMat3d, Tx, Ty, Tz, out HomMat3dTranslate); 
    166 说明,  hom_mat3d_translate,为一个同质三维变换矩阵添加一个旋转。
    167 
    168 ** HomMat3dTranslateLocal( HomMat3d, Tx, Ty, Tz, out HomMat3dTranslate); 
    169 说明,  hom_mat3d_translate_local,为一个同质三维变换矩阵添加一个旋转。
    170 
    171 ** HomMat3dTranspose( HomMat3d, out HomMat3dTranspose); 
    172 说明,  计算齐次变换矩阵。
    173 
    174 ** IntersectPlaneObjectModel3D( ObjectModel3D, Plane, out ObjectModel3DIntersection); 
    175 说明,  计算3d模型平面交集。
    176 
    177 ** MaxDiameterObjectModel3D( ObjectModel3D, out Diameter); 
    178 说明,  3d模型最大直径
    179 
    180 ** MomentsObjectModel3D( ObjectModel3D, MomentsToCalculate, out Moments); 
    181 说明,  3d xld对象被看做点云的轮廓,的几何时刻(moments)
    182 
    183 ** ObjectModel3DToXyz( out X: X; out Y: X; out Z: X; ObjectModel3D, Type_, CamParam, Pose); 
    184 说明,  3d对象xyz坐标
    185 
    186 ** PoseToHomMat3d( Pose, out HomMat3d); 
    187 说明,  pose_to_hom_mat3d,将一个三位模式转换为一个齐次变换矩阵。
    188 
    189 ** PrepareObjectModel3D( ObjectModel3D, Purpose, OverwriteData, GenParamName, GenParamValue); 
    190 说明,  为图像准备一个变化模型。
    191 
    192 ** Project3DPoint( X, Y, Z, CameraParam, out Row, out Column); 
    193 说明,  project_3d_point,将三维点投射到子像素图像坐标。
    194 
    195 ** ProjectHomPointHomMat3d( HomMat3d, Px, Py, Pz, Pw, out Qx, out Qy, out Qw); 
    196 说明,  3D目标模型,投影坐标计算
    197 
    198 ** ProjectiveTransHomPoint3D( HomMat3d, Px, Py, Pz, Pw, out Qx, out Qy, out Qz, out Qw); 
    199 说明,  3d节点,投影变换矩阵计算
    200 
    201 ** ProjectiveTransObjectModel3D( ObjectModel3D, HomMat3d, out ObjectModel3DProjectiveTrans);
    202 
    203 ** ProjectiveTransPoint3D( HomMat3d, Px, Py, Pz, out Qx, out Qy, out Qz);
    204 
    205 ** ProjectObjectModel3D( out ModelContours: X; ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue); 
    206 说明,  project_object_model_3d,把一个3D目标模型的边缘投影到图像坐标中。
    207 
    208 ** ProjectPointHomMat3d( HomMat3d, Px, Py, Pz, out Qx, out Qy); 
    209 说明,  3D目标模型,节点投影坐标计算
    210 
    211 ** ProjectShapeModel3D( out ModelContours: X; ShapeModel3DID, CamParam, Pose, HiddenSurfaceRemoval, MinFaceAngle); 
    212 说明,  project_shape_model_3d,把一个3D轮廓模型的边缘投影到图像坐标中。
    213 
    214 ** QuatRotatePoint3D( Quaternion, Px, Py, Pz, out Qx, out Qy, out Qz); 
    215 说明,  Quat旋转矩阵,节点3D旋转
    216 
    217 ** QuatToHomMat3d( Quaternion, out RotationMatrix); 
    218 说明,  Quat旋转矩阵,3D矩阵
    219 
    220 ** ReadObjectModel3D( FileName, Scale, GenParamName, GenParamValue, out ObjectModel3D, out Status); 
    221 说明,  读取3d模型测量
    222 
    223 ** ReadObjectModel3DDxf( FileName, Scale, GenParamNames, GenParamValues, out ObjectModel3D, out DxfStatus); 
    224 说明,  read_object_model_3d_dxf,从一个DXF文件中读取一个3D目标模型。
    225 
    226 ** ReadShapeModel3D( FileName, out ShapeModel3DID); 
    227 说明,  read_shape_model_3d,从一个文件中读取一个3D轮廓模型。
    228 
    229 ** ReduceObjectModel3DByView( Region: X; ObjectModel3D, CamParam, Pose, out ObjectModel3DReduced); 
    230 说明,  通过视口,减少图像区域
    231 
    232 ** RefineSurfaceModelPose( SurfaceModelID, ObjectModel3D, InitialPose, MinScore, ReturnResultHandle, GenParamName, GenParamValue, out Pose, out Score, out SurfaceMatchingResultID); 
    233 说明,  细化表面模型
    234 
    235 ** RegisterObjectModel3DGlobal( ObjectModels3D, HomMats3D, From, To_, GenParamName, GenParamValue, out HomMats3DOut, out Scores); 
    236 说明,  注册为全局3d模型对象
    237 
    238 ** RegisterObjectModel3DPair( ObjectModel3D1, ObjectModel3D2, Method, GenParamName, GenParamValue, out Pose, out Score); 
    239 说明,  注册为全局双目3d模型对象
    240 
    241 ** RenderObjectModel3D( out Image: X; ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue); 
    242 说明,  渲染3d模型对象
    243 
    244 ** RigidTransObjectModel3D( ObjectModel3D, Pose, out ObjectModel3DRigidTrans); 
    245 说明,  刚性3d模型变换
    246 
    247 ** ructSurfaceStereo( Images: X; StereoModelID, out ObjectModel3D); 
    248 说明,  从立体表面获取高度
    249 
    250 ** SampleObjectModel3D( ObjectModel3D, Method, SampleDistance, GenParamName, GenParamValue, out SampledObjectModel3D); 
    251 说明,  3d模型样本
    252 
    253 ** SegmentObjectModel3D( ObjectModel3D, ParamName, ParamValue, out ObjectModel3DOut);
    254 
    255 ** SelectObjectModel3D( ObjectModel3D, Feature, Operation, MinValue, MaxValue, out ObjectModel3DSelected); 
    256 说明,  选择3d模型目标。
    257 
    258 ** SelectPointsObjectModel3D( ObjectModel3D, Attrib, MinValue, MaxValue, out ObjectModel3DThresholded); 
    259 说明,  选择3d模型节点。
    260 
    261 ** SerializeHomMat3d( HomMat3d, out SerializedItemHandle); 
    262 说明,  3d hom矩阵数据序列化
    263 
    264 ** SerializeObjectModel3D( ObjectModel3D, out SerializedItemHandle); 
    265 说明,  3d模型数据序列化
    266 
    267 ** SerializeShapeModel3D( ShapeModel3DID, out SerializedItemHandle); 
    268 说明,  3d轮廓数据序列化
    269 
    270 ** SetObjectModel3DAttrib( ObjectModel3D, Name, Type_, Data, out ObjectModel3DOut); 
    271 说明,  设置3d模型属性
    272 
    273 ** SetObjectModel3DAttribMod( ObjectModel3D, Name, Type_, Data); 
    274 说明,  设置3d模型属性
    275 
    276 ** SmallestBoundingBoxObjectModel3D( ObjectModel3D, Type_, out Pose, out Length1, out Length2, out Length3);
    277 
    278 ** SmallestSphereObjectModel3D( ObjectModel3D, out CenterPoint, out Radius); 
    279 说明,  3d模型最小外接球形对象
    280 
    281 ** SmoothObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out SmoothObjectModel3D); 
    282 说明,  平滑3d模型
    283 
    284 ** SurfaceNormalsObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out ObjectModel3DNormals); 
    285 说明,  3d模型表面
    286 
    287 ** TransPoseShapeModel3D( ShapeModel3DID, PoseIn, Transformation, out PoseOut); 
    288 说明,  trans_pose_shape_model_3d,把一个3D目标模型的坐标系中的位置转变为一个3D轮廓模型的参考坐标系中的位置,反之亦然。
    289 
    290 ** TriangulateObjectModel3D( ObjectModel3D, Method, GenParamName, GenParamValue, out TriangulatedObjectModel3D, out Information); 
    291 说明,  3角曲面3d模型
    292 
    293 ** UnionObjectModel3D( ObjectModels3D, Method, out UnionObjectModel3D); 
    294 说明,  合并3d模型
    295 
    296 ** VectorToHomMat3d( TransformationType, Px, Py, Pz, Qx, Qy, Qz, out HomMat3d); 
    297 说明,  矢量矩阵变换
    298 
    299 ** VolumeObjectModel3DRelativeToPlane( ObjectModel3D, Plane, Mode, UseFaceOrientation, out Volume); 
    300 说明,  3d模型相对体积平面
    301 
    302 ** WriteObjectModel3D( ObjectModel3D, FileType, FileName, GenParamName, GenParamValue); 
    303 说明,  保存3d模型数据
    304 
    305 ** WriteShapeModel3D( ShapeModel3DID, FileName); 
    306 说明,  write_shape_model_3d,向一个文件写入一个3D轮廓模型。
    307 
    308 ** XyzToObjectModel3D( X: X; Y: X; Z: X; out ObjectModel3D); 
    309 说明,  xyz坐标到3d模型在;换
  • 相关阅读:
    markdown编辑器使用教程
    【android】shape的使用
    检测android机器是否有GPS模块
    java.io.FileNotFoundException: res/drawable/title_bar_shadow.9.png
    【Arcgis for android】程序运行出错原因分析及解决(超详细)
    百度地图android客户端的AndroidMainfest.xml的学习和android版本号
    Android proguard代码混淆
    Posting data to a HttpHandler greater then ~29MB gives a 404 error
    工具和软件收藏
    C#实现在Winform中嵌入Word和Excel
  • 原文地址:https://www.cnblogs.com/ziwang/p/4876718.html
Copyright © 2011-2022 走看看