【机器视觉运动控制一体机小课堂】三分钟对图像进行ROI创建

在这里插入图片描述

背景

ROI即感兴趣区域是我们机器视觉图像处理经常使用的基本功能。在实际的视觉检测项目过程中,我们将待检测目标的检测特征框选出来的区域称作ROI(感兴趣区域)。使用ROI功能我们可以针对性的处理目标特征,提升检测效率和准确性,同时还可以过滤掉环境中引入的干扰因素。

ROI创建有以下两个优点:

1.可缩减处理图像的区域范围,减少图像像素处理量,缩短图像处理时间,提升效率。

2.基准模板。框选检测目标特征后可过滤掉干扰因素,提高检测方案的准确度。

在采集到一张图像后,即可在图像上框选感兴趣的区域创建ROI。

常见的ROI类型有:矩形、旋转矩形、圆形、圆环。本期课程以创建矩形ROI为例。
在这里插入图片描述

在上期课程中,我们讲述了如何使用 VPLC系列机器视觉运动控制一体机进行图像开闭运算的课程。本期课程正运动小助手给大家分享一下VPLC系列机器视觉运动控制一体机对图像进行ROI创建的课程。

【视觉运控一体机小课堂】三分钟对图像进行ROI创建

教学视频

01VPLC控制器

(一)VPLC516E构架图

在这里插入图片描述

(二)课前准备
1.电脑一台,安装ZDevelop3.10以上版本软件
2.VPLC516E一台
3.24V直流电源一个
4.网线一根
5.WinSCP软件
6.电线若干

02课程主要使用的指令

1.SET_REDRAW – 指定区域重新绘制(需要在自定义元件的刷新函数中使用)

SET_REDRAW ([x, y, width, height])
参数:

X,Y:显示区域左上角的坐X、Y坐标位置

width,height:区域宽和高

2.MOUSE_SCAN – 扫描触摸按下动作

MOUSE_SCAN (num)
参数:

num:触摸对应的位置的X、Y坐标分别存储在table(num), table(num+1)

3.ZV_HMIADJRECT – 矩形ROI调整

hittype = ZV_HMIADJRECT(mousex,mousey,tab_rect,hittype)

参数:
mousex:HMI 控件的鼠标X坐标

mousey:HMI 控件的鼠标Y坐标

tab_rect:保存矩形ROI参数的TABLE索引,依次为ltx、lty、 rbx、rby,即分别为正矩形左上角坐标ltx、lty,右下角坐标rbx、 rby,对应的是hmi控件坐标系下的值,调整后的值将直接替换调整前的值。

hittype:指定击中区域编号,表示指令要调整的矩形对应部分,为-1时表示无效编号,不对矩形做调整;为有效编号时则调整矩形对应的部分。按下鼠标左键则返回当前选中的击中区域编号,按住鼠标左键不放再移动鼠标表示在不断地在调整指定编号所对应的矩形部分,此时返回的击中区域编号与输入的编号一致。

返回值:
hittype:根据鼠标点击位置计算的新的击中区域编号

4.MOUSE_STATE – 读取触摸状态

MOUSE_STATE (num)

参数:
num:触摸对应的位置的 X,Y 坐标分别存储在 table(num), table(num+1)

5.HMI_CONTROLSIZEX – 获取控件宽度

HMI_CONTROLSIZEX ([winid, controlid])

参数:
winid:HMI文件里面窗口编号

controlid:元件编号,缺省为当前自定义元件宽度

6.HMI_CONTROLSIZEY – 获取控件高度

HMI_CONTROLSIZEX ([winid, controlid])

参数:
winid:HMI文件里面窗口编号

controlid:元件编号,缺省为当前自定义元件高度

7.ZV_POSTOIMG – HMI控件坐标转图像坐标

ZV_POSTOIMG(latch_id,num,tab_in_id,tab_out_id)

参数:
latch_id:锁存通道号

num:坐标点数量

tab_in_id:存放转换前坐标点的TABLE索引,num个坐标点数据依次为x、y、x、y…

