当前位置: 代码迷 >> 综合 >> 树莓派安装opencv的各种坑(Python与opencv版本不合等:fatal error: opencv2)
  详细解决方案

树莓派安装opencv的各种坑(Python与opencv版本不合等:fatal error: opencv2)

热度:100   发布时间:2023-11-16 21:50:07.0

一. 更改 python 版本

  • (先查看自带的有几个 Python 版本,我的树莓派系统里有两个 :python 2.7 和 python 3.7)
1. 之前安装 opencv 就直接安装了 , 却不能在 python 3.7 环境下调用 , 遂 ,卸载 2.7 (不建议卸载) 重新安装 opencv
(PS : 可以给指定版本python安装模块 (因此不需要卸载其它 python 版本)) :
(未进行尝试) :
如何使用 pip 给指定版本的 Python 安装模块:
https://shumeipai.nxez.com/2019/03/05/how-to-use-pip-to-install-modules-for-a-specified-version-of-python.html
2.卸载python2.7
sudo  apt-get  autoremove  python2.7
3.链接python3.7
sudo ln -s /usr/bin/python3.7  /usr/bin/python
4.链接pip3
sudo ln -s /usr/bin/pip3  /usr/bin/pip
5.再输入python, 显示为
Python 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

二. 安装 opencv

1.下载OpenCV
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip
2. 解压
unzip opencv-3.4.3.zip
3. 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
4.解压
unzip opencv_contrib-3.4.3.zip
5.
cd ~/opencv-3.4.3
(PS : 新建build文件夹)
mkdir build      
(PS : 进入build文件夹)
cd build
6.直接复制粘贴到终端并回车

(PS : 此步可能会出现 cmake 没安装的问题)

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..
7. cmake 成功:
--   Matlab:                        NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv-3.4.3/build
8.备份build文件中的东西(可略过)
cd ..
(PS : 回到opencv-3.4.3目录)
cp -r build ./build1
(PS : 备份)
9.开始编译(重头戏)
cd build 
(PS : 回到build 目录)
sudo make
10.问题初现

(PS : 因为 opencv 与 python 版本匹配问题会在编译过程中出现数次错误)
(PS : 在安装到 27% 左右,有错误提示) :

fatal error: boostdesc_bgm.i: 没有那个文件或目录
  • 解决方案 (感谢大神): https://www.cnblogs.com/zhang-hongbo/p/12859405.html
  • 将上述文件添加后 , 继续编译
cd ~/opencv-3.4.3/build 
sudo make
11.问题再现 :
/home/pi/opencv3.4.3/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:12: 
fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
  • 提示说没有 cuda.hpp 文件 , 但是我的是直接没有 xfeatures2d 这个包含 cuda.hpp 的文件夹.

  • 解决方法 : (寻找文件 , 复制粘贴)

  • 1.(寻)

cd ~
find ~ -name "xfeatures2d" 
/home/pi/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2/xfeatures2d
  • 2…
cd ~/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2
  • 3.(补)
cp -r xfeatures2d  ~/opencv-3.4.3/modules/stitching/include/opencv2
  • 4.(继续编译)
cd ~/opencv-3.4.3/build 
sudo make
(PS : 当然你若只缺少个别文件只对个别文件进行操作即可)
12.问题又现 :
/home/pi/opencv-3.4.3/modules/stitching/src/matchers.cpp:52:10: 
fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录
  • 解决方法 : (寻找文件 , 复制粘贴)
  • 1.(寻)
cd ~
find ~ -name "xfeatures2d.hpp" 
/home/pi/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp
  • 2…
cd ~/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2
  • 3.(补)
cp -r xfeatures2d.hpp ~/opencv-3.4.3/modules/stitching/include/opencv2
  • 4.(继续编译)
cd ~/opencv-3.4.3/build 
sudo make
sudo make install
sudo ldconfig
13.终成功 :
	$ pythonPython 3.7.3 (default, Jul ...)>>> import cv2>>> cv2.__version__'3.4.3'
  相关解决方案