【issue-halcon例程学习】measure_pin.hdev

这篇具有很好参考价值的文章主要介绍了【issue-halcon例程学习】measure_pin.hdev。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

例程功能

 检测IC引脚。代码更多地关注测量函数的可视化情况。文章来源地址https://www.toymoban.com/news/detail-819870.html

代码如下

dev_close_window ()
read_image (Image, 'ic_pin')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_display (Image)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
Row := 47
Column := 485
Phi := 0
Length1 := 420
Length2 := 10
dev_set_color ('green')
dev_set_draw ('margin')
dev_set_line_width (3)
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_update_pc ('off')
dev_update_var ('off')
n := 100
count_seconds (Seconds1)
for i := 1 to n by 1
    measure_pairs (Image, MeasureHandle, 1.5, 30, 'negative', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, PinWidth, PinDistance)
endfor
count_seconds (Seconds2)
Time := Seconds2 - Seconds1
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_set_color ('red')
disp_line (WindowHandle, RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond)
avgPinWidth := sum(PinWidth) / |PinWidth|
avgPinDistance := sum(PinDistance) / |PinDistance|
numPins := |PinWidth|
dev_set_color ('yellow')
disp_message (WindowHandle, 'Number of pins: ' + numPins, 'image', 200, 100, 'yellow', 'false')
disp_message (WindowHandle, 'Average Pin Width:  ' + avgPinWidth, 'image', 260, 100, 'yellow', 'false')
disp_message (WindowHandle, 'Average Pin Distance:  ' + avgPinDistance, 'image', 320, 100, 'yellow', 'false')
* dump_window (WindowHandle, 'tiff_rgb', 'C:\\Temp\\pins_result')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
Row1 := 0
Column1 := 600
Row2 := 100
Column2 := 700
dev_set_color ('blue')
disp_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
stop ()
dev_set_part (Row1, Column1, Row2, Column2)
dev_display (Image)
dev_set_color ('green')
dev_display (Rectangle)
dev_set_color ('red')
disp_line (WindowHandle, RowEdgeFirst, ColumnEdgeFirst, RowEdgeSecond, ColumnEdgeSecond)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_set_part (0, 0, Height - 1, Width - 1)
dev_display (Image)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_set_color ('green')
* draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
Row := 508
Column := 200
Phi := -1.5708
Length1 := 482
Length2 := 35
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)
stop ()
measure_pos (Image, MeasureHandle, 1.5, 30, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)
PinHeight1 := RowEdge[1] - RowEdge[0]
PinHeight2 := RowEdge[3] - RowEdge[2]
dev_set_color ('red')
disp_line (WindowHandle, RowEdge, ColumnEdge - Length2, RowEdge, ColumnEdge + Length2)
disp_message (WindowHandle, 'Pin Height:  ' + PinHeight1, 'image', RowEdge[1] + 40, ColumnEdge[1] + 100, 'yellow', 'false')
disp_message (WindowHandle, 'Pin Height:  ' + PinHeight2, 'image', RowEdge[3] - 120, ColumnEdge[3] + 100, 'yellow', 'false')
* dump_window (WindowHandle, 'tiff_rgb', 'C:\\Temp\\pins_height_result')
dev_set_draw ('fill')
dev_set_line_width (1)

要点

  1. disp_continue_message——在WindowHandle对应区域右下角显示Press Run (F5) to continue;
    WindowHandle:入参,文本显示的窗口句柄;
    Color :入参,文本显示的颜色;
    Box :入参,置true文本在白框内,反之无白框;
  2. disp_line——显示线段;
    WindowHandle:入参,窗口句柄;
    Row1 :入参,起始点行值(纵坐标);
    Column1 :入参,起始点列值(横坐标);
    Row2 :入参,终止点行值(纵坐标);
    Column2 :入参,终止点列值(横坐标);
  3. disp_rectangle1——显示不带旋转角度的矩形;
    WindowHandle:入参,窗口句柄;
    Row1 :入参,左上角点行值(纵坐标);
    Column1 :入参,左上角点列值(横坐标);
    Row2 :入参,右下角点行值(纵坐标);
    Column2 :入参,右下角点列值(横坐标);
    4.measure_pairs ——提取垂直于矩形或环形弧的直边对;
    measure_pos ——提取垂直于矩形或环形弧的直边;

