当前位置: 首页 > news >正文

【机械视觉】Halcon—【二、Halcon算子全面介绍(超详细版)】


一. 图像采集(Acquisition)

设备控制

open_framegrabber - 初始化采集设备

  • 语法
    open_framegrabber(Name, [通用参数], AcqHandle)

  • 示例
    open_framegrabber('GigEVision', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'default', 0, -1, AcqHandle)

close_framegrabber - 释放设备资源

  • 语法
    close_framegrabber(AcqHandle)

图像获取

grab_image - 同步抓取单帧

  • 语法
    grab_image(Image, AcqHandle)

grab_image_async - 异步抓取单帧

  • 语法
    grab_image_async(Image, AcqHandle, MaxDelay)

  • 示例
    grab_image_async(Image, AcqHandle, 3.0) // 设置3秒超时

参数配置

set_framegrabber_param - 设置设备参数

  • 常用参数
    'exposure'(曝光), 'gain'(增益), 'trigger_mode'(触发模式)

  • 示例
    set_framegrabber_param(AcqHandle, 'exposure', 5000) // 设置5ms曝光

get_framegrabber_param - 查询设备参数

  • 语法
    get_framegrabber_param(AcqHandle, Param, Value)

高级功能

grab_data - 同步获取图像及附加数据

  • 语法
    grab_data(Image, Region, Contours, AcqHandle, Data)

