Ubuntu中opencv安装及在python3中使用相关问题

1.源码安装opencv

本项目在RK3399Pro上安装opencv-3.4.1

1.1 首先更新源并安装相关依赖

1)更新源

sudo apt-get update

2)安装cmake

sudo apt-get install cmake

3)安装相关依赖包

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

4) 确认python3相关安装完整

sudo apt-get install python3 python3-dev python3-pip
pip3 install numpy

1.2 解压opencv源码压缩包

1)从opencv所在路径打开终端(本项目安装的是opencv-3.4.1,压缩包为opencv-3.4.1.zip)

unzip opencv-3.4.1.zip

1.3 编译源码并安装

1)进入opencv解压所在目录

cd opencv-3.4.1  #这里进入源码压缩包解压的文件夹

2)创建文件夹目录用来存放编译后的opencv库

mkdir open_build  #名字可自由发挥

cd open_build     #进入创建的目录

3)执行cmake从源码构建项目

cmake -D BUILD_opencv_python3=YES -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES=../modules -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D PYTHON_LIBRARIES=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/rpdzkj/.local/lib/python3.5/site-packages/numpy/core/include ..

执行完查看终端记录python3对应的路径是否找到并有效
4)执行make编译和安装

sudo make
sudo make install

更新动态库

sudo ldconfig

注:打开opencv的CMakeLists.txt,查看python3安装相关变量,下面是opencv的CMakeLists.txt关于python的代码。
cmake 需指定python库安装路径,方能在python中直接使用opencv
Ubuntu中opencv安装及在python3中使用相关问题_第1张图片

if(BUILD_opencv_python3)
  status("")
  status("  Python 3:")
  status("    Interpreter:"     PYTHON3INTERP_FOUND  THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})"       ELSE NO)
  if(PYTHON3LIBS_VERSION_STRING)
    status("    Libraries:"   HAVE_opencv_python3  THEN  "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})"   ELSE NO)
  else()
    status("    Libraries:"   HAVE_opencv_python3  THEN  "${PYTHON3_LIBRARIES}"                                      ELSE NO)
  endif()
  status("    numpy:"         PYTHON3_NUMPY_INCLUDE_DIRS THEN "${PYTHON3_NUMPY_INCLUDE_DIRS} (ver ${PYTHON3_NUMPY_VERSION})" ELSE "NO (Python3 wrappers can not be generated)")
  status("    packages path:" PYTHON3_EXECUTABLE         THEN "${PYTHON3_PACKAGES_PATH}"                                    ELSE "-")
endif()

PYTHON3_EXECUTABLE = #python执行路径
PYTHON_LIBRARIES =/usr/lib/arm-linux-gnueabihf/libpython3.5m.so #python本身的动态链接文件
PYTHON3_NUMPY_INCLUDE_DIRS = /usr/lib/python/dist-packages/numpy/core/include/ #NUMPY所在位置

执行如下命令,测试opencv是否安装成功

python3

然后进入到python3的shell交互环境后,输入如下命令

import cv2

如果没有报错,那应该是安装成功了

下面附上查询opencv版本号的命令

pkg-config --modversion opencv

解决问题

1)进入python3的shell交互环境后,输入如下命令查看相关python路径

import sys
sys.path

Ubuntu中opencv安装及在python3中使用相关问题_第2张图片
2)opencv源码编译好,在python3交互环境中执行import cv2出现ImportError: No module named 'cv2'
Ubuntu中opencv安装及在python3中使用相关问题_第3张图片
请仔细检查执行cmake从源码构建项目

cmake -D BUILD_opencv_python3=YES -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D PYTHON_LIBRARIES=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/rpdzkj/.local/lib/python3.5/site-packages/ ..

1. 指定参数的时候有些没加-D
2. 没有启用BUILD_opencv_python3
3. 部分变量名错了
4.路径错误,请仔细检查每个路径确实存在有效

感谢阅读,我是智科创玩,希望文章能够解决您的问题。
事为之,须极致!

你可能感兴趣的:(Ubuntu,rk3399pro,opencv,opencv,linux,ubuntu,python,嵌入式)