给大家分享一下基于匠牛JN-mini5728套件的USB3.0工业相机采集案例。
一 工业相机概述- X, w' o# d7 f1 D r
工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成为有序的电信号。
) b8 j/ [- Z! H
选择合适的相机也是机器视觉系统设计中的重要环节,相机不仅决定图像分辨率、图像质量,同时也与整个系统的运行模式直接相关。1 L' \& r8 }6 ?. a" c
工业相机应具有高精度、高清晰度、色彩还原度、低噪声等特点,而且通过计算机可以编程控制曝光时间、亮度、增益等参数,另外图像窗口无级缩放,带有外触发输入,带有闪光灯控制输出等功能。
工业相机由两大基本部件组成:图像感光芯片和数字化的数据接口。图像感光芯片由数十万至数百万个像素组成。像素把光线的强度转换为电压输出。这些像素的电压被以灰度值的形式输出,所有像素放在一起就形成了图像,发送给计算机。数据接口主要有USB 2.0、USB3.0、1394和千兆以太网。 一般工业相机都提供640x480像素的分辨率和30fps的帧速率。
& W" d) r4 b8 [ Y: G
二 实例详解
编译工业相机实例程序,在Ubuntu PC 运行如下命令:" V5 `* V/ r- |, o8 ~2 p0 D
$ \. R" l* e8 V3 `$ c
cd SDK/JiangNiu-demo/FlyCapOpenCV5 {. _3 g: a% Z
make; x/ b D* Q5 A3 r& z' Y5 F: H
2.1 视频采集实例: r2 o+ G. f( q
" J" s& D$ Z( a _1 P3 E
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp* X7 @ x8 Y; ]! U, T7 y/ }& M; |
1 i* o- i- F+ M7 B1 B
2.1.1 实例运行步骤
7 p1 J- o; L; i: V3 e9 v
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。; L o6 T6 ~% J) p5 A( `: }; g
2 JN-miniVB运行如下命令,启动FlyCapVideo实例* ?3 i1 _& N$ Y; L5 ?% l5 f
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/. M- d0 p2 K3 e/ j; V
root@am57xx-evm:~#./FlyCapVideo
8 N6 t$ u- n5 ?1 i$ E9 O% g
2.1.2 实例结果
HDMI显示界面如下图2-1-1所示:
图2-1-1
1 a$ d4 I: [& G
2.1.3 实例分析
FlyCapVideo程序是从工业相机获取采集数据,转到OpenCV环境下处理图像,并获取该图像长、宽、图像数据等参数,将图像转换为OpenCV Mat类型。* w1 D, y5 c8 O; \* @
详细过程如下图2-1-2所示:
_" Z- m- t) ^) W1 ~7 n! h
图2-1-2
" ?2 a" j7 y; i l8 f" a% [
2.2 sobel边缘检测实例; s# g" w: z* c! E6 R P7 J' w
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp
2.2.1 实例运行步骤
" s5 H; D% A3 t! Q5 p
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。( ], A6 D( t6 W: [' B, v
2 JN-miniVB运行如下命令,启动FlyCapSobel实例
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapSobel0 R7 N8 C9 J# }( @: A
9 @4 n% x' K/ S1 C
2.2.2 实例结果
HDMI显示界面如下图2-2-1所示:1 @; \8 f# c; i& r
& o6 U; s1 c! l% m2 i) S
图2-2-1! W1 l; W, D4 j: |: w
2.2.3 实例分析
, O- v! S, o8 E$ z& I' I; P
FlyCapSobel程序是对工业相机采集视频进行Sobel算法处理,分别处理图像的X方向和Y方向,然后将两个方向的处理结果加权求和。2 y0 p. ~; e4 f4 v
2.3 霍夫线检测实例. A \0 u( S8 ]+ C
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp7 U8 Z# M2 J8 ?7 D* k
( A6 P- E; ?/ q! G; k) B
2.3.1 实例运行步骤
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。
2 JN-miniVB运行如下命令,启动FlyCapHoughlines实例 L6 l) ~+ C. S8 A2 x
" U4 P, ]( F7 O L: l$ e6 m, d
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/. ^5 @; o0 O* i+ ?3 E* P! Q
root@am57xx-evm:~#./FlyCapHoughlines
2.3.2 实例结果' H$ e8 Y4 R, o9 Q
8 `$ i/ g, j, F' l8 _, J
HDMI显示界面如下图2-3-1所示:" n: V4 d0 O( \/ v
, l( |, u8 D: Y7 B* l
图2-3-1
% {0 ^' d# @4 _" q7 w7 V( e7 b2 a
2.3.3 实例分析$ e( ?8 H( m6 |9 L+ ~; n0 }9 v
# Z/ ?7 v9 l( C7 @8 {* n) a$ f
FlyCapHoughlines程序是从工业相机获取数据,转化为OpenCV下Mat类型对象。使用Canny算法检测图像边缘。将边缘图像进行霍夫线检测。
bingshuihuo 发表于 2018-2-28 08:15" b; q& j6 k( Q9 A: J
没有看懂这个是做什么使用
欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) | Powered by Discuz! X3.2 |