ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Halcon句柄操作

2022-01-23 22:35:21  阅读:217  来源: 互联网

标签:句柄 ...... Halcon 内存 auto 操作 halcon


在Windows操作系统下,句柄代表一个标识符,通常是一个整数,和内存管理机制有关。一般句柄的命名都带有handle,使用时注意即可。对于Halcon新人而言,往往不注重句柄的清除问题,这类似于C++中new,delete一样,如果句柄不清除的话,回导致软件运行过程中占用内存越来越大。
不仅仅Halcon存在句柄,很多开放的SDK都会有句柄,比如说海康相机SDK中的handle代表相机设备句柄,通过句柄可以更改相机的参数

句柄不释放带来的内存问题

比如说,刚新建一个halcon项目时,可以看到

for Index := 1 to 100 by 1
   dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
endfor

打开任务管理器可以看见,在句柄创建之前,Halcon运行内存是68.9,建立了100次窗口句柄之后,运行内存上升到83.3.可能对于工控机来说,这点内存不算什么,但是一个大型项目来说,工控机一般是不停运转的,如果没有一个好的halcon管理习惯,会对电脑操作系统带来巨大伤害。

Halcon中常见的句柄创建及销毁

halcon的Image等,系统会自己释放掉,但是句柄需要自己手动释放。(好消息是halcon18过后版本无需自己手动释放)

1. 相机句柄
打开相机句柄,需要手动关闭采集设备句柄

open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'fabrik', '', 1, 2, FRHandle)
......
......
close_framegrabber (FRHandle)

2. 模板句柄
开辟了一个模板句柄,需要清除模板句柄

create_shape_model (Image, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
......
......
clear_shape_model (ModelID)

3. 文件句柄
打开文件句柄,需要清除

open_file ('standard', 'output', FileHandle)
......
......
close_file (FileHandle)

其余的还有测量句柄,深度学习句柄、OCR字符句柄等等。
在halcon程序段中,要特别注意句柄的创建及销毁。
在大型C++视觉项目中,可以在类的析构函数中增加函数判断句柄是否销毁,若没有销毁的话,在
析构函数内再执行一遍句柄清除函数。

标签:句柄,......,Halcon,内存,auto,操作,halcon
来源: https://www.cnblogs.com/zhuchunyu123/p/15836592.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有