石鑫华视觉论坛

 找回密码
 注册会员
查看: 3414|回复: 1

[转载] 陈树学:LV Nugget之三段范围比较与条件结构

[复制链接]
  • TA的每日心情

    12 小时前
  • 签到天数: 3384 天

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2014-11-2 18:35:34 | 显示全部楼层 |阅读模式 来自:广东省东莞市 移动

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    三段范围的判定是最为常见的,比如给定一个X值,判定X<10.5, 10.5<=x<=30.6,x>30.6.。对于两段或者三段范围的问题,使用条件结构是很适合的。
    判断2段范围需要一个条件结构,判断三段范围需要两个条件结构,三段范围条件结构如下图所示:

    三段范围的判定

    三段范围的判定

    从上图可以看出,2层条件结构已经非常复杂了,所以实际应用中,很少看到三层以上的嵌套条件结构。对于需要多层嵌套条件结构,需要尽量转换到一个条件结构的多个分支中。
    下面我将讨论对于三段范围,替代上述2层嵌套CASE结构的方法:
    1、利用“选择”函数
    选择函数类似于C语言中的三元操作符,替代2层条件的程序框图如下图所示:

    利用“选择”函数

    利用“选择”函数

    使用选择结构与IF ELSE结构非常类似,结构非常清晰,但是由于三元操作符条件所限,无法处理更多的信息,从功能上看,不如条件结构。
    2、利用布尔数组替代嵌套CASE

    利用布尔数组替代嵌套CASE

    利用布尔数组替代嵌套CASE
    三、双精度数转换为整数后,利用CASE结构
    我们知道,LABVIEW中的case结构是非常强大的,其条件选择可以接受多种数据类型,比如布尔、整数、枚举、下拉列表、单选按钮、TAB、字符串等等,但是无法直接使用双精度数。
    下面就是我今天要谈及的Nugget,记得我过去写过比较双精度数是否相等的问题,使用的方法就是放大双精度数,然后圆整,下面的例子对双精度数放大100倍后,然后利用CASE结构。

    双精度数转换为整数后,利用CASE结构

    双精度数转换为整数后,利用CASE结构
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-5-10 13:45
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]300FPS

    发表于 2015-4-24 13:15:41 | 显示全部楼层 来自:安徽省合肥市巢湖市 电信
    东莞华视自动化科技有限公司[url]http://visionbbs.com[/url],专注机器视觉方案与高性价比机器视觉软硬件
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-22 20:23

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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