tab_out_id:存放转换后坐标点的TABLE索引

8.DRAWRECT --绘制矩形

DRAWRECT(x1,y1,x2,y2)

参数:
x1,y1:显示区域左上角的坐标位置

x2,y2:显示区域右下角的坐标位置

03软件实现

1.打开ZDevelop软件:新建名称为“创建ROI.zpj”项目→新建“HMI”文件→新建“main.bas”文件(用于编写界面响应函数、并开启HMI自动运行任务)→新建“相机采集.bas”文件(用于实现相机采集功能)→新建“初始化.bas”文件(用于初始化测量参数)→文件添加到项目。

在这里插入图片描述

2.设计HMI主界面和关联它的控件变量。

在这里插入图片描述

3.编写实现对图像进行ROI创建的执行函数。

'ROI创建的执行函数

GLOBAL SUB update_roi()

   local is_redraw,lv_i

   SET_REDRAW '全局绘制

   if ROI_flag=1 THEN  

      if mouse_scan(11) = 1 then  '扫描鼠标按下操作     

         hit_pos = ZV_HMIADJRECT(table(11), table(12), 25, -1)     '获取调整区域标志

         is_redraw = 1    '将绘图标志置1

      endif    

      if mouse_scan(11) = -1 then  '扫描鼠标松开操作      

         ZV_HMIADJRECT(table(11), table(12), 25, hit_pos)  '调整ROI的位置

         is_redraw = 1   '将绘图标志置1

      endif    

      if (MOUSE_state(11)) then      

         ZV_HMIADJRECT(table(11), table(12), 25, hit_pos)  '调整ROI的位置

         is_redraw = 1   '将绘图标志置1

      endif   

      if (TABLE(25) >= 0) AND (TABLE(27) <= and="">= 0) AND (TABLE(28) <= HMI_CONTROLSIZEY(10,2))  THEN

         TABLE(30) = TABLE(25) ' CX

         TABLE(31) = TABLE(26) ' CY

         TABLE(32) = TABLE(27) ' Width

         TABLE(33) = TABLE(28) ' Height

      ELSEIF (TABLE(25) < 0) OR (table(27) >  HMI_CONTROLSIZEX(10,2)) OR (table(26) < 0) OR (table(28) > HMI_CONTROLSIZEY(10,2))  THEN

         TABLE(25) = TABLE(30)  

         TABLE(26) = TABLE(31)

         TABLE(27) = TABLE(32)

         TABLE(28) = TABLE(33)

      endif  

      if (1 = is_redraw) then    

         is_redraw = 0    '将绘图标志置0     

         ZV_POSTOIMG(0, 2, 25, 15)'将ROI的控件坐标数据转到图像坐标数据

         d_roi_rect(0) = TABLE(15)'将ROI的图像坐标数据赋值给定义的变量

         d_roi_rect(1) = TABLE(16)

         d_roi_rect(2) = table(17)

         d_roi_rect(3) = table(18)    

         SET_REDRAW '全局绘制

      endif

   endif

ENDSUB



'ROI区域更新后实时绘制ROI区域

GLOBAL SUB draw_roi()  

   if ROI_flag= 1  THEN

      SET_COLOR(rgb(0,255,0))    '设置绘制时画笔的颜色为绿色

      '绘制矩形

      DRAWRECT(table(25),table(26),table(27),table(28))

      '绘制十字标  

      DRAWLINE((table(25)+table(27))/2-5,(table(28)+table(26))/2,(table(25)+table(27))/2+5,(table(28)+table(26))/2)  

      DRAWLINE((table(25)+table(27))/2,(table(28)+table(26))/2-5,(table(25)+table(27))/2,(table(28)+table(26))/2+5) 

   endif

END SUB

4.效果演示。

对图像进行ROI创建操作演示部分

在这里插入图片描述

本次,正运动技术【机器视觉运动控制一体机小课堂】三分钟对图像进行ROI创建,就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正运动技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值