EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
给大家分享一下基于匠牛JN-mini5728套件的USB3.0工业相机采集案例。 一 工业相机概述, [% V/ O4 @, P5 ^1 ~! \. L V# ~9 O
; h2 Y0 E' j% u0 k7 F
工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成为有序的电信号。
% g' I8 A& @: F5 @! H: S. n6 ` B$ J& n0 L4 y1 M) F& a# F: ?. m/ \6 c
选择合适的相机也是机器视觉系统设计中的重要环节,相机不仅决定图像分辨率、图像质量,同时也与整个系统的运行模式直接相关。. b" C) y1 l4 D3 t6 z* @
6 m9 G7 f! F, v& t, R4 U工业相机应具有高精度、高清晰度、色彩还原度、低噪声等特点,而且通过计算机可以编程控制曝光时间、亮度、增益等参数,另外图像窗口无级缩放,带有外触发输入,带有闪光灯控制输出等功能。0 W! P0 R2 D) Z$ Y4 q$ m
# B5 X7 c. B' B工业相机由两大基本部件组成:图像感光芯片和数字化的数据接口。图像感光芯片由数十万至数百万个像素组成。像素把光线的强度转换为电压输出。这些像素的电压被以灰度值的形式输出,所有像素放在一起就形成了图像,发送给计算机。数据接口主要有USB 2.0、USB3.0、1394和千兆以太网。 一般工业相机都提供640x480像素的分辨率和30fps的帧速率。* \0 O% l7 o5 I
3 K) T: L$ t2 n% A, E& T# X, V二 实例详解
6 G, ^" [9 h) e5 O* H. [, S& V- f. I
编译工业相机实例程序,在Ubuntu PC 运行如下命令:. [- D4 c* `# ~( l
* q% t0 E! Q. d4 ^2 D) z1 z3 ?% r5 p
cd SDK/JiangNiu-demo/FlyCapOpenCV
# h* ?; h' V6 n' ?; Fmake
9 i" S( H7 L. z/ R& e8 p! r
: S1 G! P, J5 |/ ^" V4 k2.1 视频采集实例
: |. [) B6 C ~+ \
5 Y4 G# k0 {1 S' C' e& K实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp
3 w; e3 z# a5 C. n( y) {# K4 c
H; F6 L2 i8 e k0 ~$ A* R0 _" H% t, y& t
2.1.1 实例运行步骤" u- p/ j1 V4 L4 {3 T. y1 |
5 ?( f/ T+ `$ K) n) c, S
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。
9 x% A3 R5 r3 j& `8 B
N* Q+ w+ x) M- ?- H! U+ P2 P2 JN-miniVB运行如下命令,启动FlyCapVideo实例
* c1 R" G7 w7 L. h7 S" p* X7 s, b' @' [) P" z
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
! a! y: }: `- y, _) r1 Qroot@am57xx-evm:~#./FlyCapVideo F- i5 A& Z6 @, \
: Q# R4 D5 c8 C g8 O U
2.1.2 实例结果
0 @; V0 x( J7 e8 @+ s' s2 A
3 V* P8 t5 P6 M/ v8 Z5 vHDMI显示界面如下图2-1-1所示:& [3 r; Y5 P5 z7 d6 Y. I
8 z( M: N+ \9 t, W! o; N! i
图2-1-1
# T/ a( V$ a O6 g; J* b5 l9 n- r
% t' N& N' m$ @& j2.1.3 实例分析( X6 w4 q2 C: Q! E$ ]( H& l: o' \
& ^ t2 S: e3 s" SFlyCapVideo程序是从工业相机获取采集数据,转到OpenCV环境下处理图像,并获取该图像长、宽、图像数据等参数,将图像转换为OpenCV Mat类型。1 B! {$ z) l$ a
+ V" [2 {; d8 q; `& C' j; T2 I2 q详细过程如下图2-1-2所示:4 ^" o8 U9 ~* m; o v9 B
![]()
2 g q2 i" B! o) g! [+ q+ s图2-1-2
+ j. H( Y) @. x( v" \ k1 h, A2 V/ R& b
2.2 sobel边缘检测实例
4 c) z4 y- D$ V9 r: {5 D" ^. @* a8 Z: |; d
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp2 J# L! B0 E7 \, I
) g* }9 a0 M! t2.2.1 实例运行步骤& y1 K# L/ V/ T4 I8 h* o w
* r# a2 N! ?' J- u1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。5 j G3 I# O9 i5 y% w- b: O
, {! g$ {3 B3 l: E4 {$ P+ c% G2 JN-miniVB运行如下命令,启动FlyCapSobel实例+ H3 Y; \/ K/ r3 x! B$ Y" t
+ q: {* H" v# c9 l- b* x! H
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
5 c6 P" p* s, Y% `2 Q* e7 y; }root@am57xx-evm:~#./FlyCapSobel
4 g3 v& j0 r+ v* O: D# r6 x3 q$ N7 n# ?
2.2.2 实例结果% E. w. `% p5 B. z0 {$ ~
: ?# K- }& P+ P1 Q. e
HDMI显示界面如下图2-2-1所示:; _2 o2 U5 b5 k+ A' g# I
2 m- U* j, N$ A% ]7 }
图2-2-1
z+ a, [9 C* Z& R
2 N/ [3 Y4 J: P. I$ ]! i( X; A) m+ m2.2.3 实例分析9 d7 q2 f3 M; r9 o( ]+ C. d
6 ^" z& D0 z; v; F3 O) VFlyCapSobel程序是对工业相机采集视频进行Sobel算法处理,分别处理图像的X方向和Y方向,然后将两个方向的处理结果加权求和。& b! J, ~% }, s3 m; Y2 e0 `0 ~5 Q
q( E" ?$ z R- C6 q2.3 霍夫线检测实例1 x G' ?' L2 d2 ?7 l; I, r
" O; a' z% R8 S( m) \3 F
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp
z) g) X! K7 D) D! d) n7 D$ M8 b' G# ?1 s- N& \4 v
2.3.1 实例运行步骤4 F" q5 J1 q( T2 Z- G
. X5 v# m% `2 x) n1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。# V* i' L! d) j
& B+ p+ [6 a$ L* \. F2 JN-miniVB运行如下命令,启动FlyCapHoughlines实例+ L. T' ~! s, Z% @# l" ?
$ u/ n0 R; v3 V) O U* I6 groot@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
9 Q" d$ ? e ^) P1 droot@am57xx-evm:~#./FlyCapHoughlines9 l" ~! n8 Q' m/ x8 m# ~8 Y
" n* a) O# C2 @+ m2 G( i2.3.2 实例结果
; t" y7 Y K( E( w. m; R. I6 ^, z+ P3 `" l% O# E9 c
HDMI显示界面如下图2-3-1所示:$ K. M2 S4 r. a" U
![]()
/ Q6 D; ?2 x% N2 E1 K3 K, Z4 B图2-3-11 ~" A" p( v" B0 J7 M: x8 S* k! P
! Q) N' w1 [5 h& f" z: m 2.3.3 实例分析
+ {. Z5 K% E: S- H4 W8 m W. D1 W: W4 U& u
FlyCapHoughlines程序是从工业相机获取数据,转化为OpenCV下Mat类型对象。使用Canny算法检测图像边缘。将边缘图像进行霍夫线检测。 % F9 e. E0 |7 u+ b6 ?+ j! M: p# U4 d
|