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

相同的算子,在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方法其中涉及到了 设计了系统的内部宽度高度等参数,从帮助文档中,可以看到默认是128 _128的区域。也就是说所有超出显示范围外的图像变量都会被裁剪,其效果就相当于两区域取交集。
方案1:
在调用绘制区域之前的代码,重新设置区域的大小,我这边使用的区域为1624_1240,修改如下:
HOperatorSet.SetSystem(“width”, 1624);
HOperatorSet.SetSystem(“height”,1240);
方案2
在代码加载的时候,直接初始化区域,这个方案不需要考虑区域的大小,建议使用该方案
HOperatorSet.SetSystem(“clip_region”, “false”);

Original: https://blog.csdn.net/meifeisewu8/article/details/122120928
Author: meifeisewu8
Title: Halcon —C#调用时绘制区域为空,出现异常

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644855/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球