匠牛社群 AM5728開發板 USB3.0工業相機開發
阿新 • • 發佈:2019-02-20
一 工業相機概述
工業相機是機器視覺系統中的一個關鍵元件,其最本質的功能就是將光訊號轉變成為有序的電訊號。
選擇合適的相機也是機器視覺系統設計中的重要環節,相機不僅決定影象解析度、影象質量,同時也與整個系統的執行模式直接相關。
工業相機應具有高精度、高清晰度、色彩還原度、低噪聲等特點,而且通過計算機可以程式設計控制曝光時間、亮度、增益等引數,另外影象視窗無級縮放,帶有外觸發輸入,帶有閃光燈控制輸出等功能。
工業相機由兩大基本部件組成:影象感光晶片和數字化的資料介面。影象感光晶片由數十萬至數百萬個畫素組成。畫素把光線的強度轉換為電壓輸出。這些畫素的電壓被以灰度值的形式輸出,所有畫素放在一起就形成了影象,傳送給計算機。資料介面主要有USB 2.0、USB3.0、1394和千兆乙太網。 一般工業相機都提供640x480畫素的解析度和30fps的幀速率。
二 例項詳解
編譯工業相機例項程式,在Ubuntu PC 執行如下命令:
cd SDK/JiangNiu-demo/FlyCapOpenCV
make
2.1 視訊採集例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp
2.1.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapVideo例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapVideo
2.1.2 例項結果
HDMI顯示介面如下圖2-1-1所示:
圖2-1-1
2.1.3 例項分析
FlyCapVideo程式是從工業相機獲取採集資料,轉到OpenCV環境下處理影象,並獲取該影象長、寬、影象資料等引數,將影象轉換為OpenCV Mat型別。
詳細過程如下圖2-1-2所示:
圖2-1-2
2.2 sobel邊緣檢測例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp
2.2.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapSobel例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapSobel
2.2.2 例項結果
HDMI顯示介面如下圖2-2-1所示:
圖2-2-1
2.2.3 例項分析
FlyCapSobel程式是對工業相機採集視訊進行Sobel演算法處理,分別處理影象的X方向和Y方向,然後將兩個方向的處理結果加權求和。
2.3 霍夫線檢測例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp
2.3.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapHoughlines例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapHoughlines
2.3.2 例項結果
HDMI顯示介面如下圖2-3-1所示:
圖2-3-1
工業相機是機器視覺系統中的一個關鍵元件,其最本質的功能就是將光訊號轉變成為有序的電訊號。
選擇合適的相機也是機器視覺系統設計中的重要環節,相機不僅決定影象解析度、影象質量,同時也與整個系統的執行模式直接相關。
工業相機應具有高精度、高清晰度、色彩還原度、低噪聲等特點,而且通過計算機可以程式設計控制曝光時間、亮度、增益等引數,另外影象視窗無級縮放,帶有外觸發輸入,帶有閃光燈控制輸出等功能。
工業相機由兩大基本部件組成:影象感光晶片和數字化的資料介面。影象感光晶片由數十萬至數百萬個畫素組成。畫素把光線的強度轉換為電壓輸出。這些畫素的電壓被以灰度值的形式輸出,所有畫素放在一起就形成了影象,傳送給計算機。資料介面主要有USB 2.0、USB3.0、1394和千兆乙太網。 一般工業相機都提供640x480畫素的解析度和30fps的幀速率。
二 例項詳解
編譯工業相機例項程式,在Ubuntu PC 執行如下命令:
cd SDK/JiangNiu-demo/FlyCapOpenCV
make
2.1 視訊採集例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp
2.1.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapVideo例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapVideo
2.1.2 例項結果
HDMI顯示介面如下圖2-1-1所示:
圖2-1-1
2.1.3 例項分析
FlyCapVideo程式是從工業相機獲取採集資料,轉到OpenCV環境下處理影象,並獲取該影象長、寬、影象資料等引數,將影象轉換為OpenCV Mat型別。
詳細過程如下圖2-1-2所示:
圖2-1-2
2.2 sobel邊緣檢測例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp
2.2.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapSobel例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapSobel
2.2.2 例項結果
HDMI顯示介面如下圖2-2-1所示:
圖2-2-1
2.2.3 例項分析
FlyCapSobel程式是對工業相機採集視訊進行Sobel演算法處理,分別處理影象的X方向和Y方向,然後將兩個方向的處理結果加權求和。
2.3 霍夫線檢測例項
例項原始碼位於SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp
2.3.1 例項執行步驟
1參考板卡開機登入章節,啟動JN-miniVB,然後將USB工業相機連線到JN-miniVB USB3.0介面。
2 JN-miniVB執行如下命令,啟動FlyCapHoughlines例項
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapHoughlines
2.3.2 例項結果
HDMI顯示介面如下圖2-3-1所示:
圖2-3-1