opencv-4.1.1
opencv_contirb-4.1.1
opencv4.1.1网盘链接 密码: jh4d
opencv_contirb-4.1.1 密码: hws3
sudo apt-get install cmake
cmake -version
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
其中第三行命令安装libjasper-dev时可能会报错,解决方法:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
其中libjasper1是libjasper-dev的依赖包
在安装opencv4前我就有部分依赖,可能是因为安装了ros2的原因,所以如果要用ros2的同志可以先下载ros2,这样会省去一些依赖的安装
在一个相对浅层的地方随便建立一个文件夹(我的叫repos),我的文件夹地址如图片中所示:
注意解压好的opencv_contirb-4.1.1文件夹要放在opencv-4.1.1文件夹里面
修正:其实opencv_contirb-4.1.1放在任意的地方都可以,只要在cmake的参数里面指定好路径即可
cd opencv-4.1.1/
sudo mkdir build
cd build
下面两种编译方式任选一种即可,第一种包含了扩展模型,编译时间稍微加长,第二种是去掉了扩展模型
版本一:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_python2=OFF -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/repos/opencv-4.1.1/opencv_contrib-4.1.1/modules ..
注意最后一句话的opencv扩展模型路径要对应改到你自己先前建立的文件路径下
版本二,去掉了最后一句话:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_python2=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
进行编译:
sudo make -j8
可以使用sudo make -j 8 、sudo make -j4 、sudo make
我这里就使用sudo make -j 8了
然后安装
sudo make install
sudo apt-get install libeigen3-dev
报错原因2:找不到Eigen库
路径映射一下
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
然后重新编译,成功。
在终端输入
python3
import cv2
cv2.__version__
pkg-config opencv --modversion
pkg-config opencv --libs
pkg-config --cflags opencv
如果在python3中import cv2失败,如下命令:
pip3 install opencv-python