• 【一】1D测量 Measuring——measure_pos()算子



    😊😊😊欢迎来到本博客😊😊😊

    🌟🌟🌟 Halcon算子太多,学习查找都没有系统的学习查找路径,本专栏主要分享Halcon各类算子含义及用法,有时间会更新具体案例。

    😊😊😊 具体食用方式:可以点击本专栏【Halcon算子快速查找】–>搜索你要查询的算子名称;或者点击Halcon算子汇总博客,即可食用。

    🎁🎁🎁支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!😙😙😙


    学习目标

    • measure_pos()

    学习内容

    算子简介

    函数名解释
    measure_pos()提取与矩形或环状弧垂直的直线边缘,提供匹配边缘的中点坐标值,并提供该点至下一个匹配点的间距。

    1、measure_pos()

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

      函数说明: 提取与矩形或环状弧垂直的直线边缘,提供匹配边缘的中点坐标值,并提供该点至下一个匹配点的间距。

        该算法通过计算垂直于矩形或环形弧的长轴的“切片”中的灰度值的均值以获得一维边缘轮廓。采样是在矩形中心的整数行和列位置(在矩形的坐标系中)的图像Image中的亚像素位置完成的。由于这含有可以在多次测量中重复使用的一些计算,所以使用算子gen_measure_rectangle2或gen_measure_arc来执行一次这些计算,从而显著提高了measure_pos的速度。由于在灰度值的亚像素计算中存在精度和速度之间的折衷,并且因此在所提取的边缘位置的准确度中,可以在gen_measure_rectangle2中选择不同的插值方案。 (插值仅影响与图像轴不对齐的矩形。)使用gen_measure_rectangle2生成的measure对象在MeasureHandle中传递。

        在计算出一维边缘轮廓之后,通过将轮廓与标准偏差Sigma的高斯平滑核的导数进行卷积来计算亚像素边缘位置。可以用构成振幅阈值的参数Threshold(即边缘的一阶导数的绝对值)来选择显著边缘。请注意,幅度值按Sigmasqrt(2pi)比例缩放。另外,可以仅选择正边缘,即在矩形或弧的长轴方向上构成暗到亮的过渡的边缘(Transition = ‘positive’),或者只有负边缘,即,亮到暗过渡(Transition =‘negative’)或两种类型的边缘(Transition =‘all’)。最后,可以选择返回哪个边缘点。如果Select设置为’all’,则返回所有边缘点。如果设置为’first’,则只返回第一个提取的边缘点,而设置为’last’,则只返回最后一个。

        提取的边缘将把位于矩形或圆弧长轴上的单个点(RowEdge,ColumnEdge)作为提取的边缘返回。 Amplitude返回相应的边缘振幅。 另外,连续的边缘点之间的距离以Distance返回。 这里, Distance[i]对应于Edge[i]和Edge[i+1]之间的距离,即,元组Distance 含有比(RowEdge 和ColumnEdge)的长度-1个元素

      函数参数:
        Image:输入图像名称;
        MeasureHandle:输入测量尺度的句柄;
        Sigma:高斯滤波系数。默认1.0,参考:0.4,0.6,0.8,1.0,1.5,2.0,3.0,4.0,5.0,7.0,10.0。范围:0.4≤Sigma≤100;
        Threshold:最小边缘幅度/阈值。默认:30.0;参考:5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0;范围:1 ≤ Threshold ≤ 255 (lin);
        Transition:选择检测过渡边沿的灰度值方式,默认:‘all’,参考:‘all黑到白,白到黑’,‘positive黑到白’,‘negetive 白到黑’;
        Select:返回所有边缘对,默认:'all’全部返回参考:’last’返回最后一对,'first’返回第一对
        RowEdge:输出匹配边沿起点的y值坐标;
        ColumnEdge:输出匹配边沿起点的x值坐标;
        AmplitudeFirst:输出匹配边沿的幅值;
        InterDistance:输出匹配中心点和下一个匹配点之间的距离。

    Halcon例程

    measure_pin.hdev      	 测量IC的引脚
    measure_ic_leads.hdev     测量IC的引线
    measure_fill_level.hdev    检查瓶颈的液位
    measure_arc.hdev         测量金属部件沿着圆弧的的宽度
    gen_measure_rectangle2.hdev   测量垂直于给定线的边缘
    gen_measure_arc.hdev       测量垂直于给定弧的边
    create_drawing_object_rectangle2.hdev 使用绘图对象在矩形内交互测量直边
    3d_coordinates.hdev         测量世界坐标中的倾斜物体
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【1D测量 Measuring部分】 待更新算子

    • close_measure()
    • close_all_measure()
    • fuzzy_meature_pairing()
    • fuzzy_meature_pairs()
    • gen_meature_arc()
    • gen_meature_rectangle2()
    • meature_pairs()
    • meature_pos()
    • meature_projection()
    • set_fuzzy_meature()
    • set_fuzzy_meature_norm_pair()
    • translate_measure()

    汇总

      本专栏博客汇总:Halcon算子汇总


    🚶🚶🚶今天的文章就到这里啦~
    喜欢的话,点赞👍、收藏⭐️、关注💟哦 ~

  • 相关阅读:
    高并发面试:线程池的七大参数?手写一个线程池?
    LINQ to SQL语句(12)之Delete和使用Attach
    整型在内存中的存储与管理
    Docker常用命令
    Docker端口映射
    新知识:去掉li前面的项目符号(小圆点)
    powderdesigner 关于mysql生成pdm和java的方法
    你知道12306 是如何支撑百万 QPS 的?
    从nuxt开始的SEO之路
    再谈GOF设计模式的设计原则
  • 原文地址:https://blog.csdn.net/qq_41225961/article/details/126872773