EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
给大家分享一下基于匠牛JN-mini5728套件的USB3.0工业相机采集案例。 一 工业相机概述 I/ E D3 a9 u% _2 @
4 b5 b* j9 }. G+ ~( b8 J$ B工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成为有序的电信号。! u% o2 ]0 b$ v' Y$ T" G8 M' ]( u/ A
0 ]6 X8 J, K8 l; i3 c# i$ v) v% ?
选择合适的相机也是机器视觉系统设计中的重要环节,相机不仅决定图像分辨率、图像质量,同时也与整个系统的运行模式直接相关。( L) e2 y# ^, x* d! f' R
$ E6 [' _& C, j, q6 H; A! z+ j
工业相机应具有高精度、高清晰度、色彩还原度、低噪声等特点,而且通过计算机可以编程控制曝光时间、亮度、增益等参数,另外图像窗口无级缩放,带有外触发输入,带有闪光灯控制输出等功能。2 s5 a: Y- x& |' s
! w# c( w; q- ~3 P- k工业相机由两大基本部件组成:图像感光芯片和数字化的数据接口。图像感光芯片由数十万至数百万个像素组成。像素把光线的强度转换为电压输出。这些像素的电压被以灰度值的形式输出,所有像素放在一起就形成了图像,发送给计算机。数据接口主要有USB 2.0、USB3.0、1394和千兆以太网。 一般工业相机都提供640x480像素的分辨率和30fps的帧速率。3 e9 R: \" q$ U( J! e
& u4 d- A- J4 W& T, Z3 e
二 实例详解
! h' p# C9 W. _
8 F% K+ H# J+ c+ G% W& L* T* L. j: `编译工业相机实例程序,在Ubuntu PC 运行如下命令:+ ?" k3 c' r7 d9 ]# E
u2 M; k. r$ y0 B% {/ ? Fcd SDK/JiangNiu-demo/FlyCapOpenCV
( S5 R0 r/ T& s# _7 q* U# r+ ymake' k M" n( P6 J
( d) p* I5 V( {" q
2.1 视频采集实例
/ X( W9 x+ U0 N7 F
A! Z# Q* W1 l; w1 q实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp& R2 ?7 |8 q4 A) _
5 a* R6 o8 x; Y% t% W
$ g- d b; M% \# J3 r/ n
2.1.1 实例运行步骤
/ Y0 f9 l, I2 c0 X* P- l
5 E' Q0 O" ~7 T1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。$ A9 K7 |+ O1 h1 c: x- }2 X9 s9 s
+ ?- a v1 _0 G" U h
2 JN-miniVB运行如下命令,启动FlyCapVideo实例
& p, T: M9 d8 Y
3 Y% j! n% o6 b9 w: ^4 yroot@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
/ H* ]* ?7 o6 A( `root@am57xx-evm:~#./FlyCapVideo
. V) ^2 s1 b6 z. o7 c# E( C) Z! d1 V# T2 H% w; t! H1 n
2.1.2 实例结果0 x) l4 x7 \! }4 Y4 v
# t. `% }( c+ MHDMI显示界面如下图2-1-1所示:
9 A% i2 m Y- R% {8 l n1 q+ z1 a![]()
( z! X( {# C5 Y0 _) f4 e 图2-1-1
0 ^- I, d8 C( q1 ~# |' ~* ^. F3 C
6 k4 S1 Q8 X9 {2.1.3 实例分析, \% h8 q' J7 g2 M- E
4 ~2 n# z3 F3 i$ ]" O* |0 e: H+ L
FlyCapVideo程序是从工业相机获取采集数据,转到OpenCV环境下处理图像,并获取该图像长、宽、图像数据等参数,将图像转换为OpenCV Mat类型。; R) f& v9 ]9 z0 b
1 x& T7 E! p" I W
详细过程如下图2-1-2所示:
( x5 _0 t- A8 n# x, C 8 ]. l! P1 } t1 F2 g" ^$ B; p
图2-1-2. K. ^% K% N3 O Q
4 I! L1 n6 G+ q8 I2.2 sobel边缘检测实例0 P& H7 Y# R! I3 f
) d. g/ E9 @$ h" R$ P4 R9 Y实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp, l+ A8 I O/ H4 P! A. k. b L
4 u6 h" ]0 m1 o O) c; n# w2.2.1 实例运行步骤" N5 [* g: V- |2 ]) p
& W" A7 U4 _& ^5 }. z
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。, U! ]& E4 Y5 e5 u
: @- C# g- @3 q \) m" R
2 JN-miniVB运行如下命令,启动FlyCapSobel实例
) D+ g5 ]5 s+ H4 X6 N7 p$ q6 L7 E6 {: J* n$ U! a- x# G
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/. ^. ^8 O$ l r$ Z5 ]/ `9 x
root@am57xx-evm:~#./FlyCapSobel
& f4 p( x) i( M* c; f
9 i2 J% O) S% l) D( I5 w# T* B2.2.2 实例结果' c& F' Q3 u1 I! t) P" V7 ]
8 R" V! M" I- BHDMI显示界面如下图2-2-1所示:( t2 X4 C+ F5 y K/ d7 n# P+ f
0 O; M8 j+ S, c4 g
图2-2-14 k' J( t% U ~! [) m9 L% m2 M5 V
- e8 P- J$ j& e! S* H* M9 D
2.2.3 实例分析
$ w$ L. n( s6 z* a8 t) V* K/ X$ L
- _% k/ Z) Y/ nFlyCapSobel程序是对工业相机采集视频进行Sobel算法处理,分别处理图像的X方向和Y方向,然后将两个方向的处理结果加权求和。" J0 z4 U; v. h1 a6 C) t' k3 G% n
( ^8 r' F8 A6 Z2.3 霍夫线检测实例9 Q$ _* D0 u W9 \8 e% Y
' W: ~: R' X* Y# I3 Z8 w5 b& P& E实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp
: {8 K2 \- P8 l7 }
$ T& c, w* F9 N5 z2.3.1 实例运行步骤5 m0 p9 F& V; F: h8 p
- q0 ]$ O0 i& W" X, p; `; l+ l! V
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。( B4 ^9 r9 H0 \8 k/ {/ N% U
* `$ D! _ j$ q4 l2 l) ]1 Q2 JN-miniVB运行如下命令,启动FlyCapHoughlines实例( D8 [( A, c k* O+ P
0 S- N! i* L* P o m/ j8 A5 y
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/* e+ r0 U/ i" r/ W2 Y! i* v6 y
root@am57xx-evm:~#./FlyCapHoughlines
- h/ c$ V. S' U1 X) q' `" l
: p1 p# f. r% f( w2.3.2 实例结果
5 R; d: ^$ b5 n/ d
0 Q5 ^2 A- \& O) w0 W: @ WHDMI显示界面如下图2-3-1所示:6 j6 N3 s. p/ ^
/ M7 f, r+ q f7 ]. B
图2-3-10 Q2 [2 z( h) J! |. J9 l! _+ d
; `8 V' L' s9 u% {# P5 w4 v' r7 K2 _
2.3.3 实例分析) \. E8 M" n1 M+ A# {; t2 ]
# R, b1 B/ p6 K
FlyCapHoughlines程序是从工业相机获取数据,转化为OpenCV下Mat类型对象。使用Canny算法检测图像边缘。将边缘图像进行霍夫线检测。 & `, ~ s }+ R( T" D
|