本文檔適用於所有適用 directshow 接口訪問相機的程序,例如 MATLAB和 Labview 的 ImaqDx 接口、Halcon 的 Directshow 接口等。
MATLAB 中,可以通過如下界面設置相機參數:
Labview 的 NIMAX 中可以通過如下界面設置相機參數:
下面以 Labview 為例,介紹 Labview 中如何通過 ImaqDx 接口訪問邁德威視工業相機。
目前,我們提供三種方式,在 Labview 中訪問我們的相機:
1. GigeVision 接口。僅我司 GigE 相機支持該方式訪問。
2. 直接基於SDK 的DLL 文件調用的方式。該方式支持我們所有型號相機。例程在安裝目錄的 DEMO/LABVIEW/USEDLL 文件夾中。
3. 通過 ImaqDx 使用 Directshow 接口訪問相機。該方式支持我們所有型號相機。
Directshow 接口是 windows 系統上的音視頻標準接口,定義了一些預先約定好的協議,但是由於協議定義時間比較早,也沒有為工業攝像頭考慮參數接口,所以接口的參數配置上,沒有像使用我們的 SDK 那樣靈活。我們針對此問題,做了一些特殊處理,擴展了 Dircetshow 接口中 Camera Atrributes 的“White Balance”屬性,目前可以該方式進行如下操作:
1. 設置相機工作模式(連續採集、軟觸發、硬觸發)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 0,則相機進入連續工作模式;
設置為 1,則相機進入軟觸發工作模式;
設置為 2 則相機進入硬觸發工作模式。3
2. 執行一次軟觸發
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值 為 3,則相機進行一次軟觸發,如果要多次軟觸發,則重複設置“White Balance”屬性的 Value 值 為 3 即可,每設置一次,進行一次軟觸發。(該命令必須是先將相機設置為軟觸發模式後才有效)。
3. 設置硬件觸發信號種類(上邊沿、下邊沿、高電平、低電平)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 4,則選擇觸發信號的上邊沿跳變為觸發條件;
為 5,則選擇觸發信號的下邊沿跳變為觸發條件;
為 6,則選擇高電平為觸發條件;
為 7,則選擇低電平為觸發條件。
(該命令必須是先設置相機為外觸發工作模式時才有效)。
4. 設置閃光燈信號輸出模式
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 8,則相機輸出閃光燈的信號時序自動產生;
為 9,則相機輸出閃光燈信號的時序,由程序配置產生,比如可以指定輸出的脈衝寬度,極性、延時時間等。
5. 設置相機上 GPIO 的電平值(僅對 OutPut 類型 IO 有效)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值4
為 10,則設置相機上第 1 個 OutPut IO 的狀態為低電平。
為 11,則設置相機上第 1 個 OutPut IO 的狀態為高電平。
為 12,則設置相機上第 2 個 OutPut IO 的狀態為低電平。
為 13,則設置相機上第 2 個 OutPut IO 的狀態為高電平。
為 14,則設置相機上第 3 個 OutPut IO 的狀態為低電平。
為 15,則設置相機上第 3 個 OutPut IO 的狀態為高電平。
為 16,則設置相機上第 4 個 OutPut IO 的狀態為低電平。
為 17,則設置相機上第 4 個 OutPut IO 的狀態為高電平。
為 18,則設置相機上第 5 個 OutPut IO 的狀態為低電平。
為 19,則設置相機上第 5 個 OutPut IO 的狀態為高電平。
為 20,則設置相機上第 6 個 OutPut IO 的狀態為低電平。
為 21,則設置相機上第 6 個 OutPut IO 的狀態為高電平。
為 22,則設置相機上第 7 個 OutPut IO 的狀態為低電平。
為 23,則設置相機上第 7 個 OutPut IO 的狀態為高電平。
為 24,則設置相機上第 8 個 OutPut IO 的狀態為低電平。
為 25,則設置相機上第 8 個 OutPut IO 的狀態為高電平。
6. 設置相機上 GPIO 的電平值(僅對 OutPut 類型 IO 有效)
方法:在 Camera Atrributes 中,先設置“White Balance”屬性的 Value值為以下的數值之一,然後再進行一次 Camera Atrributes 的“White Balance”屬性讀取操作,返回的 value 值就表示電平狀態,0表示低電平,1 表示高電平,255 表示該相機不支持對應的 IO 讀取操作。如果需要反覆讀取某個 IO 的狀態,則需要先進行一次設置操作,5再進行讀取操作,如此反覆,否則 IO 狀態不會更新。
為 30,則讀取相機上第 1 個 InPut IO 的狀態。
為 31,則讀取相機上第 2 個 InPut IO 的狀態。
為 32,則讀取相機上第 3 個 InPut IO 的狀態。
為 33,則讀取相機上第 4 個 InPut IO 的狀態。
為 34,則讀取相機上第 5 個 InPut IO 的狀態。
為 35,則讀取相機上第 6 個 InPut IO 的狀態。
為 36,則讀取相機上第 7 個 InPut IO 的狀態。
為 37,則讀取相機上第 8 個 InPut IO 的狀態。
7. 設置圖像採樣速度(幀率)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 50,則設置相機採集速度為低速模式;
為 51,則設置相機採集速度為中速模式;
為 52,則設置相機採集速度為高速模式;
為 53,則設置相機採集速度為超高速模式;
8. 圖像水平和垂直翻轉操作
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 60,禁止圖像水平翻轉;
為 61,使能圖像水平翻轉;
為 62,禁止圖像垂直翻轉;6
為 63,使能圖像垂直翻轉;
9. 白平衡操作(僅對彩色相機有效)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值為 70,則進行一次白平衡操作,進行白平衡前,相機成像的圖像裡需要有大塊的標準白色物體。
10. 設置曝光模式(自動模式、手動模式之間切換)
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 80,設置相機為手動曝光模式;
為 81,設置相機為自動曝光模式;
11. 設置抗頻閃
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 82,禁止相機的抗頻閃功能;
為 83,使能相機的抗頻閃功能;
直流光源請禁止抗頻閃功能。
12. 設置觸發信號的去抖時間
方法:在 Camera Atrributes 中,設置“White Balance”屬性的Value 值滿足 0x01000000 <= Value <=0x01FFFFFF,實際設置的去
抖時間為 Value&0x00FFFFFF ,單位為微秒。
該設置需要將相機切換到外觸發模式,並且觸發條件為電平觸發方式才有效。7
13. 設置觸發信號延時時間
方法:在 Camera Atrributes 中,設置“White Balance”屬性的Value 值滿足 0x02000000 <= Value <=0x02FFFFFF,實際設置的延時時間為 Value&0x00FFFFFF ,單位為微秒。
該設置需要將相機切換到外觸發模式才有效。
14. 設置半自動模式下閃光燈信號的輸出脈衝寬度
方法:在 Camera Atrributes 中,設置“White Balance”屬性的Value 值滿足 0x03000000 <= Value <=0x03FFFFFF,實際設置的脈衝寬度為 Value&0x00FFFFFF ,單位為微秒。
該設置需要將相機切的閃光燈信號方式切換到半自動模式下才有效。
15. 相機參數保存
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 100,保存當前相機參數到 A 組參數中;
為 101,保存當前相機參數到 B 組參數中;
為 102,保存當前相機參數到 C 組參數中;
為 103,保存當前相機參數到 D 組參數中;
16. 相機參數加載
方法:在 Camera Atrributes 中,設置“White Balance”屬性的 Value值
為 110,加載 A 組參數;8
為 111,加載 B 組參數;
為 112,加載 C 組參數;
為 113,加載 D 組參數;
以上參數的設置是通過 Camera Atrributes 中,設置“White Balance”屬性的 Value 擴展而來。下面的參數是通過標準的接口。
17. 設置曝光時間
方法:在 Camera Atrributes 中,設置“Brightness”屬性的 Value值。範圍為 1 到 126531839 之間,單位為微秒,最大值以實際相機支持的最大曝光時間為準。9該設置,需要先設置相機的曝光模式為手動方式。參考“10.設置曝光模式”。
18. 設置曝光時間
方法:在 Camera Atrributes 中,設置“Brightness”屬性的 Value值。範圍為 1 到 126531839 之間,單位為微秒,最小值和最大值以實際相機支持的範圍為準,不同型號,範圍有所區別,請查閱產品手冊中
的相機參數表。該設置,需要先設置相機的曝光模式為手動方式。參考“10.設置曝光模式”。
19. 設置相機模擬增益
方法:在 Camera Atrributes 中,設置“Gain”屬性的 Value 值。範圍為 1 到 1000 之間,單位為最小模擬增益的步進值。實際調節範圍需以相機參數表為準,不同型號有所差異,請查閱產品手冊中的相機參
數表。該設置,需要先設置相機的曝光模式為手動方式。參考“10.設置曝光模式”。
20. 設置自動曝光的亮度目標
方法:在 Camera Atrributes 中,設置“Brightness”屬性的 Value值。範圍為 1 到 200 之間,單位為圖像灰度平均值。該設置,需要先設置相機的曝光模式為自動方式。參考“10.設置曝光模式”。
21. 設置圖像對比度10
方法:在 Camera Atrributes 中,設置“Contrast”屬性的 Value值。範圍為 1 到 200 之間。
22. 設置圖像伽馬值
方法:在 Camera Atrributes 中,設置“Gamma”屬性的 Value值。範圍為 1 到 1000 之間。分別對應伽馬的 0.01 到 10.0 的範圍。默認值是 1。
23. 設置圖像色彩飽和度
方法:在 Camera Atrributes 中,設置“Saturation”屬性的 Value值。範圍為 0 到 200 之間。0 則完全沒有圖像顏色,轉為黑白圖像。200則圖像色彩最濃。默認值是 100。
24. 設置圖像銳度
方法:在 Camera Atrributes 中,設置“Sharpness”屬性的 Value值。範圍為 0 到 100 之間。0 不進行銳化增強;100 最大級別銳化;默認值是 0,銳化可以提升圖像細節清晰度,但是也會增大噪聲。