在Ubuntu16.04安装OpenCV3.1并实现USB摄像头图像采集

本文详细介绍了如何在Ubuntu16.04上安装OpenCV3.1,并通过USB摄像头进行图像采集。首先解释了OpenCV和UVC摄像头的基本概念,然后讲解了安装OpenCV的步骤,包括更新系统、安装依赖、下载OpenCV源码、使用CMake配置、解决下载问题和编译安装。最后,通过一个简单的程序验证了OpenCV的安装和摄像头图像采集功能。
摘要由CSDN通过智能技术生成

参考文献:
http://bbs.elecfans.com/jishu_503398_1_1.html
帖子的主要内容就是在Ubuntu16.04上安装图像处理软件OpenCV,并用简单的程序实现UVC摄像头的图像采集

硬件平台:Windows7 64 bit + USB摄像头C270
软件平台:VMware® Workstation 12 Pro+ Ubuntu16.04 + arm-linux-gcc4.3.2 + OpenCV3.1
一、知识补充
1.什么是OpenCV
OpenCV是一款开源的图像处理库,于1999年由Intel公司发起和建立。OpenCV为Python、Matlab等多种计算机语言提供了接口,它的库函数采用了C和C++编写,可以在Windows、Linux、Mac OS和Android等多种操作系统上面运行。采用OpenCV做图像处理,可以使显著提高编程效率。可以到http://opencv.org/downloads.html下载需要的版本。

  1. UVC摄像头简介
    采用UVC(USB Video Class)摄像头的原因是:UVC是一个开放的标准,拥有维护良好的驱动,它属于内核代码的一部分。插入摄像头后就可以工作,而无须编译或安装额外的驱动。那么问题来了,如何查看自己手中的USB摄像头是否是UVC摄像头的方法如下:
    (1)在终端输入lsusb,查看该摄像头的ID号;
    或者
    在windows 7的环境下,查看摄像头ID号,如图:
    这里写图片描述
    从图中可知道,摄像头的ID号为 VID2232,PID1028
    (2)在网站http://www.ideasonboard.org/uvc/中比对显示的ID号,若“Status”一栏为“绿色的对号”则表示该摄像头为UVC摄像头。
    (3)很遗憾,这个笔记本自带的摄像头,没有在列表中找到。估计没法使用,没关系,这个我们先放一放。实在不行我们还另外一个摄像头。说到这里,突然想起,我用的虚拟机,设备的识别需要在虚拟机的界面时,插入设备,系统才会识别成虚拟机的设备,否则会设备成windows的设备,想想用自带摄像头看来是不行,因为摄像头没有办法插拔。只有另外找摄像头了。
    二、安装OpenCV
    1. 预备工作:
      (1)安装交叉编译工具,安装包为:arm-2009q3.tar,可以在360云盘下载。https://yunpan.cn/Oc6gfCS3UgXtu5 访问密码 77bd
      (2)安装cmake。在终端输入安装指令:
sudo apt-get install cmake

待完成安装后,在终端输入以下指令,可以查看安装cmake的版本信息。

cmake --version

cmake version 3.5.1

可以看到:

  1. 安装步骤:
    (1)更新和升级系统,两条语句后分开执行。在更新之前最好见更新的镜像服务器设置成国内的网址。我查了一下,记得可以设置成163的镜像服务器,现在没有了,就设置成了搜狐的镜像,这样比美国的服务器,更新速度要快很多。如果读者不知道如何设置镜像服务器,可以百度搜索一下方法,实在不行,留言给我,我可以提供方法,后续我会在博客里写一下如何设置。
    注:如果你是新安装的系统,重来没有更新过,如果会消耗很长的时间。。。请耐心等待期更新完毕,再进行后面的步骤。
sudo apt-get update
sudo apt-get upgrade

(2)安装依赖项

sudo apt-get install pkg-config libgtk2.0-dev build-essential libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev

(3)下载并解压OpenCV3.1.0至Ubuntu16.04的用户目录下

cd ~
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.1.0/opencv-3.1.0.zip
unzip opencv-3.1.0.zip
cd opencv-3.1.0

下载很慢,你可以到我网盘试试:

(4)OpenCV 2.0之后的版本,必须使用CMake创建Makefile。我使用的CMake版本是3.5.1。最后的两个点“..”的意思是:当前目录在build文件夹里,所以在编译的时候需要回到OpenCV的主菜单。