info_framegrabber - 查询设备信息

  • 语法
    info_framegrabber(Name, Query, Information, ValueList)


    二.图像处理

    1. 图像预处理

    mean_image - 均值滤波

    • 语法
      mean_image(Image, ImageMean, MaskWidth, MaskHeight)

    • 示例
      mean_image(Image, ImageMean, 5, 5) // 5x5均值滤波

    gauss_image - 高斯滤波

    • 语法
      gauss_image(Image, ImageGauss, Size)

    • 示例
      gauss_image(Image, ImageGauss, 3) // 3x3高斯滤波

    2. 图像分割

    threshold - 全局阈值分割

    • 语法
      threshold(Image, Region, MinGray, MaxGray)

    • 示例
      threshold(Image, Region, 100, 255) // 提取100-255灰度区域

    dyn_threshold - 动态阈值分割

    • 语法
      dyn_threshold(OrigImage, ThresholdImage, RegionDynThresh, Offset, LightDark)

    • 示例
      dyn_threshold(Image, ImageMean, Region, 10, 'dark') // 提取比背景暗10以上的区域

    3. 特征提取

    edges_image - 边缘检测

    • 语法
      edges_image(Image, ImaAmp, ImaDir, Filter, Alpha, NMS, Low, High)

    • 示例
      edges_image(Image, ImaAmp, ImaDir, 'canny', 1.0, 'nms', 20, 40) // Canny边缘检测

    smallest_rectangle1 - 获取外接矩形

    • 语法
      smallest_rectangle1(Regions, Row1, Column1, Row2, Column2)

    • 示例
      smallest_rectangle1(Region, Row1, Col1, Row2, Col2) // 获取区域外接矩形坐标

    4. 形态学处理

    dilation_rect - 矩形膨胀

    • 语法
      dilation_rect(Region, RegionDilation, Width, Height)

    • 示例
      dilation_rect(Region, RegionDilation, 3, 3) // 3x3矩形膨胀

    erosion_circle - 圆形腐蚀

    • 语法
      erosion_circle(Region, RegionErosion, Radius)

    • 示例
      erosion_circle(Region, RegionErosion, 2.5) // 半径2.5的圆形腐蚀

    5. 模板匹配

    create_shape_model - 创建形状模板

    • 语法
      create_shape_model(Template, NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Contrast, MinContrast, ModelID)

    • 示例
      create_shape_model(ImageReduced, 4, 0, rad(360), 'auto', 'none', 'use_polarity', 10, ModelID)

    find_shape_model - 形状匹配

    • 语法
      find_shape_model(Image, ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, ResultRow, ResultColumn, ResultAngle, ResultScore)

    • 示例
      find_shape_model(Image, ModelID, 0, rad(360), 0.7, 1, 0.5, 'least_squares', 0, Row, Column, Angle, Score)


    三.图像分割

    threshold - 全局阈值分割

    • 语法
      threshold(Image : Region : MinGray, MaxGray : )

    • 示例
      threshold(Image, Region, 100, 255) // 提取灰度值100-255的区域

    binary_threshold - 自动阈值分割

    • 语法
      binary_threshold(Image : Region : Method, LightDark : UsedThreshold)

    • 示例
      binary_threshold(Image, Region, 'max_separability', 'dark', Threshold) // 自动计算最佳阈值

    dyn_threshold - 动态阈值分割

    • 语法
      dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )

    • 示例
      mean_image(Image, Mean, 31, 31) dyn_threshold(Image, Mean, Region, 10, 'dark') // 基于局部均值的动态阈值

    watersheds - 分水岭分割

    • 语法
      watersheds(Image : Basins, Watersheds : : )

    • 示例
      watersheds(Image, Basins, Watersheds) // 分水岭算法分割图像

    regiongrowing - 区域生长分割

    • 语法
      regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize : )

    • 示例
      regiongrowing(Image, Regions, 100, 100, 5, 100) // 从(100,100)开始生长,容差5,最小区域100像素

    connection - 连通区域分析

    • 语法
      connection(Region : ConnectedRegions : : )

    • 示例
      connection(Region, ConnectedRegions) // 将输入区域分割为连通区域

    select_shape - 形状筛选

    • 语法
      select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )

    • 示例
      select_shape(ConnectedRegions, LargeRegions, 'area', 'and', 500, 99999) // 筛选面积500以上的区域


    四.特征提取

    区域特征提取

    area_center - 计算区域面积和中心坐标

    • 语法
      area_center(Regions : : Area, Row, Column)

    • 示例
      area_center(ConnectedRegions, Area, Row, Column) // 获取各连通区域的面积和中心

    smallest_rectangle1 - 获取最小外接矩形

    • 语法
      smallest_rectangle1(Regions : : Row1, Column1, Row2, Column2)

    • 示例
      smallest_rectangle1(Region, Row1, Col1, Row2, Col2) // 获取区域的外接矩形坐标

    smallest_rectangle2 - 获取带角度外接矩形

    • 语法
      smallest_rectangle2(Regions : : Row, Column, Phi, Length1, Length2)

    • 示例
      smallest_rectangle2(Region, Row, Col, Phi, L1, L2) // 获取带旋转角度的外接矩形参数

    elliptic_axis - 计算椭圆参数

    • 语法
      elliptic_axis(Regions : : Ra, Rb, Phi)

    • 示例
      elliptic_axis(Region, MajorAxis, MinorAxis, Angle) // 获取拟合椭圆的参数

    边缘特征提取

    edges_sub_pix - 亚像素边缘检测

    • 语法
      edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

    • 示例
      edges_sub_pix(Image, Edges, 'canny', 1.0, 20, 40) // Canny算子亚像素边缘检测

    line_gauss - 亚像素直线检测

    • 语法
      line_gauss(Image : Lines : Sigma, Low, High, LightDark, Extend, Complete : )

    • 示例
      line_gauss(Image, Lines, 1.5, 5, 8, 'dark', 'true', 'true') // 高斯直线检测

    circle_pose - 圆检测

    • 语法
      circle_pose(Image : : Radius, Percent, WindowSize, Threshold, MeasureSelect, MeasureTransition, MeasureSigma, MeasureLength, MeasureNumber, MeasureScore, MeasureDistance, MeasureInterpolation : Row, Column, Radius, StartPhi, EndPhi, PointOrder)

    • 示例
      circle_pose(Image, 50, 60, 10, 10, 'all', 'all', 1.0, 20, 5, 0.5, 3.0, 'bicubic', Row, Column, Radius, StartPhi, EndPhi, PointOrder) // 精确圆检测

    灰度特征提取

    gray_features - 灰度特征计算

    • 语法
      gray_features(Regions, Image : : Features : Value)

    • 示例
      gray_features(Region, Image, 'mean', MeanValue) // 计算区域平均灰度值

    intensity - 灰度统计

    • 语法
      intensity(Regions, Image : : Mean, Deviation)

    • 示例
      intensity(Region, Image, Mean, Dev) // 计算区域灰度均值和标准差

    纹理特征提取

    texture_laws - 纹理滤波

    • 语法
      texture_laws(Image : ImageTexture : FilterTypes, Shift, FilterSize : )

    • 示例
      texture_laws(Image, Texture, 'el', 2, 5) // 使用Laws纹理滤波器

    entropy_image - 熵图像计算

    • 语法
      entropy_image(Image : ImageEntropy : Width, Height : )

    • 示例
      entropy_image(Image, Entropy, 7, 7) // 计算7x7窗口的局部熵


    五.模板匹配

    1. 基于形状的模板匹配

    create_shape_model - 创建形状模板

    • 语法
      create_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Contrast, MinContrast : ModelID)

    • 示例
      create_shape_model(ImageReduced, 4, 0, rad(360), 'auto', 'none', 'use_polarity', 10, ModelID) // 创建360度可旋转模板

    find_shape_model - 形状匹配

    • 语法
      find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score)

    • 示例
      find_shape_model(Image, ModelID, 0, rad(360), 0.7, 1, 0.5, 'least_squares', 0, Row, Column, Angle, Score) // 搜索最佳匹配

    2. 基于NCC的模板匹配

    create_ncc_model - 创建NCC模板

    • 语法
      create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep : ModelID)

    • 示例
      create_ncc_model(ImageReduced, 4, 0, rad(360), 'auto', ModelID) // 创建归一化互相关模板

    find_ncc_model - NCC匹配

    • 语法
      find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel : Row, Column, Angle, Score)

    • 示例
      find_ncc_model(Image, ModelID, 0, rad(360), 0.7, 1, 0.5, 'true', Row, Column, Angle, Score) // NCC匹配搜索

    3. 基于组件的模板匹配

    create_component_model - 创建组件模型

    • 语法
      create_component_model(Template : : RootRanking, ContrastLow, ContrastHigh, MinSize, MaxSize, AngleStart, AngleExtent, AngleStep, Optimization, Metric : ModelID)

    • 示例
      create_component_model(ImageReduced, 'area', 10, 30, 5, 1000, 0, rad(360), 'auto', 'none', 'use_polarity', ModelID)

    find_component_model - 组件匹配

    • 语法
      find_component_model(Image : : ModelID, RootComponent, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, IfRootNotFound, IfComponentNotFound, PosePrediction, MinScoreComp, SubPixel, NumLevels : Row, Column, Angle, Score, ComponentFound)

    • 示例
      find_component_model(Image, ModelID, 0, 0, rad(360), 0.7, 1, 0.5, 'stop', 'prune_branch', 0, 0.5, 'least_squares', 0, Row, Column, Angle, Score, CompFound)

    4. 3D模板匹配

    create_surface_model - 创建3D表面模型

    • 语法
      create_surface_model(ObjectModel3D : : RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle : SurfaceModelID)

    • 示例
      create_surface_model(ObjectModel3D, 0.05, 0.2, 0.5, 'false', SurfaceModelID)

    find_surface_model - 3D表面匹配

    • 语法
      find_surface_model(SurfaceModelID, ObjectModel3D, Pose, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID)

    • 示例
      find_surface_model(SurfaceModelID, SceneModel3D, [], 0.5, 'false', [], [], Pose, Score, ResultID)

    5. 变形模板匹配

    create_local_deformable_model - 创建可变形模板

    • 语法
      create_local_deformable_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Optimization, Metric, Contrast, MinContrast, ParamName, ParamValue : ModelID)

    • 示例
      create_local_deformable_model(ImageReduced, 4, 0, rad(360), 'auto', 0.9, 1.1, 'auto', 'none', 'use_polarity', 10, [], [], ModelID)

    find_local_deformable_model - 变形模板匹配

    • 语法
      find_local_deformable_model(Image : : ModelID, AngleStart, AngleExtent, ScaleMin, ScaleMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, ResultType, ParamName, ParamValue : Row, Column, Angle, Scale, Score, LocalDeformableModelResults)

    • 示例
      find_local_deformable_model(Image, ModelID, 0, rad(360), 0.9, 1.1, 0.7, 1, 0.5, 0, 0.8, 'deformed_contours', [], [], Row, Column, Angle, Scale, Score, Results)


    六.测量技术

    1. 一维测量

    measure_pos - 边缘位置测量

    • 语法
      measure_pos(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdge, ColumnEdge, Amplitude, Distance)

    • 示例
      measure_pos(Image, MeasureHandle, 1.0, 30, 'all', 'all', Rows, Cols, Amps, Dist) // 检测所有边缘

    measure_pairs - 边缘对测量

    • 语法
      measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)

    • 示例
      measure_pairs(Image, MeasureHandle, 1.0, 30, 'negative', 'all', R1, C1, A1, R2, C2, A2, IntraDist, InterDist) // 测量负向边缘对

    2. 二维测量

    smallest_rectangle2 - 最小外接矩形测量

    • 语法
      smallest_rectangle2(Regions : : Row, Column, Phi, Length1, Length2)

    • 示例
      smallest_rectangle2(Region, Row, Col, Angle, HalfLen1, HalfLen2) // 获取带角度矩形参数

    elliptic_axis - 椭圆参数测量

    • 语法
      elliptic_axis(Regions : : Ra, Rb, Phi)

    • 示例
      elliptic_axis(Region, MajorAxis, MinorAxis, Angle) // 测量椭圆长/短轴和角度

    3. 几何关系测量

    distance_pp - 点对点距离

    • 语法
      distance_pp( : : Row1, Column1, Row2, Column2 : Distance)

    • 示例
      distance_pp(R1, C1, R2, C2, Dist) // 计算两点间距离

    angle_ll - 线线夹角

    • 语法
      angle_ll( : : Row1, Column1, Row2, Column2, Row3, Column3, Row4, Column4 : Angle)

    • 示例
      angle_ll(R1, C1, R2, C2, R3, C3, R4, C4, Angle) // 计算两条线夹角

    4. 亚像素测量

    edges_sub_pix - 亚像素边缘检测

    • 语法
      edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

    • 示例
      edges_sub_pix(Image, Edges, 'canny', 1.0, 20, 40) // Canny亚像素边缘

    line_gauss - 亚像素直线测量

    • 语法
      line_gauss(Image : Lines : Sigma, Low, High, LightDark, Extend, Complete : )

    • 示例
      line_gauss(Image, Lines, 1.5, 5, 8, 'dark', 'true', 'true') // 高斯直线测量

    5. 3D测量

    xyz_to_object_model_3d - 3D点云生成

    • 语法
      xyz_to_object_model_3d(X, Y, Z : : ObjectModel3D)

    • 示例
      xyz_to_object_model_3d(X, Y, Z, ObjectModel3D) // 创建3D对象模型

    fit_primitives_object_model_3d - 3D几何体拟合

    • 语法
      fit_primitives_object_model_3d(ObjectModel3D : : PrimitiveType, ParamName, ParamValue : ObjectModel3D)

    • 示例
      fit_primitives_object_model_3d(ObjectModel3D, 'plane', [], [], PlaneModel) // 平面拟合


    七.3D视觉

    1. 3D数据采集

    read_object_model_3d - 读取3D模型文件

    • 语法
      read_object_model_3d( : : FileName, Scale, GenParamName, GenParamValue : ObjectModel3D, Status)

    • 示例
      read_object_model_3d('part.ply', 'm', [], [], ObjectModel3D, Status) // 读取PLY格式3D模型

    connect_to_object_model_3d_device - 连接3D相机

    • 语法
      connect_to_object_model_3d_device( : : DeviceName, GenParamName, GenParamValue : AcqHandle)

    • 示例
      connect_to_object_model_3d_device('ensenso', [], [], AcqHandle) // 连接Ensenso相机

    2. 3D数据处理

    xyz_to_object_model_3d - 点云生成

    • 语法
      xyz_to_object_model_3d(X, Y, Z : : ObjectModel3D)

    • 示例
      xyz_to_object_model_3d(X, Y, Z, ObjectModel3D) // 从XYZ坐标创建3D模型

    sample_object_model_3d - 点云采样

    • 语法
      sample_object_model_3d(ObjectModel3D : : Method, SampleDistance, GenParamName, GenParamValue : SampledObjectModel3D)

    • 示例
      sample_object_model_3d(ObjectModel3D, 'fast', 0.001, [], [], SampledModel) // 快速采样点云

    3. 3D特征提取

    surface_normals_object_model_3d - 表面法线计算

    • 语法
      surface_normals_object_model_3d(ObjectModel3D : : Method, GenParamName, GenParamValue : ObjectModel3DNormals)

    • 示例
      surface_normals_object_model_3d(ObjectModel3D, 'mls', [], [], NormalsModel) // MLS法线估计

    find_surface_model - 3D表面匹配

    • 语法
      find_surface_model(SurfaceModelID, ObjectModel3D, Pose, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID)

    • 示例
      find_surface_model(SurfaceModelID, SceneModel, [], 0.7, 'false', [], [], Pose, Score, ResultID) // 3D表面匹配

    4. 3D测量

    fit_primitives_object_model_3d - 几何体拟合

    • 语法
      fit_primitives_object_model_3d(ObjectModel3D : : PrimitiveType, ParamName, ParamValue : ObjectModel3D)

    • 示例
      fit_primitives_object_model_3d(ObjectModel3D, 'plane', [], [], PlaneModel) // 平面拟合

    distance_object_model_3d - 3D距离计算

    • 语法
      distance_object_model_3d(ObjectModel3DFrom, ObjectModel3DTo : : GenParamName, GenParamValue : Distance)

    • 示例
      distance_object_model_3d(PlaneModel, ObjectModel3D, [], [], Distances) // 计算到平面的距离

    5. 3D重建

    binocular_disparity - 双目视差计算

    • 语法
      binocular_disparity(ImageRect1, ImageRect2 : Disparity, Score : CamParamRect1, CamParamRect2, RelPoseRect, Method, MaskWidth, MaskHeight, TextureThresh, MinDisparity, MaxDisparity, NumLevels, ScoreThresh, Filter, SubDistance : )

    • 示例
      binocular_disparity(Image1, Image2, Disparity, Score, CamParam1, CamParam2, RelPose, 'sgm', 11, 11, 0.001, -30, 30, 5, 0.5, 'none', 1) // SGM立体匹配

    reconstruct_surface_stereo - 立体表面重建

    • 语法
      reconstruct_surface_stereo( : : Disparity, CameraSetupModelID, Method, GenParamName, GenParamValue : ObjectModel3D)

    • 示例
      reconstruct_surface_stereo(Disparity, CameraSetupID, 'point_cloud', [], [], ObjectModel3D) // 从视差图重建3D点云


    八.条码与OCR

    1. 条码识别

    create_bar_code_model - 创建条码模型

    • 语法
      create_bar_code_model( : : GenParamName, GenParamValue : BarCodeHandle)

    • 示例
      create_bar_code_model([], [], BarCodeHandle) // 创建默认条码模型

    find_bar_code - 查找并解码条码

    • 语法
      find_bar_code(Image : SymbolRegions : BarCodeHandle, CodeType : DecodedDataStrings)

    • 示例
      find_bar_code(Image, Region, BarCodeHandle, 'auto', Data) // 自动识别多种条码类型

    get_bar_code_param - 获取条码参数

    • 语法
      get_bar_code_param(BarCodeHandle : : GenParamName : GenParamValue)

    • 示例
      get_bar_code_param(BarCodeHandle, 'check_char', CheckChar) // 获取校验字符设置

    2. 二维码识别

    create_data_code_2d_model - 创建二维码模型

    • 语法
      create_data_code_2d_model( : : SymbolType, GenParamName, GenParamValue : DataCodeHandle)

    • 示例
      create_data_code_2d_model('Data Matrix ECC 200', [], [], DataCodeHandle) // 创建Data Matrix模型

    find_data_code_2d - 查找并解码二维码

    • 语法
      find_data_code_2d(Image : SymbolRegions : DataCodeHandle, SymbolType : ResultHandles, DecodedDataStrings)

    • 示例
      find_data_code_2d(Image, Region, DataCodeHandle, 'Data Matrix ECC 200', ResultHandle, Data) // 识别Data Matrix二维码

    3. OCR识别

    create_ocr_class_mlp - 创建OCR分类器

    • 语法
      create_ocr_class_mlp( : : WidthCharacter, HeightCharacter, Interpolation, Features, Characters, NumHidden, Preprocessing, NumComponents, RandSeed : OCRHandle)

    • 示例
      create_ocr_class_mlp(8, 10, 'constant', 'default', ['0','1','2','3','4','5','6','7','8','9'], 10, 'none', 10, 42, OCRHandle) // 创建数字OCR分类器

    do_ocr_multi_class_mlp - 多字符OCR识别

    • 语法
      do_ocr_multi_class_mlp(CharacterRegions, Image : OCRHandle : Class, Confidence)

    • 示例
      do_ocr_multi_class_mlp(CharRegions, Image, OCRHandle, Class, Confidence) // 识别多个字符

    find_text - 文本区域检测

    • 语法
      find_text(Image : : TextModel : TextResultID)

    • 示例
      find_text(Image, TextModel, ResultID) // 检测图像中的文本区域

    4. 文本模型处理

    create_text_model_reader - 创建文本阅读器模型

    • 语法
      create_text_model_reader( : : Mode, GenParamName, GenParamValue : TextModel)

    • 示例
      create_text_model_reader('auto', [], [], TextModel) // 创建自动文本阅读器

    find_text_reader - 文本识别

    • 语法
      find_text_reader(Image : : TextModel : TextResultID)

    • 示例
      find_text_reader(Image, TextModel, ResultID) // 识别图像中的文本

    get_text_result_reader - 获取识别结果

    • 语法
      get_text_result_reader( : : TextResultID, ResultName : ResultValue)

    • 示例
      get_text_result_reader(ResultID, 'word', Word) // 获取识别的单词文本


    九.深度学习

    1. 模型管理

    read_dl_model - 读取预训练模型

    • 语法
      read_dl_model( : : FileName : DLModelHandle)

    • 示例
      read_dl_model('resnet50.hdl', DLModelHandle) // 读取ResNet50模型

    create_dl_model_detection - 创建检测模型

    • 语法
      create_dl_model_detection( : : Backbone, NumClasses : DLModelHandle)

    • 示例
      create_dl_model_detection('pretrained_dl_classifier_compact.hdl', 10, DLModelHandle) // 创建10分类检测模型

    2. 数据处理

    gen_dl_samples_from_images - 生成样本

    • 语法
      gen_dl_samples_from_images(Images : : : DLSamples)

    • 示例
      gen_dl_samples_from_images(Images, DLSamples) // 从图像生成深度学习样本

    preprocess_dl_samples - 样本预处理

    • 语法
      preprocess_dl_samples(DLSamples : : DLPreprocessParam : DLSamplesPreprocessed)

    • 示例
      preprocess_dl_samples(DLSamples, DLPreprocessParam, PreprocessedSamples) // 预处理样本

    3. 模型训练

    train_dl_model - 训练模型

    • 语法
      train_dl_model(DLDataset : : DLModelHandle, TrainParamName, TrainParamValue : DLModelHandle)

    • 示例
      train_dl_model(Dataset, DLModelHandle, ['epochs','batch_size'], [50,16], TrainedModel) // 训练50个epoch

    evaluate_dl_model - 模型评估

    • 语法
      evaluate_dl_model(DLDataset : : DLModelHandle, EvaluationParamName, EvaluationParamValue : EvaluationResult)

    • 示例
      evaluate_dl_model(TestSet, DLModelHandle, ['measure'], ['precision'], Result) // 评估模型精度

    4. 推理预测

    apply_dl_model - 应用模型推理

    • 语法
      apply_dl_model(DLSamples : : DLModelHandle, Outputs : DLResult)

    • 示例
      apply_dl_model(Samples, DLModelHandle, ['classification'], Result) // 执行分类推理

    get_dl_model_param - 获取模型参数

    • 语法
      get_dl_model_param(DLModelHandle : : ParamName : ParamValue)

    • 示例
      get_dl_model_param(DLModelHandle, 'class_names', ClassNames) // 获取类别名称

    5. 结果处理

    get_dl_sample_result - 获取样本结果

    • 语法
      get_dl_sample_result(DLSample : : Key : Result)

    • 示例
      get_dl_sample_result(Sample, 'classification_confidences', Confidences) // 获取分类置信度

    visualize_dl_samples - 可视化结果

    • 语法
      visualize_dl_samples( : : DLSamples, DLModelHandle, WindowHandle, GenParamName, GenParamValue : )

    • 示例
      visualize_dl_samples(Samples, DLModelHandle, Window, ['display_labels'], ['true'], ) // 显示带标签的结果


    十.图形显示核心算子介绍

    dev_open_window - 打开图形窗口

    • 语法
      dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)

    • 示例

    • dev_open_window(0, 0, 512, 512, 'black', WindowHandle)

    • 功能说明
      打开一个新的图形窗口,指定窗口位置(Row,Column)、大小(Width,Height)和背景色(Background),返回窗口句柄WindowHandle。

    dev_display - 显示图像对象

    • 语法
      dev_display( : Object : : )

    • 示例

    • read_image(Image, 'particle') ;    dev_display(Image)

    • 功能说明
      在活动窗口中显示图像、区域或XLD等Halcon对象。

    dev_set_color - 设置显示颜色

    • 语法
      dev_set_color( : : ColorName : )

    • 示例

    • dev_set_color('red') ;   dev_display(Region)

    • 功能说明
      设置后续图形显示的颜色,支持颜色名称如'red','green','blue'或RGB值如'#FF0000'。

    disp_text - 显示文本

    • 语法
      disp_text( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )

    • 示例

    disp_text(WindowHandle, '检测结果', 'window', 12, 12, 'black', 'true')
    • 功能说明
      在指定窗口显示文本,可设置位置、颜色和是否显示背景框。

    disp_rectangle1 - 显示矩形

    • 语法
      disp_rectangle1( : : WindowHandle, Row1, Column1, Row2, Column2 : )

    • 示例

    disp_rectangle1(WindowHandle, 100, 100, 200, 200)
    • 功能说明
      通过对角坐标(Row1,Column1)和(Row2,Column2)显示矩形。

    disp_region - 显示区域

    • 语法
      disp_region( : Region : WindowHandle : )

    • 示例

    threshold(Image, Region, 128, 255)
    dev_set_color('green')
    disp_region(Region, WindowHandle)
    • 功能说明
      在指定窗口中显示区域(Region)对象,显示颜色由dev_set_color设置。


    十一.文件操作

    read_image - 读取图像文件

    • 语法
      read_image( : Image : FileName : )

    • 示例

    read_image(Image, 'particle.png')
    • 功能说明
      从磁盘读取图像文件,支持多种格式如png、jpg、bmp、tiff等。

    write_image - 保存图像文件

    • 语法
      write_image( : Image : Format, FillColor, FileName : )

    • 示例

    write_image(Image, 'png', 0, 'result.png')
    • 功能说明
      将图像保存到文件,需指定格式、填充色和文件名。

    list_files - 列出目录文件

    • 语法
      list_files( : : Directory, Options : Files)

    • 示例

    list_files('images', 'files', ImageFiles)
    • 功能说明
      列出目录中的文件,Options可以是'files'、'directories'或'recursive'。

    read_ocr_trainf - 读取OCR训练文件

    • 语法
      read_ocr_trainf( : : FileName : Character, Image)

    • 示例

    read_ocr_trainf('train.otf', Characters, Images)
    • 功能说明
      读取OCR训练文件,返回字符和对应图像。

    write_ocr_trainf - 保存OCR训练数据

    • 语法
      write_ocr_trainf( : Character, Image : FileName : )

    • 示例

    write_ocr_trainf(Characters, Images, 'new_train.otf')
    • 功能说明
      将OCR训练数据保存到文件。

    read_contour_xld_arc_info - 读取XLD轮廓文件

    • 语法
      read_contour_xld_arc_info( : : FileName : Contour)

    • 示例

    read_contour_xld_arc_info('contour.arc', Contours)
    • 功能说明
      读取XLD轮廓文件,返回轮廓对象。

    write_contour_xld_arc_info - 保存XLD轮廓

    • 语法
      write_contour_xld_arc_info( : Contour : FileName : )

    • 示例

    write_contour_xld_arc_info(Contours, 'output.arc')
    • 功能说明
      将XLD轮廓保存到文件。

    read_shape_model - 读取形状模板

    • 语法
      read_shape_model( : : FileName : ModelID)

    • 示例

    read_shape_model('model.shm', ModelID)
    • 功能说明
      从文件读取预训练的形状模板。

    write_shape_model - 保存形状模板

    • 语法
      write_shape_model( : ModelID : FileName : )

    • 示例

    write_shape_model(ModelID, 'new_model.shm')
    • 功能说明
      将形状模板保存到文件。

    file_exists - 检查文件是否存在

    • 语法
      file_exists( : : FileName : Exists)

    • 示例

    file_exists('data.txt', Exists)
    • 功能说明
      检查指定文件是否存在,返回布尔值。

    delete_file - 删除文件

    • 语法
      delete_file( : : FileName : )

    • 示例

    delete_file('temp.dat')
    • 功能说明
      删除指定的文件。


    十二.控制系统

    程序流程控制

    stop - 停止程序执行

    • 语法
      stop( : : : )

    • 示例

    if (ErrorCode != 0)stop()
    endif
    • 功能说明
      立即停止程序执行,常用于错误处理。

    exit - 退出程序

    • 语法
      exit( : : : )

    • 示例

    if (NoMoreImages)exit()
    endif
    • 功能说明
      退出整个HDevelop程序。

    continue - 继续循环

    • 语法
      continue( : : : )

    • 示例

    for i := 1 to 100 by 1if (i % 2 == 0)continue()endif* 处理奇数...
    endfor
    • 功能说明
      跳过当前循环的剩余部分,继续下一次循环。

    break - 中断循环

    • 语法
      break( : : : )

    • 示例

    while (true)* 处理...if (TerminateCondition)break()endif
    endwhile
    • 功能说明
      立即退出当前循环结构。

    错误处理

    try / catch / endtry - 异常处理

    • 语法

    try* 可能出错的代码
    catch (Exception)* 异常处理
    endtry
    • 示例

    tryread_image(Image, 'nonexistent.jpg')
    catch (HException)dev_display(ErrorImage)
    endtry
    • 功能说明
      捕获并处理运行时异常,防止程序崩溃。

    throw - 抛出异常

    • 语法
      throw( : : Exception : )

    • 示例

    if (Area < Threshold)throw('Area too small')
    endif
    • 功能说明
      主动抛出异常,可被catch捕获。

    定时控制

    count_seconds - 获取系统时间

    • 语法
      count_seconds( : : : Seconds)

    • 示例

    count_seconds(StartTime)
    * 执行操作...
    count_seconds(EndTime)
    Elapsed := EndTime - StartTime
    • 功能说明
      获取当前系统时间(秒),用于计时。

    wait_seconds - 暂停执行

    • 语法
      wait_seconds( : : Seconds : )

    • 示例

    wait_seconds(0.5) * 暂停500毫秒
    • 功能说明
      使程序暂停指定秒数。

    系统控制

    set_system - 设置系统参数

    • 语法
      set_system( : : SystemParameter, Value : )

    • 示例

    set_system('clip_region', 'true')
    set_system('tsp_width', 2)
    • 功能说明
      配置Halcon全局系统参数。

    get_system - 获取系统参数

    • 语法
      get_system( : : SystemParameter : Value)

    • 示例

    get_system('version', HalconVersion)
    • 功能说明
      查询Halcon系统参数值。

    reset_obj_db - 重置对象数据库

    • 语法
      reset_obj_db( : : : )

    • 示例

    reset_obj_db()
    • 功能说明
      清除内存中的所有Halcon对象,释放内存。


    十三.数学运算

    基础算术运算

    add - 加法运算

    • 语法
      add( : Image1, Image2 : ResultImage : Mult, Add : )

    • 示例

    add(Image1, Image2, ResultImage, 1, 0)
    • 功能说明
      对两幅图像进行像素级加法运算:ResultImage = Image1 × Mult + Image2 × Add

    sub - 减法运算

    • 语法
      sub( : Image1, Image2 : ResultImage : Mult, Add : )

    • 示例

    sub(Image1, Image2, ResultImage, 1, 0)
    • 功能说明
      对两幅图像进行像素级减法运算:ResultImage = Image1 × Mult - Image2 × Add

    mult - 乘法运算

    • 语法
      mult( : Image1, Image2 : ResultImage : Mult, Add : )

    • 示例

    mult(Image1, Image2, ResultImage, 1, 0)
    • 功能说明
      对两幅图像进行像素级乘法运算:ResultImage = Image1 × Image2 × Mult + Add

    div - 除法运算

    • 语法
      div( : Image1, Image2 : ResultImage : Mult, Add : )

    • 示例

    div(Image1, Image2, ResultImage, 1, 0)
    • 功能说明
      对两幅图像进行像素级除法运算:ResultImage = Image1 / Image2 × Mult + Add

    统计运算

    min_max_gray - 灰度值极值统计

    • 语法
      min_max_gray( : Regions, Image : : Percent : Min, Max, Range)

    • 示例

    min_max_gray(Region, Image, 0, Min, Max, Range)
    • 功能说明
      计算区域内图像灰度值的最小值、最大值和范围

    intensity - 区域灰度统计

    • 语法
      intensity( : Regions, Image : : Mean, Deviation)

    • 示例

    intensity(Region, Image, Mean, Deviation)
    • 功能说明
      计算区域内图像灰度值的均值和标准差

    area_center - 区域面积和中心

    • 语法
      area_center( : Regions : : Area, Row, Column)

    • 示例

    area_center(Region, Area, Row, Column)
    • 功能说明
      计算区域的面积和中心坐标

    几何变换

    hom_mat2d_identity - 创建单位矩阵

    • 语法
      hom_mat2d_identity( : : : HomMat2DIdentity)

    • 示例

    hom_mat2d_identity(HomMat2D)
    • 功能说明
      创建一个2D单位齐次变换矩阵

    hom_mat2d_rotate - 旋转矩阵

    • 语法
      hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)

    • 示例

    hom_mat2d_rotate(HomMat2D, rad(45), 100, 100, HomMat2DRotate)
    • 功能说明
      在现有变换矩阵上添加旋转变换

    hom_mat2d_translate - 平移矩阵

    • 语法
      hom_mat2d_translate( : : HomMat2D, Tx, Ty : HomMat2DTranslate)

    • 示例

    hom_mat2d_translate(HomMat2D, 50, 30, HomMat2DTranslate)
    • 功能说明
      在现有变换矩阵上添加平移变换

    逻辑运算

    union1 - 区域合并

    • 语法
      union1( : Regions : RegionUnion : )

    • 示例

    union1(RegionList, MergedRegion)
    • 功能说明
      将多个区域合并为一个区域

    intersection - 区域交集

    • 语法
      intersection( : Region1, Region2 : RegionIntersection : )

    • 示例

    intersection(RegionA, RegionB, OverlapRegion)
    • 功能说明
      计算两个区域的交集区域

    complement - 区域补集

    • 语法
      complement( : Region : RegionComplement : )

    • 示例

    complement(Region, BackgroundRegion)
    • 功能说明
      计算区域的补集(背景区域)


    十四.系统操作核心算子介绍

    系统信息与控制

    get_system - 获取系统参数

    • 语法
      get_system( : : SystemParameter : Value)

    • 示例

    get_system('version', HalconVersion)
    get_system('processor_num', NumCores)
    • 功能说明
      查询Halcon系统参数,如版本号、处理器核心数等常用参数

    set_system - 设置系统参数

    • 语法
      set_system( : : SystemParameter, Value : )

    • 示例

    set_system('tsp_width', 2)       // 设置线宽
    set_system('clip_region', 'true') // 启用区域裁剪
    • 功能说明
      配置Halcon全局运行参数,影响后续所有操作

    内存管理

    reset_obj_db - 重置对象数据库

    • 语法
      reset_obj_db( : : : )

    • 示例

    * 处理大量图像后...
    reset_obj_db() // 释放内存
    • 功能说明
      清除内存中所有Halcon对象,释放系统资源

    clear_obj - 清除特定对象

    • 语法
      clear_obj( : Object : )

    • 示例

    clear_obj(LargeImage) // 释放单个图像内存
    • 功能说明
      删除指定的Halcon对象并释放其内存

    并行计算控制

    set_operator_timeout - 设置操作超时

    • 语法
      set_operator_timeout( : : Timeout : )

    • 示例

    set_operator_timeout(5000) // 设置5秒超时
    • 功能说明
      为耗时操作设置超时时间(毫秒)

    get_operator_timeout - 获取当前超时设置

    • 语法
      get_operator_timeout( : : : Timeout)

    • 示例

    get_operator_timeout(CurrentTimeout)
    • 功能说明
      查询当前设置的超时时间

    系统状态查询

    count_relation - 统计对象数量

    • 语法
      count_relation( : Objects : : Number)

    • 示例

    count_relation(ImageArray, NumImages)
    • 功能说明
      统计Halcon元组或对象数组中的元素数量

    get_handle_info - 获取句柄信息

    • 语法
      get_handle_info( : : Handle, InfoName : InfoValue)

    • 示例

    get_handle_info(WindowHandle, 'width', WindowWidth)
    • 功能说明
      查询各种Halcon句柄(窗口、线程等)的详细信息

    多线程控制

    par_start - 启动并行操作

    • 语法
      par_start( : : : ThreadID)

    • 示例

    par_start(ThreadID)
    * 在子线程中执行操作...
    • 功能说明
      创建新线程执行并行任务

    par_join - 等待线程结束

    • 语法
      par_join( : : ThreadID : )

    • 示例

    par_join(ThreadID) // 等待指定线程完成
    • 功能说明
      阻塞当前线程直到指定线程执行完毕


    15. 元组操作(Tuple)

    • 基础操作
      tuple_select(索引访问) | tuple_concat(连接)

    • 数学统计
      tuple_mean(平均值) | tuple_deviation(标准差)


    16. 对象操作(Object)

    • 创建/复制
      gen_empty_obj(空对象) | copy_obj(深拷贝)

    • 类型转换
      region_to_bin(区域转二值图) | image_to_channels(通道分离)


    17. 开发工具(Development)

    • 调试工具
      dev_set_check(输入检查) | dev_error_var(错误变量)

    • 代码导出
      export_procedure(导出为C++/C#)


    18. 通信(Communication)

    • 网络通信
      open_socket | send_data(TCP/IP通信)

    • 串口通信
      open_serial | write_serial(PLC控制)


    19. 标定(Calibration)

    • 相机标定
      create_calib_data | find_calib_object(标定板识别)
      calibrate_cameras(内参计算)

    • 手眼标定
      calibrate_hand_eye(机械臂标定)

    相关文章:

  • 基于Java(GUI)实现五子棋
  • 【ARM/RISCV 嵌入式 编译系列 16 -- GCC 进制优化编译的常用方法】
  • SQL进阶之旅 Day 1:高效表设计与规范
  • leetcode-快慢指针系列
  • FFTW图像处理之频域滤波和频域分析
  • 2025语音语聊系统源码开发深度解析:WebRTC与AI降噪技术如何重塑语音社交体验
  • 苍穹外卖07 缓存菜品缓存套餐 添加购物车
  • 电脑风扇转速不正常的原因
  • Python、PyTorch、TensorFlow和飞桨(PaddlePaddle)的核心介绍及对比
  • EtherNet IP到modbus TCP网关完成AGV系统的安全解决方案及应用
  • Day34 Python打卡训练营
  • 关于千兆网络变压器的详细介绍
  • 03 基于 java udp 做一个dns服务器 和 一个dns代理服务器
  • 【ISP算法精粹】ISP算法管线的预处理算法有哪些?
  • 新能源汽车滑行阻力参数计算全解析:从理论推导到MATLAB工具实现
  • 深度学习中的分布偏移问题及其解决方法
  • LeetCode Hot100(字串)
  • 在 Ubuntu 虚拟机中实现 HTML 表单与 C 语言 HTTP 服务器交互
  • 前后端联调实战指南:Axios拦截器、CORS与JWT身份验证全解析
  • WPF骨架屏控件(Skeleton)
  • 企业宣传网站建设/投诉百度最有效的电话
  • 网站建设项目前分析/友情链接收录
  • 做企业营销网站/类聚seo
  • wordpress kalium/广告投放优化师
  • 云存储做网站/软文广告投放平台
  • 软件开发模式/seo怎么刷关键词排名