ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Halcon ---C#调用时绘制区域为空,出现异常

2021-12-24 09:30:21  阅读:240  来源: 互联网

标签:HOperatorSet C# hv Halcon --- 区域 ho 为空 out


相同的算子,在Halcon中使用可以得到正常的区域,但是在Visual Studio软件C#语言使用时,得到的区域为空,在VS中区域为空,代码如下:
HOperatorSet.GenEmptyRegion(out HObject ho_EmptyRegion);
HOperatorSet.GenRectangle1(out ho_ModelROI, Row10, Col10, Row20, Col20);
HOperatorSet.TestEqualRegion(ho_EmptyRegion, ho_ModelROI, out HTuple hv_y);
查看hv_y的值,hv_y=0,表示false,不为空,hv_y=1,表示true,该区域为空
出现区域为空时,原因如下:
定义ParentROI父类 ChildROI子类
在父类中定义抽象方法 在子类中实现 其中涉及绘制ROI,然而在实践中发现,绘制出的区域被裁剪
显示不完全,就像被一个处左上角的矩形取交集一样。
解决方案:
经查halocn set_system方法其中涉及到了 设计了系统的内部宽度高度等参数,从帮助文档中,可以看到默认是128128的区域。也就是说所有超出显示范围外的图像变量都会被裁剪,其效果就相当于两区域取交集。
方案1:
在调用绘制区域之前的代码,重新设置区域的大小,我这边使用的区域为1624
1240,修改如下:
HOperatorSet.SetSystem(“width”, 1624);
HOperatorSet.SetSystem(“height”,1240);
方案2
在代码加载的时候,直接初始化区域,这个方案不需要考虑区域的大小,建议使用该方案
HOperatorSet.SetSystem(“clip_region”, “false”);

标签:HOperatorSet,C#,hv,Halcon,---,区域,ho,为空,out
来源: https://blog.csdn.net/meifeisewu8/article/details/122120928

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

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

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

ICode9版权所有