这篇文章主要介绍了Jetson TX1开发中V4L2+OpenCV3.1以MJPG格式读取USB摄像头图像并实时显示的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
为汝南等地区用户提供了全套网页设计制作服务,及汝南网站建设行业解决方案。主营业务为网站设计制作、做网站、汝南网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
博主手中的800W高清摄像头:
从上两幅图可以看出,该摄像头的YUV2输出格式只有一种640 x 480分辨率,而输出格式为MJPG有多种分辨率,如果想实现高清采集,需要通过MJPG格式进行采集。
摄像头的输出格式可以是YUY2、MJPG等。对于输出格式为YUV2的摄像头,可以使用上个笔记中的nvcamerasrc,直接调用的是Gstreamer进行视频图像采集。而对于输出格式MJPG的摄像头,由于博主对Gstreamer不太了解,因此决定使用V4L2+OpenCV3.1进行图像采集。
这部分的内容,可以看这位大牛的博客:http://www.cnblogs.com/surpassal/archive/2012/12/19/zed_webcam_lab1.html
由于,采用MJPG采集格式,因此在V4L2设备初始化的时候,摄像头帧格式的pixelformat需要设置为V4L2_PIX_FMT_MJPEG:
可以使用cvDecodeImage进行图像解码,buf是保存图像的buffer。iscolor参数为0,解码成灰度图,参数为1,解码成彩色图。此处iscolor参数,我们设置为1。
代码如下:
由于代码较长,贴出来影响美观。可以在我的Github下载整体代码:
URL:https://github.com/Jack-Cherish/VideoCapture/blob/master/capture.cpp
欢迎follow、star!
运行环境需要配置好OpenCV3.1,配置教程详见:http://blog.csdn.net/c406495762/article/details/72302980
在~/.bashrc最后添加环境变量(我的OpenCV3.1安装在了/home/ubuntu/opencv-3.1.0下,这里需要改为自己的OpenCV3.1的路径):
export LD_LIBRARY_PATH=/home/ubuntu/opencv-3.1.0/lib:$LD_LIBRARY_PATHexport PKG_CONFIG_PATH=/home/ubuntu/opencv-3.1.0/lib/pkgconfig:$PKG_CONFIG_PATH
使添加的环境变量生效:
source ~/.bashrc
将程序拷贝到TX1中,使用使用如下指令编译(我的OpenCV3.1安装在了/home/ubuntu/opencv-3.1.0下,这里需要 改为自己的OpenCV3.1的路径) :
g++ -o capture -I /home/ubuntu/opencv-3.1.0/include -O2 -g -Wall capture.cpp -L /home/ubuntu/opencv-3.1.0/lib -lopencv_core -lopencv_imgproc -l opencv_flann -l opencv_imgcodecs -lopencv_videoio -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_objdetect -lopencv_photo -lopencv_features2d -lopencv_calib3d -lopencv_stitching -lopencv_videostab -lopencv_shape -lopencv_cudaobjdetect -lopencv_cudawarping -lopencv_cudaimgproc
video dev : /dev/video0 Driver Name:uvcvideo Card Name:RecordexUSABus info:usb-tegra-xhci-3.3Driver Version:3.10.96Support format:1.YUV 4:2:2 (YUYV)2.MJPEGDefault rec: left:0top:0width:1920height:1080Current data format information: width:1920height:1080Used time is 185.864 ms Used time is 56.2118 ms Used time is 17.0305 ms Used time is 14.5383 ms Used time is 43.1591 ms Used time is 32.4903 ms Used time is 28.6098 ms Used time is 20.398 ms Used time is 33.6233 ms Used time is 23.8306 ms
感谢你能够认真阅读完这篇文章,希望小编分享的“Jetson TX1开发中V4L2+OpenCV3.1以MJPG格式读取USB摄像头图像并实时显示的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!