C#在CogRecordDisplay上绘制ROI区域

此文是对康耐视VisionPro视觉程序C#接口的进一步认识和使用,建议阅读此文之前先阅读VisionPro+C#纯代码不使用VPP文件实例一文,另外关于ROI区域的介绍请看C#使用GDI在图像中绘制感兴趣区域ROI。本文大部分人是用不着的,只有特殊需求才需要。

阅读本文想必大家对CogPMAlignTool的调试方式还是有所了解的,鼠标拖拽的方式既方便又快捷,而鼠标拖拽改变的ROI区域就是文本实现的重点。

C#在CogRecordDisplay上绘制ROI区域

C#在CogRecordDisplay上绘制ROI区域

如上图所示,在CogRecordDisplay控件上,绘制一个ROI区域,并通过鼠标修改ROI区域的形状与大小,最后取得改变后的ROI区域数据。实现代码如下:

首先声明一个全局变量cra,方便我们后面取得数据。

 CogRectangleAffine cra;

然后读入一张图像,并显示到控件中。

 cogRecordDisplay1.Image = new CogImage8Grey(new Bitmap(opf.FileName));

实例化ROI区域对象。

cra = new CogRectangleAffine();

设置区域大小、位置、形状。

cra.SetCenterLengthsRotationSkew(50, 50, 100, 100, 0, 0);

允许用户交互调整

cra.Interactive = true;
cra.GraphicDOFEnable = CogRectangleAffineDOFConstants.All;

加入到显示控件中


隐藏内容,解锁需要开通VIP
登录/注册

注册ROI区域变化事件

 cra.Changed += crachange;

ROI区域变化事件处理函数

private void crachange(Object sender, CogChangedEventArgs e)
{
label1.Text = cra.CenterX.ToString();
label2.Text = cra.CenterY.ToString();
label3.Text = cra.SideXLength.ToString();
label4.Text = cra.SideYLength.ToString();
label5.Text = cra.Rotation.ToString();
label6.Text = cra.Skew.ToString();
}

有了本文的方法,前面对于C#纯代码训练使用CogPMAlignTool一文中的不便即可解决。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/iot/241882.html

(0)
上一篇 2022年4月7日 01:52
下一篇 2022年4月7日 01:52

相关推荐

发表回复

登录后才能评论