石鑫华视觉论坛

 找回密码
 注册会员
查看: 5364|回复: 4

[原创] NI Vision中的16-bit位图

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

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

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2013-6-15 11:55:44 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

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

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

    x
    问题:我需要用NI-Vision来分析一幅16-bit位图。数据是用无符号型数值存储的,但是Image 类型是用符号型数值存储的。


    解答:许多应用场合和相机驱动使用无符号数值来创建16-bit位图。这意味着颜色最黑的像素的值为0而最亮的像素点的值为b1111111111111111 (xFFFF or d65535)。然而,LabVIEW中NI Vision 和NI-IMAQ使用的Image数据类型是用一个符号数读取数据值的。如图1所示,当一个数值数组转换它的数据类型时会导致错译。

    U16vsI16.jpg
    Figure 1: Unsigned and Signed Interpretation of Data

    这种译码差异可以通过将原始数值减去一个x8000 (d32768) 的常量来解决。然而,无论是U16 还是I16数值范围都不允许这样的减法。(如果是将原始数值减去xFFFF ,将会发生下溢。)有两种标准方法来解决这个问题:

    简单方法:
    图 2 表示的是一个可以覆盖操作中所有可能数值的32-bit符号整形数,它可以用作一个中间状态。U16型的图像数据被转换为I32型,即而减去相应常量,得到的新数据(在一个I16型的允许范围内)然后被转换为I16型。

    Cast_and_Subtract1.jpg
    图 2:使用I32作为一个中间状态

    图 3中的LabVIEW代码实现了这个调整并将得到的数组转换为图像数据类型。(注意:IMAQ ImagetoArray VI 是视觉开发模块的一部分并且它没有被包含在NI-IMAQ 驱动中)。这个方法对于学习编程环境和范例程序非常理想。

    Conversion_using_LV.jpg
    图 3: 将一幅U16图像转换为LabVIEW中的图像数据类型


    架构方法:
    图 4 中的LabVIEW代码利用了电脑架构的优势并且使用一个常用的XOR门和一个强制类型转换来实现和图2的代码相同的功能。在实际的应用环境中,这段代码比图2的代码更快更高效。

    XOR_Solution.jpg
    图 4: 使用强制类型转换和XOR 把U16转换为I16型


    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2013-6-15 16:44:23 | 显示全部楼层 来自:广西桂林市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-2-27 08:03
  • 签到天数: 148 天

    连续签到: 1 天

    [LV.7]700FPS

    发表于 2013-8-15 10:34:48 | 显示全部楼层 来自:浙江省温州市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-4-28 09:16
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2013-12-24 09:51:45 | 显示全部楼层 来自:上海市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-12-30 08:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2013-12-29 16:29:46 | 显示全部楼层 来自:江苏省无锡市 电信
    看帖看完了至少要顶一下,向楼主无私奉献致敬!感谢石鑫华视觉http://visionbbs.com的培训资料!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    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 18:44

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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