0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Halcon例程之圆弧测量工具分析

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-03-21 13:39 次阅读

* Example for the application of the measure package

* including a lot of visualization operators

*

*读取图像

read_image (Zeiss1, 'zeiss1')

get_image_size (Zeiss1, Width, Height)

dev_close_window ()

dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowHandle)

set_display_font (WindowHandle, 14, 'mono', 'true', 'false')

*显示图像

dev_display (Zeiss1)

disp_continue_message (WindowHandle, 'black', 'true')

stop ()

*在图像上相应位置绘制圆,这里用固定变量的方法产生圆的参数,把这个圆绘制代码注释掉了。这个圆用于后面的测量工具上

* draw_circle (WindowHandle, Row, Column, Radius)

*定义变量用于生成圆,如果手动绘制就不需要用下面的变量了

Row := 275

Column := 335

Radius := 107

AngleStart := -rad(55)

AngleExtent := rad(170)

dev_set_draw ('fill')

dev_set_color ('green')

dev_set_line_width (1)

*获取圆弧的起始坐标

get_points_ellipse (AngleStart + AngleExtent, Row, Column, 0, Radius, Radius, RowPoint, ColPoint)

*显示圆弧

disp_arc (WindowHandle, Row, Column, AngleExtent, RowPoint, ColPoint)

dev_set_line_width (3)

*生成圆弧测量工具

*前五个参数是圆弧的位置相关输入参数

*第六个参数是需要生成的测量圆弧工具的宽度,即一个圆弧区域的宽度,在这里整个测量区域是半径-10到半径+10这个区域范围

*第七第八个参数是图像宽高

*第九个参数是插值方式,这里是用最近邻插值方式

*最后一个输出参数是测量工具的句柄,后面需要用到这个测量工具都通过句柄引用

gen_measure_arc (Row, Column, Radius, AngleStart, AngleExtent, 10, Width, Height, 'nearest_neighbor', MeasureHandle)

disp_continue_message (WindowHandle, 'black', 'true')

stop ()

*计算算法时间

count_seconds (Seconds1)

n := 10

for i := 1 to n by 1

*第一个参数是输入图像

*第二个参数是测量工具句柄值

*第三个参数是高斯平滑的sigma值

*第四个参数是阈值

*第五个参数是测量的边缘方向选择参数,'all'是选择所有的边缘,'negative'只选择白到黑的边缘,'positive'只选择黑到白的边缘

*这里两个边缘都选择总共选择出4个像素差值边缘

*第六个参数是是否选择端点,这里选择所有端点

*第七个参数是输出的边缘点行坐标值

*第八个参数是输出的边缘点列坐标值

*第九个参数是输出的边缘点最大幅值

*第十个参数是输出的相邻边缘之间的距离

measure_pos (Zeiss1, MeasureHandle, 1, 10, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)

endfor

count_seconds (Seconds2)

Time := (Seconds2 - Seconds1) / n

disp_continue_message (WindowHandle, 'black', 'true')

* stop ()

*计算两个点间的距离

distance_pp (RowEdge[1], ColumnEdge[1], RowEdge[2], ColumnEdge[2], IntermedDist)

* dev_display (Zeiss1)

dev_set_color ('red')

* disp_circle (WindowHandle, RowEdge, ColumnEdge, RowEdge - RowEdge + 1)

*显示测量出来的直线

disp_line (WindowHandle, RowEdge[1], ColumnEdge[1], RowEdge[2], ColumnEdge[2])

dev_set_color ('yellow')

disp_message (WindowHandle, 'Distance: ' + IntermedDist, 'image', 250, 80, 'yellow', 'false')

* dump_window (WindowHandle, 'tiff_rgb', 'C:\Temp\zeiss_result')

dev_set_line_width (1)

* disp_continue_message (WindowHandle, 'black', 'true')

stop ()

dev_clear_window ()

打开halcon,按下ctrl+e打开halcon自带例程。工业领域->机械行业->measure_arc.hdev

这个例程是用圆弧测量工具测量圆弧的长度,较短的一段圆弧可以大约等长与直线,但大圆弧是不能等长于直线的,比如历程中两个凹坑处的圆弧长度这里同样是可以测量出来的。

