石鑫华视觉论坛

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

[原创] NI VISION实用手册-3.2.1 IMAQ ReadFile读文件

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

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

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2017-5-2 17:09:52 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

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

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

    x
    NI VISION实用手册-3.2.1 IMAQ ReadFile读文件
    读文件函数,作用就是读取图像文件。图像文件可以是标准格式的BMP、TIFF、JEGP、JPEG2000、PNG和AIPD,也可以是用户已知的非标准格式的图像文件。无论哪种格式,读取的像素被自动转换成Image图像类型。Image图像类型,是NI视觉处理的基础,即大部分的函数,都是基于Image图像类型来处理图像的。

    IMAQ Read Files读文件函数在函数选板中的位置

    IMAQ Read Files读文件函数在函数选板中的位置
    IMAQRead Files读文件函数在函数选板中的位置

    IMAQ Read Files读文件函数的功能说明、支持的图像类型及接线端

    IMAQ Read Files读文件函数的功能说明、支持的图像类型及接线端
    IMAQ Read Files读文件函数的功能说明、支持的图像类型及接线端
    File Path文件路径:是图像文件的完整路径,包括需要读取文件的驱动器、目录和文件名称、文件后缀。
    Image图像:是应用的图像文件数据的引用。在读函数中,Image一般连接到IMAQ Create函数创建的图像缓存引用中。
    Load Color Palette? (No) 加载调色板?(否):决定是否加载文件中存在的颜色表,如果颜色表存在的话。如果加载,颜色表被读取并返回到输出端Color Palette。默认为假,不加载。
    File Options文件选项:是一个用户可选值的簇,用于读取非标准文件格式的图像。用户必须知道非标准文件的结构。此选项非常少使用,一般来讲都是使用标准的文件格式,所以只需要了解一下即可。该簇包含以下7元素:

    File Options文件选项簇元素

    File Options文件选项簇元素
    FileOptions文件选项簇元素

    File Options文件选项簇元素常量

    File Options文件选项簇元素常量
    FileOptions文件选项簇元素常量
    Read Raw File读取原始文件:表明需要读取的文件是否具有非标准的图像文件格式。如果是,簇中剩余的选项描述如何读取数据。注意:如果读取非标准文件格式,必须设置图像大小以匹配文件内容,在使用IMAQ Read File函数之前。另外需要注意,如果指定了FileData Type为无符号16位整形,而Image是16位有符号整形,那么所有大于32767的值将被截取为32767,即Image的数据类型优先级高于File Data Type。数据类型虽然为I32,但是实际可使用的,只有下面的两个枚举类型值:
      
    Don't Read Raw File (0)
      
    不读取原始数据
      
    Specifies  that the file to be read has a standard file format.
      
    需要读取的文件具有标准图像文件格式。
    Read Raw File (1)
      
    读取原始数据
    Specifies  that the file to be read has a nonstandard file format.
      
    需要读取的文件具有非标准图像文件格式。
    File DataType文件数据类型:表明图像文件是如何编码的。

    File Data Type文件数据类型

    File Data Type文件数据类型
    File Data Type文件数据类型
    该选项虽然为U32数据格式,但是可供使用的值,仅上图所示的图像类型。也就意味着,超出这些文件数据类型的非标准格式文件无法读取。
    Offset toData数据偏移量:指定文件头大小,以字节为单位。读取时不考虑文件的头部分。偏移量后的像素值才会被读取。数据偏移量默认值为0。
    Use Min Max使用最小最大值:确定用户是否使用预定的最小值和最大值。确定最小值和最大值的技术取决于以下输入值:
      
    Don't  use min max (0)
      
    不使用最小最大值
      
    Minimum and maximum are dependent on the  type of image. For an 8-bit image, min = 0 and max = 255.
      
    最小值和最大值取决于图像类型。如8位图像,最小值为0,最大值为255
    Use  file values (1)
      
    使用文件值
    Pixel values from the file are scanned one  time to determine the minimum and maximum, and a linear interpolation is  performed before loading the image.
      
    文件中的像素值被扫描一次以确定最小值和最大值,并且在加载图像之前执行线性插值。
    Use  optional values (2)
      
    使用选项值
    Uses the optional values Optional Min  Value and Optional Max Value.
      
    使用簇选项中的Optional Min Value可选最小值Optional Max Value可选最大值来确定最小值和最大值。
        Optional Min Value可选最小值:指定像素最小值,如果Use Min Max选项设置为Use optional values 在这种情况下,比指定最小值更小的值将被更改,以匹配所选择的最小值。默认值为0
    Optional MaxValue可选最大值:指定像素最大值,如果Use Min Max选项设置为Use optional values。在这种情况下,比指定最大值更大的值将被更改,以匹配所选择的最大值。默认值为255。
    Byte Order字节顺序:确定字节的权重需要被交换(英特尔或摩托罗拉)。默认为假False,指定大端字节序(摩托罗拉,高位在前、低位在后)。为真Ture时,指定小端字节序(英特尔,低位在前,高位在后)。该输入仅在像素值超过8位(一字节时)编码时才有效。例如,一个16位的像素值11110000 00001111,按照我们常规的认识(摩托罗拉的大端字节序),11110000为高位,00001111为低位。而如果是英特尔的小端字节序来表示该像素值,则需要表示为00001111 11110000。而00001111 11110000如果仍然使用大端字节序来读取,则其值与11110000 00001111的值差别是非常大的。
    Color Palette out调色板输出:包含了读取文件的RGB颜色表(如果文件有一个颜色表)。该输出值仅当用于将Load Color Palette? (No)加载调色板设置为真时才会输出。 该输出量为一个包含红Red、绿Green、蓝Blue3个元素的簇数组。一般来讲,会包含256个数组元素,即每个灰度值会有一个相应的颜色调色板,这个在使用二值化显示图像、彩虹模式、温度模式等伪彩色显示时会用到。
    Image Out图像输出:目标图像的引用。是Image的引用复制。该引用输出,可以为后面的处理函数提供有效的图像数据。即Image输入端,仅仅只是缓存空间的引用,但是经ReadFile读取图像文件后,Image Out所表示的缓存空间,将真正拥有图像数据。
    File Type out文件类型输出:显示读取的文件类型,即文件后缀。这个字符串返回文件格式的标识符,可以是BMPTIFFJPEGPNGAIPD(内部文件格式)。如果文件格式未知,则返回xxx
    File Data Type out文件数据类型输出:对于标准文件类型,表示在文件头部定义的像素大小。在读取标准文件时File Options并不需要连线。对于其它图像类型,返回值由File Options/File Data Type传递。
    该函数,在NI范例查找器中,有一个现成的例子。LabVIEW安装了VDM后,在NI范例查找器中,会在工具包和模块中添加视觉的范例,然后在文件中,有读取文件的示例,如下图所示:

    NI范例查找器-工具包和模块-视觉-文件

    NI范例查找器-工具包和模块-视觉-文件
    NI范例查找器-工具包和模块-视觉-文件
    双击Read Image File.vi打开读取文件例子VI,其前面板与后面板如下图所示:

    读取文件例子前面板

    读取文件例子前面板
    读取文件例子前面板
    从中可以看到前面板其实非常简单,仅仅只是一个Image Control显示控件。这个应该都非常明白怎么弄的吧?如果不明白,请查看前面章节的内容。
    硬插广告段落:华视SHI-132-30GM/C,130万CCD千兆网相机,大恒图像MER-132-30GM/C同款,支持NI IMAQdx直接驱动,可以在LabVIEW、NI MAX、NI VBAI、NI视觉助手等软件中直接采集图像,免费赠送NI LabVIEW演示实例。从此链接购买仅需要1688元,标配相机+普通网线+电源触发线+普通电源。加500元,配200万像素级别CCTV镜头(SHI-C1214FD、SHI-C1614FD、SHI-C2514FD、SHI-C3514FD、SHI-C5014FD可选),https://item.taobao.com/item.htm?id=542481779012,如果价格不同,请联系站长或旺旺改价。您的支持,我的动力。

    读取文件例子程序框图

    读取文件例子程序框图
    读取文件例子程序框图
    程序框图其实非常简单,一个平铺式的顺序结构。顺序结构在LV编程中,一般是不太主张的,但是在这里初学入门来讲,是非常实在的,可以明确的看到其工作的流程。顺序的第一帧中,先是打开图像,调用的是IMAQ Load Image Dialog加载图像对话框函数,这个函数与LV中的其它调用文件函数对话框类似。但是其包含了一个图像的预览框,可以对需要加载的图像进行预览及添加图像的基本信息。如图所示:

    加载图片对话框

    加载图片对话框
    加载图片对话框
    加载完图像后,会传递图像的路径出来。接下来调用的函数是IMAQ GetFileInfo函数,获取图像类型。Vision中的函数,可以处理的图像类型不是完全一样的,有些函数只能处理彩色图像,有些函数只能接受8位的灰度图,有些呢,只能接受二值图像。因此在这里他首先获取图像的类型,这个类型可以为接下来的创建图像缓存时指定图像缓存的类型。不同的类型,使用的缓存不一样。获取了类型后,就是调用IMAQ Create函数,创建图像缓存引用。再下来,就是读取图像函数IMAQ Read File,通过其读取加载图像输出的路径中的图像文件到创建缓存创建的缓存中。读取后,输出到Image(Display)中显示给用户。
    顺序结构的第二帧,是IMAQDispose释放缓存及简易错误处理器。注意在这下面的解释说明Free Memory.  The imagecontrol is in Snapshot mode, so the image displayed is not removed.其意思为释放内存。这图像控件处于快照模式(参考前面的Snapshot属性章节),因此显示的图像是不会被移除的。这个模式不能用于数组中的控件。LV RT实时系统也不支持这个属性。所以,如果选择了快照模式,即使释放了图像缓存,也是不会清除图像显示控件中的图像的,因为他是复制了图像缓存中一个图像复本。而如果没有使用快照模式,那么释放图像缓存后,在图像显示控件中,将不会存在图像。

    读取图像文件后的效果

    读取图像文件后的效果
    读取图像文件后的效果
    这里的Image显示控件,没有显示ROI。也没有显示图像信息。可以参考前面的章节来显示这些信息。

    其它参数显示和设置

    其它参数显示和设置
    其它参数显示和设置
    上图效果是将Read Image File函数的所有参数都设置或显示。可以看到读取的图像为PNG类型,文件数据类型为3,即为8位(可以参看左边的File Options中的File Data Type)。而调色板,则为默认的000、111、222这样的,如果将加载调色板设置为假,则调色板输出将为空值。
    LabVIEW2014SP1示例程序下载:
    Read Image File读图像文件.vi (30.21 KB, 下载次数: 100)

    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-1-10 11:41
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2017-7-28 14:01:32 | 显示全部楼层 来自:广东省深圳市龙岗区 电信
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    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 14:31

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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