为了方便查看,以及日后的学习,所以把opencv的安装方法整理了一下。安装过程踩了不少的坑。希望对大家有所帮助。
本文参考:https://blog.csdn.net/ninwji/article/details/100798014
本文涉及到资源下载:https://download.csdn.net/download/weixin_41873310/12234825
1、安装numpy
打开命令行界面,输入以下命令,安装Python科学计算库numpy
sudo pip3 install numpy
2、在树莓派设置中把根目录扩大到整个SD卡
命令行界面输入命令,进入树莓派配置界面。用上下键和左右键切换光标位置。
sudo raspi-config
3、安装OpenCV所需的库
挨个运行下面命令。共需要七分钟(注意倒数第三条命令中要安装四个-dev软件包)。
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
4、下载OpenCV
在命令行输入以下三条命令,下载两个压缩包到树莓派的/home/pi/Downloads目录下。第一个压缩包86.8MB,第二个压缩包54.5MB:
用git 下载非常慢,这里我把安装需要的文件统一整理了出来,下载地址
https://download.csdn.net/download/weixin_41873310/12234825
下载完成后可以直接把opencv.zip和opencv_contrib.zip复制到树莓派的home/pi/Downloads文件目录下,进行后续的操作
进入Downloads文件夹
cd /home/pi/Downloads
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv.git
git clone -b 4.1.0 --recursive https://github.com/opencv/opencv_contrib.git
5、解压
进入Downloads文件夹,解压
一句一句执行这三句语句
cd /home/pi/Downloads
unzip opencv.zip
unzip opencv_contrib.zip
解压完之后把解压出来的opencv和opencv_contrib文件夹移动到/home/pi目录下,不移动的话到后面的Cmake配置的时候就要把对应的文件目录修改一下,不然会报错哦
6、Cmake 配置,可输出适配于树莓派平台的Makefile
Cmake 经过配置,可输出适配于树莓派平台的Makefile
根据刚才下载的文件路径进行切换,并在目录下新建一个build文件夹
cd /home/pi/opencv
创建build文件夹
mkdir build
进入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_EXTRA_MODULES_PATH=/home/pi/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON \
-D WITH_LIBV4L=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
..
/**************************************************************************************/
注意,以上需要根据具体的环境进行修改,否则会报错。 其中: CMAKE_BUILD_TYPE=RELEASE \ 代表编译类型为发行版本
CMAKE_INSTALL_PREFIX=/usr/local \ 安装路径 INSTALL_C_EXAMPLES=ON \ C demo
INSTALL_PYTHON_EXAMPLES=ON \ Python demo
OPENCV_EXTRA_MODULES_PATH=/home/pi/…/opencv/opencv_contrib/modules
你的OpenCV_Contrib 路径 BUILD_EXAMPLES=ON \ 编译demo WITH_LIBV4L=ON
\ 开启Video for Linux PYTHON3_EXECUTABLE=/usr/bin/python3.7 \ Python3.7
树莓派python 路径 PYTHON_INCLUDE_DIR=/usr/include/python3.7 \ Python3.7
include 文件夹
PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so
Python3.7 库
PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include
\ Python3 Numpy安装路径 …
7、编译:
这里使用make 、不知道为什么用make -j4老出错,所以用make
出现报错
把下载文件里面的opencv-补充文件.zip解压,全选这些文件,利用WInSCP复制到树莓派的/home/pi/…/opencv_contrib/modules/xfeatures2d/src目录下
然后继续make编译
又接着会报错:
复制/home/pi/opencv/modules/features2d/test路径下的这两个文件
到/home/pi/opencv_contrib/modules/xfeatures2d/test目录下
然后修改test_features2d.cpp文件里面的内容如下图:
继续编译
又会报错
这回看报错的路径和缺少的文件到/home/pi/opencv/modules/features2d/test路径下找到相应的文件,复制到
/home/pi/opencv_contrib/modules/xfeatures2d/test里面去,看这个文件是哪里出的错,比如
就是这个路径下的这个文件调用的时候报错了,去这个路径下找到test_rotation_and_scale_invariance.cpp然后修改#include 的路径如:
继续make,如果发生错误,继续利用上述方法解决
8、编译完成后安装
sudo make install
输入python3后import一下这样就行了
9、测试代码:
# -*- coding:utf-8 -*-
import cv2
import numpy as np
cv2.namedWindow("gray")
img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像
cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线
cv2.imshow("gray",img)#显示图像
#循环等待,按q键退出
while True:
key=cv2.waitKey(1)
if key==ord("q"):
break
cv2.destoryWindow("gray")
这样就是成功了,哈哈哈