石鑫华视觉 发表于 2017-11-16 10:33:52

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

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

LabVIEW VISION相机RAW数据获取与读写文件我们知道,在单反相机中,相机可以输出RAW格式的原始图像数据文件。就是未经处理过的原始数据。而在LabVIEW &NI VISION环境中,我们也可以将工业相机中的图像,保存为JPEG、PNG、BMP、TIF等图像格式,但是在NI VISION中,并不能直接保存RAW格式的文件。要想将工业相机的RAW数据保存下来,并能再读出来显示,则需要通过LabVIEW编程,经过一些方法才可以实现。LabVIEWVISION RAW数据获取与读写文件LabVIEW VISION环境中,获取相机的RAW数据,关键一点是需要使用视觉采集软件中的IMAQdx Get Image Data函数:IMAQdxGet Image Data通过该函数,将获取到相机的Raw数据。然后再对该数据进行一定的处理,则可以将其显示为直观的图像。使用该函数获取Raw数据非常简单,只需要直接调用即可,在前面使用Open、Configure等函数,然后调用该函数即可获得数据。重点是获取数据后,如何将其显示为直观的图像。因为不同的工业相机、图像的位数、颜色都是不一样的,所以最后输出的Image Data Array是不同的。这也是为什么各大单反厂家的Raw格式也不兼容的原因。RAW并不是一种标准格式,而是原始的数据。采用二进制格式保存的RAW数据文件上面的图像RAW数据,为500万像素的彩色相机文件大小,数据为原始的RG拜尔模式的8位图像。读取RAW文件显示为图像RAW模式实时采集图像RAW模式与Grab模式同时采集图像Raw模式与Grab模式,在有些图像类型中的效果是一样的,但是在某些图像效果中,则是有差别的。在8位时,差别不大;在16位时,则有一定的差别。这要看具体的图像类型:U8灰度图像效果上差不多U16灰度图像上效果有差别I16灰度图像上效果有差别在U8的图像上,RAW模式与GRAB模式效果上差不多。但是在U16/I16的效果上,则有差别。U16/I16灰度图中,RAW模式的对比度更高,锐度更好。但是低燥更明显:16位模式图中RAW模式低燥明显16位模式图中RAW模式低燥明显    这个问题,是不是在Grab函数中有优化,还是其它的如12位AD取值位数有关,没有深入研究。从上面的彩色图像效果中看到,工业相机支持拜尔模式,这时输出的RAW参数,则是以拜尔模式为准的,例子使用的是大恒图像MER-504-10GC网线相机,使用的是RG模式的拜耳模式。而如果相机不支持拜耳模式,而直接输出编码后的RGB值,则输出的RAW数据又是另外一种方式:笔记本内置摄像头的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环境可运行代码收费50元下载:
页: [1]
查看完整版本: LabVIEW VISION相机RAW数据获取与读写文件

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