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

6 篇文章 1 订阅
5 篇文章 1 订阅

相同的算子,在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”);

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值