到了这里,关于【issue-halcon例程学习】measure_pin.hdev的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Halcon学习---图像采集助手

    目录 (一)打开图像采集助手 (二)图像资源的获取方式 1、图像获取接口  2、图像文件 3、可通过快捷键Ctrl+ r读取图像 (三)连接相机,设置参数 1、连接相机,采集图像 2、设置相机参数 (四)检测 (五)代码生成 1、根据需求设置为单幅采集、循环采集  2、采集模式

    2024年02月09日
    浏览(40)
  • Halcon学习之一维测量(1)

    一维测量:测量范围包括直线上的测量和弧线上的测量,直线使用矩形框的测量助手 二维测量: 测量的目的:主要是测量获得工件的实际物理尺寸,这个实现的过程里面还有有个重要的步骤:标定,这个标定不是手眼标定,而是单相机标定( 标定是需要标定板的 ),是为了

    2024年02月10日
    浏览(38)
  • halcon脚本-深度学习【目标检测】

    本文讲解使用halcon的目标检测是使用步骤,标注工具不使用halcon提供的标注工具,而是使用各个深度学习框架都使用的labelImg工具,然后使用hde脚本以及python脚本转化为标准的halcon训练及文件 本文涉及数据标注、数据转化、训练、评估、预测几个模块。   首先我是用的是

    2024年02月10日
    浏览(43)
  • Halcon学习之一维测量(3)

    带定位器的测量。 首先看一下“定位”是什么意思? 回答:比如我们测量一个芯片,这时候我们设置一个测量矩形,来沿着测量目标进行测量。但是下一张当芯片的位置发生变化时,测量矩形的位置就不对了,就不是沿着测量目标了。这样就不对了!芯片在转,测量矩形也

    2024年02月12日
    浏览(31)
  • 使用halcon实现基于深度学习的目标检测

    数据集 数据集的类别已有不需要另外指定,这是因为在读取之前已有数据集的时候,数据集中就会包含了许多数据,其中结构如下: 包括类别序号以及类别名字 预训练模型或者模型 预训练模型也有了基本的参数,如下所示: 训练集、验证集以及测试集的区别 : 一般会认为

    2024年02月05日
    浏览(89)
  • Halcon学习笔记(二)数据结构、通道+XLD

    图像(Image):图像是Halco中最基本的数据结构,用于表示二维图像。它包含了图像的像素值、尺寸、颜色模式等信息。图像可以是灰度图像(单通道图像)或彩色图像(多通道图像),颜色通道可以是RGB、HSV等。图像可以通过读取文件、采集设备或者算法生成。 区域(Regi

    2024年02月22日
    浏览(35)
  • MSPM0L1306例程学习-UART部分(2)

    MSPM0L1306例程学习系列 写在前边的话: 这个系列比较简单,主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。 所有的例程均来自MSPM0 SDK的安装包,具体可到官网下载并安装: https://www.ti.com.cn/tool/cn/download/MSPM0-SDK/ 因为例程多数包含sy

    2024年01月20日
    浏览(32)
  • halcon混合c#深度学习平整度怎么写

    Halcon是一款强大的机器视觉库,可以用于图像处理和分析。在Halcon中,可以通过C#语言与深度学习模型进行集成。下面是一个简单的示例,展示了如何使用Halcon和C#编写深度学习平整度的代码: 首先,确保你已经安装了Halcon的开发环境,并在C#项目中引入了Halcon的相关引用。

    2024年04月15日
    浏览(34)
  • Measurement Studio 2019 f3 Crack

    Measurement Studio是Microsoft Visual Studio的扩展软件,提供了用于创建测试和测量应用程序的.NET工具。 了解Measurement Studio的功能 Measurement Studio是​唯一​一​款.NET​工具​套​件,专为在Microsoft Visual Studio中构建工程应用,主要用于采集、分析并显示测量数据。您可以使用与硬件

    2024年02月08日
    浏览(34)
  • FPGA实现Aurora 8B/10B接口(5)--官方例程学习(Framing接口)

    文章目录 1、IP核定制与官方例程的生成 1.1、第一页配置:物理层以及链路层信息选择

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包