opencv在ubuntu系统下的各种安装(apt版-非conda)(由于最新版本实在是安装总出问题)气!!

  1. 查看pkg-config里opencv的版本pkg-config opencv --modversion
  2. 查看当前python所链接的opencv 版本
import cv2
print(cv2.__version__)

删除opencv

sudo make uninstall
cd  ..
rm -r build
rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
cd /usr
find . -name "*opencv*" | xargs sudo rm -rf

ubuntu安装opencv 4.4记录

因为opencv 4.4支持了yolo-v4

依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

cmake

  1. 在opencv官网下载最新的发行版,opencvopencv-contrib(opencv-contrib不安也行,不过就少用很多库)
  2. 解压
  3. 进入
  4. 建一个build文件夹
  5. 进入build文件夹
  6. 重点来了
    1. 先cmakeopencv-contrib,路径记得自己改
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/gsh/Tools/opencv-4.4.0/opencv_contrib-4.4.0/modules/ ..
    
    1. 在cmakeopencv,路径自己改
    cmake -D CMAKE_BUILD_TYPE=RELEASE  \
    -D OPENCV_GENERATE_PKGCONFIG=YES \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_opencv_python3=ON  \
    -D PYTHON_EXECUTABLE=/home/gsh/miniconda3/bin/python \ #这里指定python编译器
    -D CMAKE_INSTALL_PREFIX=/usr/local ..
    

make

make -j12
sudo make install

这里如果是加了opencv-contrib的话是会出现报错,解决方法是将

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

放到opencv_contrib/modules/xfeatures2d/src/

百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取码:e1wc

配置环境

pkg-config环境

我们可以通过sudo find / -iname opencv4.pc来找到opencv4.pc文件,这里会出现一个Permission denied的报错,但是没关系,路径还是会输出。如果按照之前的方法安装,那么应该是会输出/usr/local/lib/pkgconfig/opencv4.pc。因此我们接下来就要把路径/usr/local/lib/pkgconfig/加入到PKG_CONFIG_PATH。

sudo vim /etc/profile.d/pkgconfig.sh
在里面加入这个:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
保存退出并执行:source /etc/profile

pkg-config --libs opencv4查看输出的库是否能对应上

动态库环境

为了在程序执行时能加载动态库*.so的路径,我们还需配置动态库环境。

sudo vim /etc/ld.so.conf.d/opencv4.conf
写入`/usr/local/lib`并保存
sudo ldconfig

python-opencv环境

找到编译好的python cv库:sudo find / -iname cv2*.so

把编译好的python3的opencv库cv2.cpython-35m-x86_64-linux-gnu.so放到对应python解释器的/path/to/dist-packages中,如下:

/home/gsh/miniconda3/lib/python3.7/site-packages/cv2.cpython-37m-x86_64-linux-gnu.so
放到哪个解释python下,哪个python解释器就能调用这次安装的opencv了。

如果要多个编译器使用同一个opencv的话做个软连接过去:
sudo ln -s /home/gsh/miniconda3/lib/python3.7/site-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so 空格/usr/local/lib/python3.6/dist-packages/cv2.so

sudo cp /home/gsh/miniconda3/lib/python3.7/site-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so 空格/usr/local/lib/python3.6/dist-packages/

参考

参考博客1
参考博客2
参考博客3
参考博客4
参考博客5
参考博客6
参考博客7
参考博客8
参考博客9

参考


版权声明:本文为crazty原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。