OpenCV简介:
opencv是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一。它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法
安装完成后的演示:
树莓派3B+编译安装opencv3还是挺难的,主要没有靠谱的教程,因为执行过程中各种出错,要么缺少依赖,要么编译时候出错,最后用单核camake,花了2个小时20分钟,据说4核编译会更快,但是单核编译时温度就高达了60度上下了,我想幸亏没用4核编译,除非把它拿到空调下面,否则一定会烧坏了,我目前还是加了散热片和风扇的,总之慎用4核编译。
终端输入
python3
导入cv2库
import cv2
查看cv2版本
cv2.__version__
长横是两个英文输入法下面的下划线
Ctrl+D退出
命令行查看版本
pi@raspberrypi:~ $ opencv_version
3.4.2
树莓派自带有旧的opencv 2.4.9 只支持python2的,安装方法如下
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv -y
这样基于python2的opencv2就安装好了。
下面是安装基于python3的opencv3的方法,采用编译安装。先安装开发环境,集成环境,再去Github下载opencv3.4.2最新的版本,接着进行编译安装。
前期准备,下载opencv源码包
进入OpenCV官方下载页面https://opencv.org/releases.html
选择Sources类型 下载(这里以Opencv3.4.2为例)
下载好了用winSCP上传到pi用户的家目录方便进行操作
1 安装依赖包
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
2 编译 opencv
解压之前下载好的源码包```tar zxvf Opencv压缩包名称.tar.gz 想要解压的路径```
解压缩
pi@raspberrypi:~ $ pwd
/home/pi
tar -xvf opencv-3.4.2.tar.gz
tar -xvf opencv_contrib-3.4.2.tar.gz
新建目录opencv,将opencv3.4.2目录和opencv_contrib-3.4.2都放到这个目录下方便以后使用
mkdir opencv
cp -R opencv-3.4.2 opencv/opencv3
cp -R opencv_contrib-3.4.2 opencv/opencv_contrib
**进入OpenCV源码目录**
cd opencv/opencv3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install
所涉及的命令具体含义自行学习**CMake**的基本操作
cmake过程单核很漫长,我用了2小时20分钟,据说4很快,但是有报错和烧坏CPU的风险,所以没试
3 添加路径
配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到
sudo nano /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件中添加
/usr/local/lib
执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置bash
sudo nano /etc/bash.bashrc
在最末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效
source /etc/bash.bashrc
更新
sudo updatedb
4 测试
至此所有的配置都已经完成
下面用一个小程序测试一下
cd到/home/pi/opencv/opencv3/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行
cmake .
make
./opencv_example
即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功
pi@raspberrypi:~ $ opencv_version
3.4.2
5 问题
### error0:
在编译过程中会涉及到ippicv的下载,有时候下载很慢或者下载不能成功,解决方案有两种:
1.开启 科学上网
2.可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件
移动的时候,可以另外打开一个终端操作
下载地址```https://github.com/opencv/opencv_3rdparty/branches/all```(版本视终端提示而定)
### error1:
lib/libopencv_videoio.so.3.1.0: undefined reference to `gst_app_sink_pull_sample'
collect2: error: ld returned 1 exit status
modules/video/CMakeFiles/opencv_test_video.dir/build.make:388: recipe for target 'bin/opencv_test_video' failed
**solution:**
找到"OpenCVCompilerOptions.cmake"文件add_extra_compiler_option(-Werror=non-virtual-dtor)
一行添加 #http://stackoverflow.com/questions/27828740/opencv-3-0-videoio-error
### error2:
GstMiniObjectClass’ does not name a type
**solution2:**
```sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev ```
发表评论