此文是对康耐视VisionPro视觉程序C#接口的进一步认识和使用,建议阅读此文之前先阅读VisionPro+C#纯代码不使用VPP文件实例一文,另外关于ROI区域的介绍请看C#使用GDI在图像中绘制感兴趣区域ROI。本文大部分人是用不着的,只有特殊需求才需要。
阅读本文想必大家对CogPMAlignTool的调试方式还是有所了解的,鼠标拖拽的方式既方便又快捷,而鼠标拖拽改变的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一文中的不便即可解决。
评论 (6)