如何安装opencv4到ubuntu18.04
查找了相当一部分的资料后终于成功编译好了opencv(C++)
引言
网上很多教程其实不能完全编译好opencv4.0.0这个版本,当你开始编译自己的opencv时,各种问题会随之而来,比如编译的时候出现缺少静态链接库,甚至有的时候编译源代码时命名空间有问题都得自己更改。所以写这篇文章时为了让更多的人避免一些坑我会细细地讲解一下编译的过程
第一步选择操作系统和语言
我选择的时ubuntu18.04,不同操作系统所需的库不同,我只实验了ubuntu18.04,并且我只针对用c++编写,所以使用python或java的朋友,需要查阅相关资料。(注意不要使用虚拟机)
第二步联网
安装环境需要连接真正的互联网,否则下载安装包的速度会非常的慢,甚至会失败,所以找到一个好的代理服务器是必须的。
第三步安装环境
创建一个文件夹--opencv
mkdir opencv && cd opencv
nano opencv_environment.sh
复制下面内容到opencv_environment.sh
echo "OpenCV installation by learnOpenCV.com"
# Define OpenCV Version to install
cvVersion="master"
# Create directory for installation
mkdir installation
mkdir installation/OpenCV-"$cvVersion"
# Save current working directory
cwd=$(pwd)
sudo apt -y update
sudo apt -y upgrade
sudo apt -y remove x264 libx264-dev
## Install dependencies
sudo apt -y install build-essential checkinstall cmake pkg-config yasm
sudo apt -y install git gfortran
sudo apt -y install libjpeg8-dev libpng-dev
sudo apt -y install software-properties-common
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt -y update
sudo apt -y install libjasper1
sudo apt -y install libtiff-dev
sudo apt -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt -y install libxine2-dev libv4l-dev
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd "$cwd"
sudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt -y install libgtk2.0-dev libtbb-dev qt5-default
sudo apt -y install libatlas-base-dev
sudo apt -y install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt -y install libvorbis-dev libxvidcore-dev
sudo apt -y install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt -y install libavresample-dev
sudo apt -y install x264 v4l-utils
sudo apt-get -y install libvtk7-dev
# Optional dependencies
sudo apt -y install libprotobuf-dev protobuf-compiler
sudo apt -y install libgoogle-glog-dev libgflags-dev
sudo apt -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
sudo apt -y install python3-dev python3-pip
sudo -H pip3 install -U pip numpy
sudo apt -y install python3-testresources
# Fix failed to load module “canberra-gtk-module”
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
# install qtcreator
sudo apt-get install qtcreator -y
给脚本运行权限并运行
chmod +x opencv_environment.sh
./opencv_environment.sh
第四步下载opencv4.0.0和opencv4.0.0_contrib-4.0.0(在opencv文件夹中)
wget "https://github.com/opencv/opencv/archive/4.0.0.tar.gz" -O opencv.tar.gz
wget "https://github.com/opencv/opencv_contrib/archive/4.0.0.tar.gz" -O opencv_contrib.tar.gz
# 解压到本地
tar -zxvf opencv.tar.gz
tar -zxvf opencv_contrib.tar.gz
第五步编译opencv4.0.0
在opencv文件中创建一个脚本
nano opencv_build.sh
复制以下内容到opencv_build.sh
rm -rf build
mkdir build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.0.0/modules ../opencv-4.0.0 -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_QT=ON -DWITH_VTK=ON -DWITH_OPENGL=ON #打开了qt和opengl模块,可以用qt和opengl的库
make -j8 #-j8代表8个线程编译
make install
给opencv_build.sh运行权限
chmod +x opencv_build.sh
先别急着运行,在opencv_contrib-4.0.0中对应的qt模块源码有一处错误,这个错误会导致你在编译到68%的时候报错,原因是没有使用正确的命名空间。
到这个文件下面opencv/opencv_contrib-4.0.0/modules/cvv/src/qtutil/filter
有一个名叫 sobelfilterwidget.cpp 的源文件在第11行下面添加一行 using namespace std; 即可
运行opencv_build.sh
./opencv_build.sh
紧接着就静静等待安装完成,
一些细节
编译完后安装的根目录是/usr/local/
/usr/local/bin - executable files
/usr/local/lib - libraries (.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)
总结
内容有很多细节没有讲,但都在文章里面,opencv对初学者不是很友好,本人也是花了将近一个月的时间,不停的换操作系统,不停的在虚拟机和真机中切换,最后发现很多东西虚拟机和真机有不同,所以劝朋友们最好不要使用虚拟机,直接使用真机。不同的操作系统需要的环境不同,理论上按照上面的步骤是可以配置成功的,但实际上本人只在ubuntu18.04这个版本上成功过。时代在发展,本教程只做参考。
如果遇到问题请邮件联系或者在下方留言
邮箱:zhengngago@gmail.com