[toc]
Ubuntu16.04 安装OpenCV 3.4.x(C++版本)
- 1.安装依赖
- 2.编译OpenCV
- 3.测试
- 4.踩坑
安装依赖
1.安装ffmpeg
ffmpeg安装
2.安装其他依赖
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包,可选
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能,可选
sudo apt-get install ffmpeg
编译opencv
3.安装
cd opencv-3.4.6 #进入opencv的目录
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j4 # 使用四线程,电脑线程多可以改大
sudo mkae install
4.配置环境变量
sudo vim /etc/ld.so.conf.d/opencv.conf # 这个文件并不存在,我们新建一个
然后,在里面写入:
/usr/local/lib
退出vim
sudo vim /etc/ld.so.conf
添加:
include /etc/ld.so.conf.d/*.conf
/usr/local/lib
退出vim
sudo ldconfig # 使更改生效
sudo vim /etc/bash.bashrc
在最末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
退出vim
source /etc/bash.bashrc
sudo updatedb
pkg-config opencv --modversion # 查看opencv版本
5.测试
进入到opencv的example目录
cd cd samples/cpp/example_cmake/
make
./opencv_example
# 会输出以下内容,并打开摄像头
Built with OpenCV 3.4.6
Capture is opened
踩坑
1.ippicv
在编译opencv时,会碰到ippicv_2019_lnx_intel64_general_20180723.tgz这个文件下载超级慢的问题
下载网址1:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723/ippicv
下载网址2:https://links.jianshu.com/go?to=https%3A%2F%2Fraw.githubusercontent.com%2Fopencv%2Fopencv_3rdparty%2Fippicv%2Fmaster_20180723%2Fippicv%2Fippicv_2019_lnx_intel64_general_20180723.tgz
下载后放到自己方便的目录下,随便哪个都行
然后修改 ./3rdparty/ippicv/ippicv.cmake #就是这个文件的第47行
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/" 修改为:
"file:~/Downloads/" #(仅供参考,根据自己的路径填写,填写绝对路径)
2.recipe for target ‘lib/libopencv_videoio.so.3.4.6’ failed
报错信息为:
modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:333: recipe for target ‘lib/libopencv_videoio.so.3.4.2’ failed
make[2]: *** [lib/libopencv_videoio.so.3.4.2] Error 1
CMakeFiles/Makefile2:5205: recipe for target ‘modules/videoio/CMakeFiles/opencv_videoio.dir/all’ failed
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:162: recipe for target ‘all’ failed
make: *** [all] Error 2
经过查资料发现时ffmpeg的问题,没有编译好,编译ffmpeg时缺少参数
https://github.com/DeaDBeeF-Player/deadbeef/issues/1691
解决办法: 编译ffmpeg时添加 —extra-cflags=”-fPIC” 参数
./configure —extra-cflags=”-fPIC”
ok
至此,Ubuntu16.04下安装OpenCV已全部结束,请小量食用OpenCV!