给大家分享一下基于匠牛JN-mini5728套件的USB3.0工业相机采集案例。
一 工业相机概述; R0 b! m4 h5 d0 u* K4 N6 c
4 t" C" S" v: V% y6 x- ?& |
工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成为有序的电信号。 O! o4 q# J' k3 F' A6 z! G3 u
0 G4 W4 \% u9 Y7 Z* i5 J7 e1 F: A$ W
选择合适的相机也是机器视觉系统设计中的重要环节,相机不仅决定图像分辨率、图像质量,同时也与整个系统的运行模式直接相关。! X9 S+ J3 h6 j, n2 ~) N% @* C0 r1 x
3 j3 o o8 T V2 G1 \' k
工业相机应具有高精度、高清晰度、色彩还原度、低噪声等特点,而且通过计算机可以编程控制曝光时间、亮度、增益等参数,另外图像窗口无级缩放,带有外触发输入,带有闪光灯控制输出等功能。( X0 ?& s9 M! w N4 q' V
4 u- [' M9 u( _
工业相机由两大基本部件组成:图像感光芯片和数字化的数据接口。图像感光芯片由数十万至数百万个像素组成。像素把光线的强度转换为电压输出。这些像素的电压被以灰度值的形式输出,所有像素放在一起就形成了图像,发送给计算机。数据接口主要有USB 2.0、USB3.0、1394和千兆以太网。 一般工业相机都提供640x480像素的分辨率和30fps的帧速率。- a: I. x$ H) { P' i( q! Z
二 实例详解' p: c) ?# z. h" P S
编译工业相机实例程序,在Ubuntu PC 运行如下命令:8 S A8 |" l. { B
cd SDK/JiangNiu-demo/FlyCapOpenCV
make" N' r8 c1 ~$ X3 F ~' x- U
* s8 r/ u0 z2 p0 R& h# h6 O
2.1 视频采集实例
7 }4 B! I* i+ `# u, `
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp
9 J$ Y+ }/ m6 X" P$ X3 D8 D3 Z' d
2.1.1 实例运行步骤
$ E- D' N8 v+ Y! e& C6 \
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。9 P8 T& o6 B: a6 k n$ l% f ]
+ {3 a/ H9 f9 l* l" ]
2 JN-miniVB运行如下命令,启动FlyCapVideo实例1 s, i0 ], c5 {5 g
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/( a" U; A: [! A, B) f1 H) R
root@am57xx-evm:~#./FlyCapVideo
" b' c4 B' n0 Q% O/ O1 ?9 `$ I3 ^
2.1.2 实例结果% n' i, g0 ?, C" e; @( p
4 c1 |% ~/ B, L( n4 T6 ]& P" d
HDMI显示界面如下图2-1-1所示:: x# {0 } o: H" ]% R, `% ?3 ?+ f- N+ T: [
图2-1-1( @/ p. Y* h* Y& n {+ O! V2 P) k
1 k7 E* f9 f1 }0 X- x& Q. e% a. E
2.1.3 实例分析! r5 n" r) Q# E. O/ n1 W# G1 D
3 L: Y# N2 R3 s+ ]: a6 _+ t
FlyCapVideo程序是从工业相机获取采集数据,转到OpenCV环境下处理图像,并获取该图像长、宽、图像数据等参数,将图像转换为OpenCV Mat类型。5 ~1 o) J1 a1 P* M F6 o9 G
详细过程如下图2-1-2所示:
图2-1-2
2 g/ x* y& r! |! h4 N$ k4 K
2.2 sobel边缘检测实例! z. X( e3 H/ ?* K: U7 J
% m- b3 f, l$ a, e3 H4 B
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp/ F" c( {3 V+ b7 V' s3 J
2.2.1 实例运行步骤) ]4 g' T% g1 g' f
1 S& m+ W/ V4 ] m' h8 @" z
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。
/ z& v) F' Z( F/ h
2 JN-miniVB运行如下命令,启动FlyCapSobel实例
" ^3 i* o5 x3 ]0 t3 E$ G [0 s+ J
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapSobel; h" M3 R8 W1 O5 P. b* m F( G
9 B. Q: K4 W' ^6 C; q: [* ~3 O
2.2.2 实例结果* h' V( v J; X
HDMI显示界面如下图2-2-1所示:4 A& |1 G/ ?1 l) W, v j, }, C
图2-2-1
) t/ W* I5 R7 z9 v
2.2.3 实例分析
& W# M* r. x& Y: C6 g
FlyCapSobel程序是对工业相机采集视频进行Sobel算法处理,分别处理图像的X方向和Y方向,然后将两个方向的处理结果加权求和。. r7 ^( d4 D5 j
2.3 霍夫线检测实例& S3 ~% R4 o- @+ g' ]
4 A$ {/ A/ g+ i% I7 l
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp' _ d: W) \9 s& U7 P' f3 o* U
2.3.1 实例运行步骤3 ?% @) f' Z! U# s, L* f
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。; D6 b$ q' B8 p p
& h9 X) b' _1 O9 c4 e# w* S
2 JN-miniVB运行如下命令,启动FlyCapHoughlines实例
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV// G i0 ^4 ?7 m# h5 i- L
root@am57xx-evm:~#./FlyCapHoughlines0 P3 n6 H7 x: i6 z0 I6 v( ~
2.3.2 实例结果
HDMI显示界面如下图2-3-1所示:% F& C' v$ R; X: x
图2-3-1
2.3.3 实例分析
3 ?( Y$ {5 A6 H P
FlyCapHoughlines程序是从工业相机获取数据,转化为OpenCV下Mat类型对象。使用Canny算法检测图像边缘。将边缘图像进行霍夫线检测。
bingshuihuo 发表于 2018-2-28 08:15
没有看懂这个是做什么使用
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) | Powered by Discuz! X3.2 |