1. 程式人生 > >匠牛社群 AM5728開發板 USB3.0工業相機開發

匠牛社群 AM5728開發板 USB3.0工業相機開發

一 工業相機概述

工業相機是機器視覺系統中的一個關鍵元件,其最本質的功能就是將光訊號轉變成為有序的電訊號。

選擇合適的相機也是機器視覺系統設計中的重要環節,相機不僅決定影象解析度、影象質量,同時也與整個系統的執行模式直接相關。

工業相機應具有高精度、高清晰度、色彩還原度、低噪聲等特點,而且通過計算機可以程式設計控制曝光時間、亮度、增益等引數,另外影象視窗無級縮放,帶有外觸發輸入,帶有閃光燈控制輸出等功能。

工業相機由兩大基本部件組成:影象感光晶片和數字化的資料介面。影象感光晶片由數十萬至數百萬個畫素組成。畫素把光線的強度轉換為電壓輸出。這些畫素的電壓被以灰度值的形式輸出,所有畫素放在一起就形成了影象,傳送給計算機。資料介面主要有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