halcon 学习笔记

摘要:
首先,我们应该知道,区域不具有单独构成图像的元素,也不具有灰度值。同样,halcon也有领域的概念。首先设置一个矩形区域,然后使用reduce_域后,单击_域将裁剪图像。使用dump_window_ Image保存相应窗口的屏幕截图。屏幕截图是当前的视觉图像,包括已在图像上绘制的区域和xld-----------------------------------------------------------------------------------31。哪个函数用于将区域或xld绘制到图像上?Halcon使用油漆和覆盖层进行油漆。不同之处在于,覆盖本身可以绘制,而绘制输出可以是其他图像。条形码质量评估运算符是get_bar_code_result

1、HsmartWindow 报错问题

2、HwindowCtronl绘制图形未结束又点击绘制导致错误

3、论坛转贴 常见问题

4、找圆找线部分参数设置

 5、实现基于形状的模板匹配

6、一维测量-卡尺

 7、直线/圆拟合

----------------------------------------------------------------

 1-- HsmartWindow 控件除了会调用halcondonet.dll外还会调用halcon.dll,如果程序根目录不存在halcon.dll,则会通过全局变量找到halcon mevtec目录去调用,这样是没有问题的;

如果根目录下存在halcon.dll,则会优先调用根目录下的文件,然后halcon.dll内部如果使用到HsmartWindow的功能,则还会调用一个Hcanvas.dll的文件,如果根目录下没有这个文件则会报错,程序编译后启动过程中报错,

报错内容为:

halcon 学习笔记第1张

----------------------------------------------------------------------------------

2-   HsmartWindow不支持Draw开头的函数,只能在Hwindow上面画,在执行Draw函数的时候,程序停在该函数位置,未点击鼠标右键确认Draw Region之前,程序会一直停留,此时再执行其他的Draw函数,就会导致在整个流程乱掉,避免这种情况的方法是在每个Draw函数之前都调用一次HalconApi.CancelDraw()函数,结束上次未完成的绘制。

halcon 学习笔记第2张

--------------------------------------------------------------------

 3--以下引用ihalcon学习网上帖子《转“Halcon基本问题解答”》

http://www.ihalcon.com/read-4666.html

----------------------------------------------------------
2. 裁剪图像;从图像上截取某段图像进行保存。如何实现该操作 ?


首先应该知道,region不具有单独构成图像的要素,他没有灰度值。有用过opencv的应该知道 ROI(感兴趣区域),设置好它后,对图像的大部分操作就转为 图像的一个矩形区域内进行。类似的,halcon有domain 概念。 首先 设置好一个矩形区,然后使用 reduce_domain(是一个矩形区域)后,再使用crop_domain 就裁剪出图像。

----------------------------------------------------------------------------

25. 屏幕/窗口截图 。


使用dump_window_image 保存对应窗口截图,截图为当前肉眼所见图像,包括已经绘制到图像上的region,xld等。

-------------------------------------------------------------------------------

31.region或者xld绘制或画到图像上用哪个函数?


Halcon绘制有paint和overpaint,区别是overpaint是绘制自身,paint输出可以是其他图像。

-------------------------------------------------------------------------------------------------------------------------

36.遍历文件夹,读取指定格式文件/图像。


* 遍历文件夹D:/资料库/Downloads
list_files ('D:/资料库/Downloads', ['files','follow_links'], ImageFiles)
* 筛选bmp或jpg格式的文件
tuple_regexp_select (ImageFiles, ['\.(bmp|jpg)$','ignore_case'], ImageFiles)

 --------------------------------------------------------------------------------------------------

39.halcon里面有没有检测条码质量分析的算子?

条码质量评测算子为 get_bar_code_result 。参见示例 print_quality_isoiec15416.hdev 。

------------------------------------------------------------

4--  找圆找线工具,部分参数设置详解

https://www.cnblogs.com/cumt-cwp/p/9713106.html

5-halcon实现模板匹配