圆弧测量的原理与矩形测量的原理是一样的,把圆弧区域用插值的方式转换到矩形区域空间,在矩形主方向上做灰度值差分,得到差分图像,找出差分值大于设定阈值的点位置。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1247

    浏览量

    56123
  • HALCON
    +关注

    关注

    16

    文章

    63

    浏览量

    27036

原文标题:Halcon例程分析6:圆弧测量工具

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview调用halcon软件包

    众所周知NI在视觉这块虽然有涉猎,但是它的一些算法性能比一些专业的视觉软件如halcon要差,不可否认,NI_vision在一些尺寸测量方面、找直线还是比较便利的。如今的视觉系统需求越来越复杂
    发表于 05-27 12:04

    halcon与LabVIEW Vision混合编程接口问题

    下面有没有类的功能,可以让Vison生成的二维数组传给halconhalcon将二维数组转成图像做处理,处理完了以后再转成二维数组导出来传给Vision呢? 各位大大有没有在halcon下面开发过类似的程序呢?有没有类似的
    发表于 06-29 11:13

    Labview里面使用Halcon的函数。 方法一:直接调用Halcon的函数。

    本帖最后由 高顺周 于 2016-10-14 19:06 编辑 在Labview使用Halcon,有两种方式。一种是创造一个Halcon程序的运行环境,然后根据路径直接调用对应的hdev程序
    发表于 08-15 14:14

    labview与halcon连用

    本帖最后由 x451129684 于 2017-11-16 16:46 编辑 labview通过.net调用halcon算子,测量一个圆的角度
    发表于 11-16 09:39

    CAD中怎么创建圆弧?CAD圆弧快捷键应用技巧

    [圆心(C)],接着继续指定圆弧的第二个点或[圆心(C)/端点(E)],即可完成圆弧的绘制了。如下图所示:除了使用CAD圆弧快捷键命令以外,还可以通过菜单栏和工具栏来调用
    发表于 05-10 13:54

    端到端路径容量测量工具性能分析

    分析已有路径容量测量工具的性能,定义了评价工具性能的指标集,在自行搭建的可控网络环境和可重复的多种背景流量条件下,对儿种典型的测量
    发表于 09-26 15:26 17次下载
    端到端路径容量<b class='flag-5'>测量</b><b class='flag-5'>工具</b>性能<b class='flag-5'>分析</b>

    C#教程之隐藏工具

    C#教程之隐藏工具箱,很好的C#资料,快来学习吧。
    发表于 04-20 09:59 3次下载

    C#教程之HELLO第一个例程

    C#教程之HELLO第一个例程,很好的C#的资料,快来学习吧。
    发表于 04-25 15:49 7次下载

    LabVIEW初级教程之数组和簇的相关例程免费下载

    本文档的主要内容详细介绍的是LabVIEW初级教程之数组和簇的相关例程免费下载。
    发表于 01-15 09:59 22次下载
    LabVIEW初级教<b class='flag-5'>程之</b>数组和簇的相关<b class='flag-5'>例程</b>免费下载

    Arduino的实验例程之红外遥控实验

    本文档的主要内容详细介绍的是Arduino的实验例程之红外遥控实验。
    发表于 02-25 16:36 49次下载
    Arduino的实验<b class='flag-5'>例程之</b>红外遥控实验

    Arduino的实验例程之9克舵机实验的详细资料说明

    本文档的主要内容详细介绍的是Arduino的实验例程之9克舵机实验的详细资料说明。
    发表于 02-25 16:36 14次下载

    Arduino的实验例程之9克舵机实验的详细资料说明

    本文档的主要内容详细介绍的是Arduino的实验例程之9克舵机实验的详细资料说明。
    发表于 02-25 16:36 30次下载

    Arduino的实验例程之虚拟鼠标实验

    本文档的主要内容详细介绍的是Arduino的实验例程之虚拟鼠标实验。
    发表于 02-25 16:37 14次下载

    Arduino的实验例程之直流电机驱动

    本文档的主要内容详细介绍的是Arduino的实验例程之直流电机驱动免费下载。
    发表于 02-25 17:39 22次下载

    Halcon中的测量工具之Metrology介绍

    对于使用Halcon的小伙伴们来说,在菜单栏上的“助手”一栏中可以找到一些可以快捷使用的工具
    的头像 发表于 03-24 16:35 7044次阅读