石鑫华视觉论坛

 找回密码
 注册会员
查看: 5185|回复: 0

[原创] LabVIEW VISION相机RAW数据获取与读写文件

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

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

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2017-11-16 10:33:52 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

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

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

    x
    本帖最后由 石鑫华视觉 于 2017-11-16 10:35 编辑

    LabVIEW VISION相机RAW数据获取与读写文件
    我们知道,在单反相机中,相机可以输出RAW格式的原始图像数据文件。就是未经处理过的原始数据。而在LabVIEW &NI VISION环境中,我们也可以将工业相机中的图像,保存为JPEG、PNG、BMP、TIF等图像格式,但是在NI VISION中,并不能直接保存RAW格式的文件。要想将工业相机的RAW数据保存下来,并能再读出来显示,则需要通过LabVIEW编程,经过一些方法才可以实现。

    LabVIEW VISION RAW数据获取与读写文件

    LabVIEW VISION RAW数据获取与读写文件
    LabVIEWVISION RAW数据获取与读写文件
    LabVIEW VISION环境中,获取相机的RAW数据,关键一点是需要使用视觉采集软件中的IMAQdx Get Image Data函数:

    IMAQdx Get Image Data

    IMAQdx Get Image Data
    IMAQdxGet Image Data
    通过该函数,将获取到相机的Raw数据。然后再对该数据进行一定的处理,则可以将其显示为直观的图像。
    使用该函数获取Raw数据非常简单,只需要直接调用即可,在前面使用Open、Configure等函数,然后调用该函数即可获得数据。重点是获取数据后,如何将其显示为直观的图像。因为不同的工业相机、图像的位数、颜色都是不一样的,所以最后输出的Image Data Array是不同的。这也是为什么各大单反厂家的Raw格式也不兼容的原因。RAW并不是一种标准格式,而是原始的数据。

    采用二进制格式保存的RAW数据文件

    采用二进制格式保存的RAW数据文件
    采用二进制格式保存的RAW数据文件
    上面的图像RAW数据,为500万像素的彩色相机文件大小,数据为原始的RG拜尔模式的8位图像。

    读取RAW文件显示为图像

    读取RAW文件显示为图像
    读取RAW文件显示为图像

    RAW模式实时采集图像

    RAW模式实时采集图像
    RAW模式实时采集图像

    RAW模式与Grab模式同时采集图像

    RAW模式与Grab模式同时采集图像
    RAW模式与Grab模式同时采集图像
    Raw模式与Grab模式,在有些图像类型中的效果是一样的,但是在某些图像效果中,则是有差别的。在8位时,差别不大;在16位时,则有一定的差别。这要看具体的图像类型:

    U8灰度图像效果上差不多

    U8灰度图像效果上差不多
    U8灰度图像效果上差不多

    U16灰度图像上效果有差别

    U16灰度图像上效果有差别
    U16灰度图像上效果有差别

    I16灰度图像上效果有差别

    I16灰度图像上效果有差别
    I16灰度图像上效果有差别
    在U8的图像上,RAW模式与GRAB模式效果上差不多。但是在U16/I16的效果上,则有差别。U16/I16灰度图中,RAW模式的对比度更高,锐度更好。但是低燥更明显:

    16位模式图中RAW模式低燥明显

    16位模式图中RAW模式低燥明显
    16位模式图中RAW模式低燥明显

    16位模式图中RAW模式低燥明显

    16位模式图中RAW模式低燥明显
    16位模式图中RAW模式低燥明显
        这个问题,是不是在Grab函数中有优化,还是其它的如12位AD取值位数有关,没有深入研究。
    从上面的彩色图像效果中看到,工业相机支持拜尔模式,这时输出的RAW参数,则是以拜尔模式为准的,例子使用的是大恒图像MER-504-10GC网线相机,使用的是RG模式的拜耳模式。
    而如果相机不支持拜耳模式,而直接输出编码后的RGB值,则输出的RAW数据又是另外一种方式:

    笔记本内置摄像头的RAW模式与GRAB模式

    笔记本内置摄像头的RAW模式与GRAB模式
    笔记本内置摄像头的RAW模式与GRAB模式
    摄像头直接输出了编码后的RGB值作为RAW数据,而不是编码前的拜耳值。所以这种摄像头,获取RAW数据并没有什么太多的强化作用。这里需要注意一下,看上面的像素值与RAW值,在RAW值中,一个像素的RAW值包含了BGRA,即蓝色、绿色、红色、阿尔法透明通道等四个通道的值。而Grab与RAW模式的RGB值略有不同,因为是两次分别采集后的效果图,有差别是正常的。
    所以,在从上面的分析可以发现,8位灰度图像、编码后的RGB32位彩色图像,RAW模式与GRAB模式没有区别。使用RAW格式,没有什么调整空间。但是在16位图以及拜尔模式的彩色图像中,则RAW格式会有一定的调整空间。例如16位的灰度图,可以取0-7位的值作为新的8位灰度图,也可以取1-8位的灰度值作为原始数据,即LSB取值不同时,得到的效果也是不同的。如果忽略掉低位的值,则低噪影响会更小一些。而拜尔模式,则可以再调整图像的RGB增益,也就是白平衡值,来获得不一样的值,也可以调整拜耳算法,以获得更佳的图像效果。单反相机,应该是获得了其中的拜尔值,才会在后面提供了可调整的空间。
    编译EXE免费下载:LabVIEW2014SP1&VISION环境可运行
    LabVIEW保存读取RAW图像EXE.rar (577.1 KB, 下载次数: 131)
    代码收费50元下载:
    LabVIEW保存读取RAW图像.rar (205.73 KB, 下载次数: 54, 售价: 50 元)

    回复

    使用道具 举报

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

    本版积分规则

    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 13:48

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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