reduce_domain (Image, Rectangle, ImageReduced)
create_shape_model (ImageReduced, 4, 0, rad(360), rad(1), 'none', 'use_polarity', 30, 10, ModelID)
//显示模板
get_shape_model_contours (ShapeModel, ModelID, 1)
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_translate (HomMat2DIdentity, Row, Column, HomMat2DTranslate)
affine_trans_contour_xld (ShapeModel, ShapeModelTrans, HomMat2DTranslate)
//寻找模板
    find_shape_model (ImageCheck, ModelID, 0, rad(360), 0.7, 1, 0.5, 'least_squares', 4, 0.7, RowCheck, ColumnCheck, AngleCheck, Score)
    count_seconds (S2)
    dev_display (ImageCheck)
    if (|Score| > 0)
        dev_set_color ('green')
        hom_mat2d_identity (HomMat2DIdentity)
        hom_mat2d_translate (HomMat2DIdentity, RowCheck, ColumnCheck, HomMat2DTranslate)
        hom_mat2d_rotate (HomMat2DTranslate, AngleCheck, RowCheck, ColumnCheck, HomMat2DRotate)
        affine_trans_contour_xld (ShapeModel, ShapeModelTrans, HomMat2DRotate)

6-一维测量-卡尺

    gen_measure_rectangle2 (Rect1Row, Rect1Col, RectPhi, RectLength1, RectLength2, Width, Height, 'bilinear', MeasureHandle1)

measure_pos()

6-直线/圆拟合

* Create the metrology model data structure
create_metrology_model (MetrologyHandle)
* The image size is set in advance to speed up the
* first call of apply_metrology_model.
set_metrology_model_image_size (MetrologyHandle, Width, Height)

* Create two metrology line objects and set parameters
add_metrology_object_line_measure (MetrologyHandle, LineRow1, LineColumn1, LineRow2, LineColumn2, Tolerance, 10, 1, 20, [], [], Index1)

set_metrology_model_param (MetrologyHandle, 'reference_system', [Rows[0],Columns[0],0])

    * Use the top of the diamond to align the metrology model in
    * the current image
    * 
    align_metrology_model (MetrologyHandle, Rows[0], Columns[0], 0)
    * 
    * 
    * Perform the measurement for both lines in one call
    * 
    apply_metrology_model (Image, MetrologyHandle)
    * 

    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', LineParameter)

    get_metrology_object_result_contour (ResultContour, MetrologyHandle, 'all', 'all', 1.5)

    get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', MRow, MColumn)

免责声明:文章转载自《halcon 学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++读写txt关于下拉菜单(dropdownlist)一些用法心得下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Hibernate 数据的批量插入、更新和删除

对于这个批处理场景,Hibernate提供了一个批处理解决方案。接下来,我们将从批插入、批更新和批删除三个方面介绍如何处理此批处理场景。为了避免这种情况,Hibernate为批量更新和批量删除提供了类似于SQL的HQL语法。...

js 预览 excel,js-xlsx的使用

js-xlsx简介SheetJS生成的js-xls x是一个非常方便的工具库,只能使用纯js读取和导出excel。它功能强大,支持多种格式,支持xls、xlsx和ods等十几种格式。本文以xlsx格式为例。官方github:https://github.com/SheetJS/js-xlsx支持演示在线演示地址:http://demo.haoji.me/20...

ESXi挂载NFS共享存储

使用万兆交换机,ESXi使用NFS协议连接存储。本文介绍的是通过NFS协议挂载共享存储上的VS01卷,共享存储上已经赋予ESXi主机访问该卷的权限。...

Linux系统glibc库版本信息查看

有时我们经常需要检查当前系统的glibc版本。您可以按如下方式进行检查:/lib/libc。所以。6有时:/lib/x86-64-linux/libc。因此6.将文件作为命令执行。为什么库可以直接运行?Glibc是gnu发布的libc库,即c运行时。glibc是linux系统中最低级别的api,几乎任何其他运行时都将依赖glibc。Gcc和libc是相互依赖...

OA办公系统 Springboot vue.js 前后分离 跨域 Flowable 工作流

1.模型管理:web在线流程设计器,预览流程xml,导出xml,部署流程2.流程管理:导入和导出流程资源文件,查看流程图,根据流程实例反映流程模型,激活和挂起,自由跳转3.运行流程:查看流程信息,当前任务节点,当前流程图,作废和挂起流程,并分配待办事项人员4.历史流程:查看流程信息、流程时间流程状态、查看任务发起人信息5.待办任务:查看您的个人任务和此角色下...

图卷积神经网络(GCN)入门

不得不专门为GCN开一个新篇章,表示其重要程度。图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。总地来说,图数据既要考虑节点信息,也要考虑结构信息,图卷积神经网络就可以自动化地既学习节点特征,又能学习节点与节点之间的关联信息。GCN的本质目的就是用来提取拓扑图的空间特征。理解图卷积神经网络主要有两类,一类是基于空间域或顶...