视觉论坛VISIONBBS微信公众号:石鑫华视觉网

 找回密码
 注册会员
查看: 7042|回复: 90

[原创] NI Vision Assistant视觉助手教程 5.6 Set Coordinate System设定坐标系

  [复制链接]
  • TA的每日心情
    奋斗
    昨天 10:47
  • 签到天数: 1277 天

    [LV.10]100FPS

    发表于 2013-2-23 13:19:29 | 显示全部楼层 |阅读模式
    本帖最后由 石鑫华视觉 于 2014-4-6 17:46 编辑 7 [2 Y; R6 x, q( S1 a  ?; Q3 Z+ T; H

    + N+ S6 F2 D0 }0 ?! @0 l" gNI Vision Assistant视觉助手教程8 c& a+ I7 q0 D9 \* V% H
    + [3 N5 i7 Q$ e, O
    第五章 图像处理-Image图像

    , m  x) u; o: g. M% u, {
    ' j2 ^( k! ^5 R" {  Y# d6 k# {( {* [6 s2 [
    ) B4 H- I1 G1 j0 \. P2 Y) a* j
    第六节 Set Coordinate System设定坐标系

    + q7 d* J  F% B) x& K! n" R

    $ S7 p* l! b& i/ D1 [! M6 USet Coordinate System设定坐标系,函数说明信息创建一个坐标系基于参考特征的位置与方向,其函数在面板中的位置如下图所示:
    * i4 q! m6 I" r9 _: ?/ z4 U
    ; N9 y" W1 n8 q4 Z6 W3 d8 R
    图1 Set Coordinate System设定坐标系

    9 i( a' c5 V' B这个函数首先是需要一个参考特征,这样才能用于建立坐标系。如果在没有参考特征的情况下,直接点击函数,是会提示警告的:
    . I7 X- A- T5 v
    : u8 A& I5 ?: J. ?
    图2 Set Coordinate System设定坐标系必须基于参考特征

    8 `; U, @, V' X! N. }/ T从图2中的警告信息看到,坐标系基于其它步骤的点位置,例如找边缘、找模板、粒子分析等。如果在脚本中没有相关的点可以使用,则无法建立坐标系,即如果脚本区中有直方图、线剖面图、测量等函数也是不能用作参考特征来建立坐标系的。
    / P: x  P& R. F( ]4 b0 z因此在这里,我们先使用函数Edge Detector先找到一点边缘点(函数在后面章节中介绍,点击函数后,直接在图像边缘对比强的地方画一条线ROI,大部分的图像都能找到边缘点)。然后再点击设定坐标系函数,进行设定坐标系设置界面,如下图所示:/ M9 s5 j9 t4 H/ h6 G  E4 r3 W

    ; i! ]2 N1 u3 _. |' ]+ J+ {2 N图3 设定坐标系设置界面

    ! j1 }1 I. z- ?设定坐标系函数因为只相关于点的位置与方向,因此与图像的格式无关,彩色、灰度、二值图像等都可以使用设定坐标系,关键点是要有参考特征的点坐标。
    % M1 d" b; l+ D" f从图3中的配置界面中可以看到脚本区中找到了一个边缘点(即图像中大100元与壹佰圆中间的钱币符号上),然后在这个点上,还有一个红色的直角坐标系。这个坐标系就是点击函数后默认的建立的坐标系。下面来看一下设定坐标系的具体设置选项卡。
    6 c: z8 L, C$ k" |2 M, t
    $ M1 k, S4 D$ J
    图4 设定坐标系设置
    ) \; d- Y' n4 P3 u( K+ e7 R4 b) J
    设定坐标系的设置选项卡也比较简单,只有一个Settings设置选项卡。其中有一个类似步骤名的Coordinate System Name坐标系名称。这个坐标系名,即充当了步骤名,又充当了坐标系名。坐标系名是需要区别对待的。因为一个图像处理检测系统中,是可以设置多个不同的参考坐标系的。$ g) g8 U) ]' e4 ^8 U: c; z
    接下来是Mode坐标系的类型。默认的是Horizontal Motion水平运动,此外还有Vertical Motion垂直运动、Horizontal and Vertical水平和垂直运动、Horizontal、Vertical and Angular Motion水平、垂直带角度的运动。如下图所示:* b/ F8 |' D% o0 P' V

    ) t, U4 y. h1 Z5 I# _% O: Q* y" H图5 设定坐标系Mode类型
    9 J- j& r5 I/ w. ?
    从图5中看到,最后一个水平、垂直带角度运动的类型是灰色不可用的。这是因为前面的找边缘点的步骤只找到了点,而并没有方向,因此坐标系没有相应的角度方向参考,因此带角度的运动是不可用的。在本节后面再来看一个带角度的例子。
    1 f" ]/ j2 D2 D1 dOrigin原点用于指定需要设定的坐标系的原点(0FF0C0)。上面图中可以使用的是Edge Detector函数找到的1-Edge Detector 1-Edge 1边缘点。原点中的名称有两个“-”横线隔开三段,命名的规则是这样的:最前面的数字是可以使用的坐标系原点编号,中间一部分是某个可以找到点的函数名,后面是此函数找到的具体的点名称与编号。不同的函数可以找到的点是不一样的,而且相同的函数针对不同的图像使用不同的设置方法时,找到的点位置、数量也是不一样的。因此在建立坐标系时,需要对点有一个比较好的把握。理论上比较好的点是那种具有唯一性,且容易寻找,不容易找错的点。因此一旦这个原点找错了,那么坐标系的位置与方向就不正确了,那么如果后面有ROI需要跟随这个坐标系运动,那么ROI就不会在想的特征上面从而造成测量的不正确。
    ; m7 e: Y/ O$ C# h& \  K  q% |X-Axis Angle X轴角度用于指定设定坐标系的X轴角度。在上面的例子中,因为没有可以使用的角度特征,因此X轴角度选项里没有相应的选项,是灰色禁用的。如果有相应的角度选项,那么与Origin原点中方式一样,角度也是选择具体的特征测量得到的角度,而不是由用户指定的角度。) j  x, r. t& T, t" p  B+ \
    在这里我们选择水平和垂直运动模式,点击OK后确定,即完成了坐标系设定,如下图所示:
    4 B! Y  a$ q  C' N( g5 [9 {: b

    " s( `" [5 ^; |5 p& L$ p1 y# s图6 设定坐标系例子
    4 e* V4 X6 l/ A8 l: a' o0 J# E6 c
    下面在上面的例子基础上再加添加一个查找直边的函数,这个就可以测量得到直线的两个端点以及直线的角度。然后再利用这些点与角度再建立一个坐标系。
    8 ~& T) W4 @. E

    - e1 r* m$ |7 b  m& L) Y图7 Find Straight Edge Setup查找直边% W$ K8 }1 a" Z% N. J. A

    0 k7 T/ b7 k8 d& ]图8 设定坐标系-水平、垂直带角度运动8 N. f0 r: k7 f3 f0 `8 a0 I

    - J9 q0 b$ Y7 C! G0 v8 c图9 设定坐标系详情
    ( K) z6 W" l) w0 J
    图7中,使用查找直边函数找到一条直边。图8中,利用找到的直边的第一点为新坐标系的原点,利用找到的直边角度为X轴角度,设定水平、垂直带夹角运动的坐标系。图9是建立的坐标系的详情。从中可以看到,设定的坐标系有一个绿色的框包围了一个小红方框,这个是原点的位置,两条红色的带箭头的线分别是新设定的坐标系的X、Y轴。其中有一条线的箭头前面还有一个小红点,这条线是X轴,另外一条则为Y轴。在坐标系上还有一条绿色的字符表示当前的坐标系名称。$ s6 S; e+ ?( T7 E
    这里有一些细节是大家在后面的学习应用中需要注意的。图8中的找直边函数找到的直接的两个端点,第一点与第二点的位置与顺序是不确定的。根据ROI的方向、找直边的方向等不同,找到的直边的端点是不一样的,这个不一样,即体现在坐标的细小偏差上,也体现在第一点、第二点的排序上;例如图8中使用的ROI是水平向右的,耙子也是从左到右的,这样找到的第一点在上面,第二点在下面(从图8中的Y坐标点可以看到)。而如果将ROI转90度,设置成从上到下的,再把耙子设置从底到顶的,那么找到的两个点第一个点是在下面的,第二个点在上面。而且点的坐标也是会有变化的。如下图所示:, G; i5 z( n  {8 y' G, x- V

    7 `+ n; a3 c: W3 @图10 找直边ROI方向不一样时找到的直边点不一样4 C* f. l6 \9 ?( t5 U
    ' x" h5 Z+ o: w7 [4 C0 s" v1 f
    图11 当原点不同时,坐标系会随着原点变化

    ( {1 ^2 ?5 G7 u/ G$ Y! `图11中仍然使用原来的坐标系设置,即使用直查找直边的第一点作为原点,这建立的坐标系就在直边的下方了。. {; L5 C* r! d7 h% s$ i. s( B3 F
    设定坐标系函数,在实际测量中是非常有用的,特别是一些生产线上或大视野中的目标的定位测量上,如尺寸测量、条码识别、OCR、粒子分析等函数,当目标特征在视野的位置不确定时,这里就需要建立参考坐标系,使测量目标的ROI跟随参考点运动。而参考点的选择,通常是需要保证其在视野中一定存在且清晰容易识别,不会造成不确定性的特征,一般使用匹配等方法进行参考特征的提取,再建立参考坐标系,然后再做目标特征的测量。如下面所示的例子,基于图8所示的坐标系,再进行100元字符中的0字进行圆检测。这样当钞票在视野中位置发生变化时,也可以测量得到目标特征。当然这里选择的参考坐标系的原点特征并不很理想,因为其会变化,因此用户可以考虑使用如小数字的可变色的100字符,也可以使用钱币阴阳符号,或者是国徽之类的。这样就坐标系就相对稳定许多。
    3 q9 h% n2 n8 k) `  H; w- w2 ]
    9 g* P- v: p* U# W& p1 J
    图12 基于参考坐标系的目标特征测量
    9 V( ]/ |& y# w0 r
    本节实例下载:
    迅雷快盘:% A- A# L' z0 W2 l# @
    游客,如果您要查看本帖隐藏内容请回复

    ! o' s9 g# n( b- C6 @/ J1 z+ a  o
    百度云盘! I9 L4 F6 d/ ^$ _2 k4 X
    游客,如果您要查看本帖隐藏内容请回复
    - m# l5 R2 B" v& [9 v% F
    ; U3 p0 \( @4 n
    华为网盘:
    - p1 R& }( K7 K3 a* E
    游客,如果您要查看本帖隐藏内容请回复
    . b- D. w) m" j6 e' Y
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-28 10:46
  • 签到天数: 49 天

    [LV.5]50FPS

    发表于 2013-2-23 20:54:15 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-2-27 10:24:59 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-1 13:11
  • 签到天数: 3 天

    [LV.2]20FPS

    发表于 2013-3-18 21:24:14 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-2-20 08:03
  • 签到天数: 7 天

    [LV.3]30FPS

    发表于 2013-3-19 20:01:46 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-1 21:04:09 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-1 21:05:02 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-6 15:24:27 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-5-11 23:19:12 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-7-12 18:03:10 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    淘宝机器视觉商城

    Archiver|手机版|小黑屋| 机器视觉之家|东莞市华动智能科技有限公司 ( 粤ICP备17078359号-2 ) |网站地图

    GMT+8, 2018-8-18 10:29

    Powered by shixinhua.com X3.4

    © 2001-2018 VISIONBBS.COM 浏览量:

    快速回复 返回顶部 返回列表