安装opencv及出现问题的解决办法

这个问题纠结了两天,终于解决啦!找了各种方法,现在把每种方法以及遇到的问题总结一下!

1.首先 conda list 查看自己环境下面的opencv版本:

发现自己利用源下载的opencv是4.6.0,但利用pip下载的opencv-contrib-python,opencv-python,opencv-python-headless都是4.8.1.78

2. 所以升级 OpenCV 来解决此问题。

首先卸载opencv:

conda uninstall opencv

然后用conda升级cv2:

conda install -c conda-forge opencv

3. 还是不行,有说法说是因为版本冲突了,所以把opencv相关的都卸载了。

pip uninstall opencv-contrib-python
pip uninstall opencv-python-headless
pip uninstall opencv-python
conda uninstall opencv

再利用 Ubuntu 源仓库重新安装opencv

sudo apt update
sudo apt install libopencv-dev python3-opencv

4.如果利用cmake安装opencv库(或者其他库)

 需要利用sudo make去安装包或者库,所以需要在系统里面安装cmake

(1)进入包或者库解压后的目录,并更新apt,安装cmake

sudo apt-get update
sudo apt-get install cmake

安装opencv及出现问题的解决办法_第1张图片

(2).如果有未安装的以来的库:

sudo apt-get install xx

(3)创建build文件,并进入

mkdir build
cd build

(4)使用cmake编译参数,或者默认参数:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

(5)利用make进行编译:

sudo make
sudo make install

5. 从源码安装 OpenCV(这个是最推荐的)

从源码安装OpenCV可以安装最新可用的版本,还可以针对你的特定系统进行优化,完整控制所有的构建选项。这是最推荐的安装 OpenCV 的方式。

(1)安装构建工具和所有的依赖软件包:

sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

(2)克隆所有的OpenCV 和 OpenCV contrib 源:

mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

github 软件源中的默认版本是 4.3.0。如果想安装更旧版本的 OpenCV, cd 到 opencvopencv_contrib目录,并且运行

git checkout 

(3)创建一个临时构建目录,并且切换到这个目录,用cmake配置 OpenCV 构建,进行编译

cd ~/opencv_build/opencv
mkdir -p build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..
make -j8

(4).安装 OpenCV:

sudo make install

6. 利用pip 安装OpenCV contrib

pip提供的opencv的包的类型有四种:

opencv-python: 只包含opencv库的主要模块. 一般不推荐安装.
opencv-contrib-python: 包含主要模块和contrib模块, 功能基本完整, 推荐安装.
opencv-python-headless: 和opencv-python一样, 但是没有GUI功能, 无外设系统可用.
opencv-contrib-python-headless: 和opencv-contrib-python一样但是没有GUI功能. 无外设系统可用.

一般来说都会选择安装 opencv-contrib-python,不要同时安装 opencv-python 和 opencv-contrib-python

pip install opencv-contrib-python

或者考虑清华源:

pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple

(1) 但是出现了“Requirement already satisfied: numpy>=1.19.3 in ./anaconda3/envs/maskrcnn/lib/python3.8/site-packages (from opencv-contrib-python) (1.24.4)  ERROR: Could not install packages due to an OSError: [Errno 2] 没有那个文件或目录: '/home/nvidia/anaconda3/envs/maskrcnn/lib/python3.8/site-packages/numpy-1.24.4.dist-info/METADATA' ”问题

安装opencv及出现问题的解决办法_第2张图片

在网上的解决办法就是在 pip install 后加 - -target=你所要添加的库文件地址(注意:target前为两个-,并且没有空格) 再加 库名 ,一般来说地址就是错误提示后的这串地址,我是“./anaconda3/envs/maskrcnn/lib/python3.8/site-packages“

pip3 install --target=./anaconda3/envs/maskrcnn/lib/python3.8/site-packages numpy

  (2) 针对”ERROR: Could not install packages due to an OSError: [Errno 2] 没有那个文件或目录: '/home/nvidia/anaconda3/envs/maskrcnn/lib/python3.8/site-packages/numpy-1.24.4.dist-info/METADATA':手动删除出错的文件

rm -rf /home/nvidia/anaconda3/envs/maskrcnn/lib/python3.8/site-packages/numpy-1.24.4.dist-info

(3)最后再安装:

pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple

7. 验证 OpenCV是否安装成功,输入python

python
   import cv2
   print(cv2.__version__)

还在网上看到了C++版本验证:

pkg-config --modversion opencv4

8. 如果出现 module 'cv2.dnn' has no attribute 'DictValue'

直接卸载之前高版本4.8.1.78的opencv-python,然后安装低版本的opencv:

 pip install opencv-python==4.5.1.48

完结撒花~

你可能感兴趣的:(教研室工作,dnn,人工智能,神经网络)