mkdir build 
cd build 
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON .. 

1.运行上的指令时出现如下错误:

js@ubuntu:~/opencv/opencv-3.1.0/build/build$ cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_VTK=ON ..
CMake Error: The source directory "/home/js/opencv/opencv-3.1.0/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

查各种原因,出现这个错误提示的原因是CMakeLists.txt 不在/home/js/opencv/opencv-3.1.0/build路径中,咨询一看,我晕菜,居然在build下面还建了一个build文件夹,rm -r build后,在上一层的build中再次输入上面的命令,又在build的下一层新建了一个build文件夹,出现同样的错误,看来不是我的笔误造成的两层文件夹,而是它自动新建了一个build文件夹,怎么回事,之前我在另外一个虚拟机都没有自动新建一个文件夹的啊。。。搞不懂,先不管他,既然他要自动新建build文件夹,那么我事先就不建build文件夹了。。直接在/home/js/opencv/opencv-3.1.0/运行上面同样的命令。哈哈,开始配置了。。。

但是又出错了:

重新把上面的 sudo apt-get update 和sudo apt-get upgrade,执行一遍,第一个没问题,第二个居然出错了。问题如下:

libtiff5-dev:i386 libtiff5-dev

E: Package ‘libtiff4-dev’ has no installation candidate

http://installion.co.uk/ubuntu/vivid/main/l/libtiff5-dev/install/index.html
输入:

sudo apt-get install libtiff5-dev

还是不管用,仔细阅读提示,发现是libtiff4-dev无效了,没有了,用libtiff5-dev 代替了。好了,重新执行依赖,并将其中的libtiff4-dev 该为libtiff5-dev。好了,开始下载了。。。
– Checking for module ‘tbb’
– Found tbb, version 4.4~20151115
– ICV: Downloading ippicv_linux_20151201.tgz… 这个地方等待下载了,据之前的经验,这里下载的东西的校验值会出问题,导致配置不成功。。。

没关系,从网上先下载ippicv_linux_20151201.tgz 在放到它应该的目录下就行了。。。写完这段话,还在下载,不知道会不会成功呢。。OK,该来还是会来:

CMake Error at 3rdparty/ippicv/downloader.cmake:77 (message):
ICV: Failed to download ICV package: ippicv_linux_20151201.tgz.
Status=28;”Timeout was reached”
Call Stack (most recent call first):
3rdparty/ippicv/downloader.cmake:110 (_icv_downloader)
cmake/OpenCVFindIPP.cmake:237 (include)
cmake/OpenCVFindLibsPerf.cmake:12 (include)
CMakeLists.txt:537 (include)
– Configuring incomplete, errors occurred!
See also “/home/js/opencv/opencv-3.1.0/build/CMakeFiles/CMakeOutput.log”.
See also “/home/js/opencv/opencv-3.1.0/build/CMakeFiles/CMakeError.log”.

js@ubuntu:~/opencv/opencv-3.1.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e$ ls
ippicv_linux_20151201.tgz

进入上面的目录,并且删除“ippicv_linux_20151201.tgz”,将下载的文件cp到这个这个地方。重新在build目录下输入配置命令:。
(实在百度不到这个文件,可以去我的网盘下载:
1.ippicv_linux_20141027.tgz”:
https://yunpan.cn/Oc6gRzCihpQGXc 访问密码 a25d
2.ippicv_linux_20151201.tgz”
https://yunpan.cn/Oc6sYbdKLc7uRX 访问密码 a6b0)
运行cmake的时候,会在终端出现依赖项的配置列表如下:

-- 
--   OpenCV modules:
--     To be built:                 core flann imgproc ml photo video viz imgcodecs shape videoio highgui objdetect superres ts features2d calib3d java stitching videostab python2
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python3
-- 
--   GUI: 
--     QT 4.x:                      YES (ver 4.8.7 EDITION = OpenSource)
--     QT OpenGL support:           YES (/usr/lib/x86_64-linux-gnu/libQtOpenGL.so)
--     OpenGL support:              YES (/usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so)
--     VTK support:                 YES (ver 5.10.1)
-- 
--   Media I/O: 
--     ZLib:                        /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.8)
--     JPEG:                        /usr/lib/x86_64-linux-gnu/libjpeg.so (ver )
--     WEBP:                        build (ver 0.3.1)
--     PNG:                         /usr/lib/x86_64-linux-gnu/libpng.so (ver 
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值