让代码更简单

当前位置:代码狗 > 开发教程 > 工业视觉教程 > 正文

C#在CogRecordDisplay上绘制ROI区域

重要:本文最后更新于2019-12-23 08:31:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

此文是对康耐视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;

加入到显示控件中

要查看更多文章内容,请您先登录/注册

注册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一文中的不便即可解决。

感觉很棒!可以赞赏支持我哟~

赞(2) 打赏

评论 1

  1. #1

    好复杂的C#

    夏日博客3个月前 (12-23)回复
×

请作者吃根烤肠!

支付宝