查看: 2242|回复: 1

树莓派3b编译安装完整OpenCV4 for Python3

[复制链接]

主题

好友

4173

积分

状元

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 366 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2018-12-20 10:48:46 |显示全部楼层
    听说OpenCV更新到4.0版本了?那之前3.4.1版本的经验岂不是落后了?紧跟时代的步伐,赶快来试一下。本文是我在《树莓派3b编译安装完整OpenCV-3.4.1 for Python3》基础上的更新,有不清楚的可以看我3.4.1完整版教程。所需材料:树莓派3b、OpenCV4源码包(opencv-4.0.0.zip+opencv_contrib-4.0.0.zip)。
    首先是更新系统啦这里使用最新官方镜像文件“2018-11-13-raspbian-stretch-full.img”,
    sudo apt update && sudo apt upgrade
    这里之前已经更新过了,所以没有提示新的更新。之后去官网下载最新的源码包,解压,备用。

    推荐创建一个新的Python3虚拟环境,方法有很多,我使用的是pyvenv命令。由于本次编译安装使用了额外的opencv_contrib-4.0.0部分,编译的时候1GB内存+100MB SWAP交换文件不够用,建议手动调整SWAP大小至少1GB。不太清楚以上两个操作的朋友可以去爱板论坛Raspberry Pi主题区看我的另一篇文章《树莓派搭建基于Python3和OpenCV实现的解魔方机器人》
    之后就是安装一些依赖,命令如下:
    sudo apt install build-essential cmake pkg-configsudo apt install libjpeg-dev libtiff5-dev libjasper-dev libpng12-devsudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-devsudo apt install libxvidcore-dev libx264-devsudo apt install libgtk2.0-devsudo apt install libatlas-base-dev gfortransudo apt install python2.7-dev python3-devpip3 install numpy然后我们安装cmake的图形化界面来完成编译前的配置工作,注意如果使用虚拟环境,这里要先进入虚拟环境,然后在终端中执行以下代码,sudo apt install cmake-qt-guicmake-gui接着配置cmake,导入源代码路径,创建并导入build目录路径,并搜索"OPENCV_EXTRA_MODULES_PATH"补充拓展模块路径,选择好额外模块路径后点击Config,有部分文件会自动下载,会需要一些时间,部分文件名如下,xfeatures2d/boostdesc: Download: boostdesc_bgm.ixfeatures2d/boostdesc: Download: boostdesc_bgm_bi.ixfeatures2d/boostdesc: Download: boostdesc_bgm_hd.ixfeatures2d/boostdesc: Download: boostdesc_binboost_064.ixfeatures2d/boostdesc: Download: boostdesc_binboost_128.ixfeatures2d/boostdesc: Download: boostdesc_binboost_256.ixfeatures2d/boostdesc: Download: boostdesc_lbgm.ixfeatures2d/vgg: Download: vgg_generated_48.ixfeatures2d/vgg: Download: vgg_generated_64.ixfeatures2d/vgg: Download: vgg_generated_80.ixfeatures2d/vgg: Download: vgg_generated_120.idata: Download: face_landmark_model.dat第一次Configure参考下图:

    接着配置和Python3相关的一些参数,第二次Configure参考下图,重点检查选中项:


    然后点击Generate,进到之前创建好的build目录下,使用make -j4命令编译,整个过程大概两个半小时的样子。

    之后使用以下命令来安装:
    sudo make installsudo ldconfig最后需要解决编译后的库文件cv2.so被输出为cv2.cpython-35m-arm-linux-gnueabihf.so导致该模块在Python3中无法import进来的问题,以下三行代码解决问题:cd /usr/local/python/cv2/python-3.5/sudo cp cv2.cpython-35m-arm-linux-gnueabihf.so cv2.soln -s /usr/local/python/cv2/python-3.5/cv2.so cv2.so尝试在Python3中导入OpenCV4,成功!
    然后就是激动人心的时刻啦,我们尝试写一个OpenCV4的Python3小程序吧!
    import cv2print('OpenCV Version:',cv2.__version__)img = cv2.imread('./Test.jpg')cv2.imshow('Test.jpg',img)cv2.waitKey(0)cv2.destroyAllWindows()
    大功告成!喝杯咖啡,我们下次再见吧!
    回复

    使用道具 举报

    主题

    好友

    22

    积分

    白丁

    该用户从未签到

    发表于 2019-11-17 10:19:23 |显示全部楼层
    安装之后提示:
    cv2.error: /home/pi/Downloads/opencv-3.4.0/modules/highgui/src/window.cpp:611: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage
    不知道有没有碰到过
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|电路城

    GMT+8, 2019-12-12 12:02 , Processed in 0.104531 second(s), 13 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部