查看: 3242|回复: 5

【BPI-M2 berry试用心得】香蕉编译opencv3.0.0

[复制链接]
  • TA的每日心情
    开心
    2017-12-20 11:14
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-10-22 15:27:06 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ky123 于 2017-10-23 13:44 编辑

    目录
    1、准备工作
    2、编译opencv3.0.0

    -------------------------------------------------------------------
    1、准备工作
    1.1 系统烧写:

    准备两张8G tf卡或者一张16gTF卡。
    8gtf卡情况:
    一张烧写最新的Stretch版本的系统,一张格式化为ext4的U盘待用
    16gtf卡情况:
    烧写系统完成后,运行扩展文件系统

    1.2 依赖安装
    将下面命令拷贝到脚本,运行该脚本
    1. sudo apt-get purge wolfram-engine
    2. sudo apt-get purge libreoffice*
    3. sudo apt-get clean
    4. sudo apt-get autoremove
    5. sudo apt-get update && sudo apt-get upgrade
    6. sudo apt-get install build-essential cmake pkg-config
    7. sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
    8. sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    9. sudo apt-get install libxvidcore-dev libx264-dev
    10. sudo apt-get install libgtk2.0-dev libgtk-3-dev
    11. sudo apt-get install libcanberra-gtk*
    12. sudo apt-get install libatlas-base-dev gfortran
    13. sudo apt-get install python2.7-dev python3-dev
    复制代码
    1.3 下载OPENCV源码
    先将之前那个8gU盘插到香蕉派上,并cd到U盘目录下
    1. cd /media/pi/ccc
    复制代码
    下载源码与相关模块,并解压
    1. git clone https://github.com/Itseez/opencv.git
    2. git clone https://github.com/Itseez/opencv_contrib.git
    复制代码
    2.安装opencv3.0.0
    我使用的python2.7,因此用python2.7的安装过程为例,首先安装虚拟环境和numpy,numpy是个好东西,做过深度学习的都知道很多开源库都离不开这个库
    1. sudo pip install virtualenv virtualenvwrapper
    复制代码
    安装完成后,进行配置并使其生效
    1. vim ~/.profile
    复制代码
    末尾添加以下配置
    1. # virtualenv and virtualenvwrapper
    2. export WORKON_HOME=$HOME/.virtualenvs
    3. source /usr/local/bin/virtualenvwrapper.sh
    复制代码
    生效配置文件
    1. source ~/.profile
    复制代码
    接着创建用于编译的虚拟环境
    1. mkvirtualenv cv -p python2
    复制代码
    可以看到,命令行前面多了(cv)字眼,表示正在此环境下运行,接下来的操作都在此环境中进行。
    安装numpy
    1. pip install numpy
    复制代码
    开始编译opencv了,切换到opencv源码文件夹下,新建一个build文件夹,
    1. cd /media/pi/ccc/opencv-3.0.0
    2. mkdir build
    3. cd build
    复制代码
    新建一脚本,用于存放cmake的配置,cmake也有gui方式的配置,有兴趣可以自行百度
    1. cmake -D CMAKE_BUILD_TYPE=RELEASE \
    2.     -D CMAKE_INSTALL_PREFIX=/usr/local \
    3.     -D OPENCV_EXTRA_MODULES_PATH=/media/pi/ccc/opencv_contrib-3.0.0/modules \
    4.     -D BUILD_TESTS=OFF \
    5.     -D INSTALL_PYTHON_EXAMPLES=OFF \
    6.     -D BUILD_EXAMPLES=OFF ..
    复制代码
    运行该脚本,完成配置

    最后,运行make -j4
    成功的结果如下,(每一次成功编译的背后都隐藏着无数次次次次次次次次次次次的失败,现在树莓派上编译链已经算很好了,想当时,没有编译链的时候,编译opencv那就一个心碎,怎么配都不成功,我记得我第一次配置的时候花了半个月,当时是一块资料非常少的板子,你要在电脑上安装交叉编译链,安装环境,在ubuntu上安装后,编译通过了,还要做镜像,别提有多麻烦了,树莓派现在好多了。
    1.jpg

    make的时间非常久,都够你睡个觉了,make无误后开始安装
    1. sudo make install
    复制代码
    2.jpg
    最后一步了,建立链接
    1. sudo ldconfig
    2. 由于我是python,因此建立链接的命令如下
    3. cd ~/.virtualenvs/cv1/lib/python2.7/site-packages/
    4. ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-6-28 14:17
  • 签到天数: 299 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-10-23 20:48:05 | 显示全部楼层
    ext4格式可以吗?我用nfs格式的u盘编译opencv3.3.0,编译到33%左右老是说系统不允许。网上说是必须在home目录下编译才不会出错。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2017-10-24 09:48:37 | 显示全部楼层
    day_day 发表于 2017-10-23 20:48
    ext4格式可以吗?我用nfs格式的u盘编译opencv3.3.0,编译到33%左右老是说系统不允许。网上说是必须在home目 ...

    你跟挤挤都点搭
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-6-28 14:17
  • 签到天数: 299 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-10-24 22:08:56 | 显示全部楼层
    ky123 发表于 2017-10-24 09:48
    你跟挤挤都点搭

    由于没用大的卡,只能用u盘空间,之前的时间全浪费在非正常编译上,结果啥都没弄出来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-20 11:14
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2017-10-25 12:30:26 | 显示全部楼层
    day_day 发表于 2017-10-24 22:08
    由于没用大的卡,只能用u盘空间,之前的时间全浪费在非正常编译上,结果啥都没弄出来 ...

    我记得我ext4也是会出错 ,但是把opencv contrib这个放在/home/pi下,然后配置指令指向这个目录
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-6-28 14:17
  • 签到天数: 299 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2017-10-25 23:09:41 | 显示全部楼层
    手手挤挤 发表于 2017-10-25 12:30
    我记得我ext4也是会出错 ,但是把opencv contrib这个放在/home/pi下,然后配置指令指向这个目录 ...

    哦哦,那就是源码contrib源码要在home下……迟点试试
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-3-19 10:57 , Processed in 0.204532 second(s), 29 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.