請參閱以下資訊,在LabVIEW和文本語言(text-based language)以程式化的方式設定相機的屬性。
使用LabVIEW
使用IMAQdx property node在LabVIEW中設置相機屬性。如何找到IMAQdx property node:
- Vision and Motion功能表>> NI-IMAQdx
- 放置一個一般的property node在block diagram上,右鍵點擊選擇您需要VAS軟體與相機溝通並擷取影像Select Class >> IMAQdx
有關如何配置相機的property node的詳細訊息,請參閱
NI-IMAQdx Concepts Help文件中的
Camera Attributes in LabVIEW (
NI-IMAQdx Concepts Help >>
Using NI-IMAQdx in LabVIEW >>
Acquisition Types >>
Camera Attributes in LabVIEW) 。該連結會下載一份幫助文件的zip檔到您的電腦上。
如果您使用的是GigE Vision相機,請參閱
NI-IMAQdx Concepts Help文件中的
Programmatically Controlling Camera Settings((
NI-IMAQdx Concepts Help >>
Acquiring from GigE Vision Cameras >>
Programmatically Controlling Camera Settings)。
下圖顯示了在IMAQ1394 (Legacy) property node與IMAQdx property node上如何設定相機亮度等級的範例。
使用文本語言
使用IMAQdxGetAttribute函式來獲取特定的屬性值或設定值。如果您不確定某個屬性的確切名稱或值的範圍,可以調用IMAQdxEnumerateAttributes2和IMAQdxEnumerateAttributeValues函式來查詢。
如果您先前不知道某屬性的數值的可用範圍,你可以完成以下步驟來得該資訊:
- 調用IMAQdxEnumerateAttributes2函式,並將attributeInformationArray參數設置為NULL。接著它會將attributeInformationArray所需要的記憶體大小存在count內。
- 依據count的大小來分配attributeInformationArray的記憶體。
- 利用分配好的array再次調用此函式。
您可以用相同的步驟來使用IMAQdx的IMAQdxEnumerateAttributeValues函式,差別是改為設定list參數並將值設定為NULL,並將Array所需要的記憶體大小存在size裡 。有關如何在文本語言上調用這些函式和其他IMAQdx函式的更多訊息,請參閱National Instruments\NI-IMAQdx\Docs下的NI-IMAQdx Function Reference Help。
Additional Information
NI-IMAQdx驅動程式允許使用字串輸入的方式來動態獲取相機屬性。這樣改變的原因是,原先使用IMAQ 1394驅動程式,所有的相機都需符合直接晶片接合(Direct Chip Attach Module,DCAM)的規範並具有一組特定的屬性。現在的IMAQdx驅動程式支持更多不同種類的相機,每種相機都具有不同的屬性可選。因此,與其繼續使用列舉(Enum)列表,不如讓客戶輸入字串來獲取特定的相機屬性。
使用LabVIEW時額外的Troubleshooting 步驟
如果您收到
error: -1074360305 attribute not supported by the camera或者您不確定要傳遞哪個屬性字串給Active Attribute property時,請使用IMAQdx Enumerate Attributes VI來提取有效屬性字串的確切訊息,像是該屬性是可讀或可寫的或者它可以接受什麼資料類型的輸入。
IMAQdx Enumerate Attributes VI 列出所選相機的所有可用屬性,並可以被客製化地編制順序。根據property node接收的reference來判定是什麼相機並且顯示相對應的屬性。
有關在LabVIEW上使用這些函式和其他IMAQdx的函式的更多資訊,請參閱
NI-IMAQdx VI Reference Help 或NI Example Finder中的Grab and Attribute Setup.vi 。該連結會下載一份幫助文件的zip檔到您的電腦上。