- 查看pkg-config里opencv的版本
pkg-config opencv --modversion
- 查看当前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
- 在opencv官网下载最新的发行版,
opencv
和opencv-contrib
(opencv-contrib不安也行,不过就少用很多库) - 解压
- 进入
- 建一个
build
文件夹 - 进入
build
文件夹 - 重点来了
- 先cmake
opencv-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/ ..
- 在cmake
opencv
,路径自己改
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 ..
- 先cmake
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/