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

2021/12/24 9:38:35

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



这篇关于Halcon ---C#调用时绘制区域为空,出现异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程