石鑫华视觉 手机微信QQ:13450001061 / 18038383457

图像编程

LabVIEW Vision获取相机所有属性及所有视频模式

文章来源:石鑫华视觉网时间:2022-09-05 16:38:14 点击:252

LabVIEW Vision获取相机所有属性及所有视频模式

在使用LabVIEW编写机器视觉与图像处理程序时,都需要知道相机的属性Attributes与视频模式(Video Mode)。如果使用的驱动是DLL,那么就只能看考相机厂家提供的DLL的说明手册。如果是使用的驱动是NI的IMAQdx,则可以使用IMAQdx中的两个函数来完成这些操作。

image.png

LabVIEW Vision获取相机所有属性及所有视频模式

IMAQdx Enumerate Attributes.vi枚举属性函数

image.png

IMAQdx Enumerate Attributes.vi枚举属性函数

枚举属性函数可以枚举相机支持的所有属性。枚举的数据包含了属性的类型、是否允许读写、属性名称等。

Session In为相机摄像头的引用输入。

Root为属性树的根。相机的属性一般会分成好几个根域(树形结构的多个根),如采集相机AcquisitionAttributes、相机属性CameraAttributes、相机信息CameraInformation、状态信息StatusInformation等。这时可以在ROOT中指定需读取哪个根的属性,如果为空,则读取所有支持的属性。

Visibility可见性:用于指定枚举相机属性的可见程度。其中有Sample简单、Intermediate中等、Advanced高级三种级别。使用简单,则枚举少量的属性。使用高级,则枚举所有属性。中间枚举的属性居于简单和高级之间。至于具体枚举哪些属性,没有参考意见。一般相机的重要属性如快门、增益等这些都是会被枚举的,而如位深、像素偏移量等,不是很影响图像的,则可能在简单可见性中不会被枚举。

Session Out相机引用输出。

Attribute Information Array属性信息数组:显示所有枚举出来的信息。

image.png

Attribute Information Array属性信息数组

属性信息数组中,包含了:

Attribute Type:属性类型,可能的属性类型包含了U32、I64、DBL、String、Enum、Bool及Command。

Readable:是否可读,返回真时为可读。

Writeable:是否可写,返回真时为可写。

Attribute Name:属性名称。属性名称指定了当前的属性在属性树中的完全限定名称(为了避免重复,这些属性名称是唯一的)。

image.png

得到数据后的Attribute Information Array属性信息数组

IMAQdx Enumerate Video Modes.vi枚举视频属性函数

image.png

IMAQdx Enumerate Video Modes.vi枚举视频属性函数

枚举视频属性函数,将枚举出相机支持的所有视频模式。

Session In:相机摄像头的引用输入。

Session Out:相机引用输出。

Video Modes:视频模式数组。

image.png

视频模式输出数组

视频模式输出数组是一个包含了两个簇元素的簇数组。其中一个是Video Mode用于指定当视频模式,是一个无符号数字。另一个是Video Mode Name视频模式名称。用于指定视频模式的具体名称,如640×480 Mono8这样的。一般来讲,我们会将视频模式的名称赋值给一个下拉列表以供用户选择。而用户选择的下拉列表的值,则又会赋值给Video Mode属性(是相机引用中的属性节点中的单独的视频模式属性,可以写)。这样就可以改变相机的视频模式了。

Current Mode:当前(视频)模式。即当前选择的视频模式的值。

下面来看一下使用上面的两个函数读取相机的属性与视频模式:

image.png

枚举相机属性与视频模式

这里的函数面板其实很简单,只需要打开相机,然后再使用上面的两个枚举函数即可。

image.png

枚举相机属性和枚举视频模式效果

注意,通过上面的读取所有相机属性函数获得的相机属性值,其中如果属性的类型是枚举型型时,并不能直接获得其中的枚举的所有值。这时如果是相机属性,则可以使用属性节点中的ActiveAttributes属性(写入相应的枚举属性名称)和Enum属性(读取所有的枚举字符串Enum Strings和枚举值Enum Values)。而如果是其它根中的枚举属性,则无法使用此方法,如果属性节点中有其对应的属性,则可以直接使用属性值获得对应的枚举,而如果无相应的枚举属性,则只能依赖MAX查看后,再手动定义了。

image.png

通过属性节点获得相机属性中的枚举字符串

image.png

获取相机属性枚举字符串效果

首页
84162741QQ
联系