给大家分享一下基于匠牛JN-mini5728套件的USB3.0工业相机采集案例。
一 工业相机概述3 [6 k7 `! H8 Z; t& ]
; b4 R+ X$ [5 w" Y7 a' U" z P
工业相机是机器视觉系统中的一个关键组件,其最本质的功能就是将光信号转变成为有序的电信号。
选择合适的相机也是机器视觉系统设计中的重要环节,相机不仅决定图像分辨率、图像质量,同时也与整个系统的运行模式直接相关。
工业相机应具有高精度、高清晰度、色彩还原度、低噪声等特点,而且通过计算机可以编程控制曝光时间、亮度、增益等参数,另外图像窗口无级缩放,带有外触发输入,带有闪光灯控制输出等功能。
工业相机由两大基本部件组成:图像感光芯片和数字化的数据接口。图像感光芯片由数十万至数百万个像素组成。像素把光线的强度转换为电压输出。这些像素的电压被以灰度值的形式输出,所有像素放在一起就形成了图像,发送给计算机。数据接口主要有USB 2.0、USB3.0、1394和千兆以太网。 一般工业相机都提供640x480像素的分辨率和30fps的帧速率。
8 m* K/ V6 \! m
二 实例详解# p7 y% K$ l- p$ p
编译工业相机实例程序,在Ubuntu PC 运行如下命令:$ w9 }8 {$ |! G1 g" W3 h
cd SDK/JiangNiu-demo/FlyCapOpenCV. o3 {+ h# P7 y4 g1 T/ a4 f/ U
make
2.1 视频采集实例* w, G G3 i; K; o1 b4 H
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapVideo.cpp
3 [$ L: U# ?. Q3 w
2 M ?/ ^ g! v0 N8 V: s B
2.1.1 实例运行步骤
$ \+ f# X* f+ H6 O) g0 S
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。
2 JN-miniVB运行如下命令,启动FlyCapVideo实例, e) S8 [* O$ K! N& _
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapVideo
* Y6 B8 v# T) Z0 u
2.1.2 实例结果
8 M* e% X6 z* u. A+ z$ ?
HDMI显示界面如下图2-1-1所示:

图2-1-1
: S5 ?8 Y. y8 h9 E* @
2.1.3 实例分析
1 F, e# Q3 E9 _7 s- P1 ^1 K
FlyCapVideo程序是从工业相机获取采集数据,转到OpenCV环境下处理图像,并获取该图像长、宽、图像数据等参数,将图像转换为OpenCV Mat类型。
详细过程如下图2-1-2所示:; M2 j( Q% w* U8 a

图2-1-2
1 t% j6 k: n. A, X
2.2 sobel边缘检测实例% I, t+ E4 T: Z" Q$ w) Q+ h1 R
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapSobel.cpp; {! T# J+ A, @4 ^/ z3 `3 p
2.2.1 实例运行步骤
: Y p+ d9 i* ^4 Z0 y4 F1 e
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。- k3 A4 W9 j" M
8 { M" K3 j: d/ V' {3 S8 e
2 JN-miniVB运行如下命令,启动FlyCapSobel实例" T# I. c( U4 z1 |
/ Q* N3 y0 a3 T0 k
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/
root@am57xx-evm:~#./FlyCapSobel* t4 y' o" S# |7 v0 g# P
* \" K; \" N' l5 J4 c
2.2.2 实例结果
$ ~- c5 b I& ] M; ~* \8 Q
HDMI显示界面如下图2-2-1所示:' v: ]& k- E* M- y$ {" [% v

图2-2-1$ r8 u4 C) a! I9 ?8 H
2.2.3 实例分析
( u: N/ S9 l* M0 I4 |7 F: j
FlyCapSobel程序是对工业相机采集视频进行Sobel算法处理,分别处理图像的X方向和Y方向,然后将两个方向的处理结果加权求和。
7 `' x0 i0 Z Y6 n& ?5 I5 k
2.3 霍夫线检测实例$ }/ u! p0 T4 }
实例源码位于SDK/JiangNiu-demo/FlyCapOpenCV/FlyCapHoughlines.cpp
2.3.1 实例运行步骤
1参考板卡开机登录章节,启动JN-miniVB,然后将USB工业相机连接到JN-miniVB USB3.0接口。
2 JN-miniVB运行如下命令,启动FlyCapHoughlines实例
# t+ a+ O% H+ {0 K
root@am57xx-evm:~#cd /opt/JiangNiu-demo/FlyCapOpenCV/8 i/ `( w/ E# j
root@am57xx-evm:~#./FlyCapHoughlines, a& m9 e: D. X2 |# G; \5 n: b5 {$ b$ i
- |# I4 I) l( k% h
2.3.2 实例结果
. G& Q7 M% c8 ^9 ?3 |
HDMI显示界面如下图2-3-1所示:; n0 k, @% A2 \! A
% d7 x X& k: O/ z S+ `0 u
图2-3-1) [$ c4 \4 m6 F* }4 W J
2.3.3 实例分析
1 }8 W$ t7 u) C L! m9 x
FlyCapHoughlines程序是从工业相机获取数据,转化为OpenCV下Mat类型对象。使用Canny算法检测图像边缘。将边缘图像进行霍夫线检测。
bingshuihuo 发表于 2018-2-28 08:15+ _3 [2 M$ Z1 Q
没有看懂这个是做什么使用
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |