树莓派3B/3B+和4B安装OpenCV教程 (屡试不爽)

    

安装前准备

红尘小说网 https://wap.zuxs.net/
  1. 在树莓派上拓展文件系统

    如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间。

    具体步骤如下:

      1.在树莓派终端(或者SSH)上输入:

1 $ sudo raspi-config

 

      2.然后选择“高级选项”菜单项

   

       3.然后选择“扩展文件系统”:

  

       4. 选择第一个选项“A1.Expand Filesystem”,按键盘上的Enter键,完成后点击“Finish”按钮,重新启动树莓派。

    如果不能重启,则可以执行以下操作:

1 $ sudo reboot

 

      重新启动后,文件系统已经扩展为包括micro-SD卡上的所有空间。可以通过执行 df -h 检查输出来验证磁盘是否已扩展。

1 $ df -h

 

 

  

 

      5. 此时我的树莓派文件系统已扩展为包含16GB的micor-SD卡。如果您使用的是8GB卡,则可能使用了将近50%的可用空间,

    因此,一件简单的事情就是删除LibreOffice和Wolfram引擎以释放Pi上的一些空间:

1 $ sudo apt-get purge wolfram-engine
2 $ sudo apt-get purge libreoffice*
3 $ sudo apt-get clean
4 $ sudo apt-get autoremove

 

 

  2.更换树莓派源为清华镜像源,防止后面下载GTK2.0失败。

    换源方法参考:https://www.cnblogs.com/gghy/p/11703606.html

安装步骤

   1.更新系统

1 $ sudo apt-get update && sudo apt-get upgrade

  

   2.在树莓派上安装OpenCV所需要依赖的工具和一些图像视频库

  • 安装包括CMake的开发人员工具

    1 // 安装build-essential、cmake、git和pkg-config
    2 sudo apt-get install build-essential cmake git pkg-config 

     

    • 安装常用图像工具包

      1 // 安装jpeg格式图像工具包
      2 sudo apt-get install libjpeg8-dev 

       

      1 // 安装tif格式图像工具包
      2 sudo apt-get install libtiff5-dev 

       

      1 // 安装JPEG-2000图像工具包
      2 sudo apt-get install libjasper-dev 

       

      1 // 安装png图像工具包
      2 sudo apt-get install libpng12-dev 

       

      • 安装常用的视频库

      1 //v4l中4后面的是 英文字母“l”
      2 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

       

        

      • 安装GTK2.0

        1 sudo apt-get install libgtk2.0-dev

         

      • 安装OpenCV数值优化函数包

      1 sudo apt-get install libatlas-base-dev gfortran

       

         

       

          3.下载编译OpenCV源码

      • 下载opencv3.4.3和opencv_contrib3.4.3

      1 // 下载OpenCV
      2 wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

       

        

      1 // 解压OpenCV
      2 unzip opencv-3.4.3.zip

       

        

      1 // 下载OpenCV_contrib库:
      2 wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

       

        

       

      1 // 解压OpenCV_contrib库:
      2 unzip opencv_contrib-3.4.3.zip
        
      • 配置CMake编译OpenCV 3环境

          使用CMake设置编译,然后运行 make 来编译OpenCV。这是整个过程中耗时最长的步骤,大约4个小时。

          回到OpenCV存储库并创建 build 文件夹,用来存放 CMake 编译时产生的临时文件。

      1 //具体路径请以实际为准
      2 cd ~/opencv-3.4.3
      3 
      4 // 新建build文件夹
      5 mkdir build
      6      
      7 // 进入build文件夹
      8 cd build
      9   

        

       

      •  设置CMake编译参数,安装目录默认为/usr/local

          注意参数名、等号和参数值之间不能有空格,每行末尾“\”之前有空格,这里使用换行符“\”是为了看起来工整,参数值最后是两个英文的点,意思是上级

        目录(【注意】如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/opencv_contrib-3.4.3/modules):

      /** CMAKE_BUILD_TYPE是编译方式
      * CMAKE_INSTALL_PREFIX是安装目录
      * OPENCV_EXTRA_MODULES_PATH是加载额外模块
      * INSTALL_PYTHON_EXAMPLES是安装官方python例程
      * BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON,要C++例程的话在最后一行前加参数INSTALL_C_EXAMPLES=ONINSTALL_CXX_EXAMPLES=ON)
      **/
       
      sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
          -D INSTALL_PYTHON_EXAMPLES=ON \
          -D INSTALL_CXX_EXAMPLES=ON \
          -D BUILD_EXAMPLES=ON ..
       

        

       

           配置完后如下图:

        

       

      • 备份build文件中的东西

           因为下一步的编译会使用build文件中的东西,假如编译失败后还要重新进行cmake,比较耽误时间,这里可以直接备份一下cmake好的build文件夹,

        命名为build1,重新make的时候可以拿来用。

      1 //返回上层目录
      2 cd ..
      3 //备份release文件夹
      4 cp -r release ./release1

        

      • 为树莓派增加SWAP

          在开始编译之前,建议你增加交换空间。这将使你使用树莓派的所有四个内核来编译OpenCV,而不会由于内存耗尽导致编译挂起。

          打开 etc dphys swapfile   文件:

      1 $ sudo nano /etc/dphys-swapfile

          然后编辑 CONF_SWAPSIZE  变量:

        

       

            注意:此处我将交换空间从100MB增加到2048MB;如果你不执行此步骤,你的树莓派编译时很可能挂起。

          重新启动交换服务:

      1 $ sudo /etc/init.d/dphys-swapfile stop
      2 $ sudo /etc/init.d/dphys-swapfile start

        

       

           注意:增加交换空间的大小是烧坏树莓派 microSD卡的好方法。基于闪存的存储只能执行有限数量的写操作,直到该卡基本不能够容纳1和0。我们只能在短时间内

        启动大型交换,所以这没什么大问题的。

      • 编译OpenCV 3

      1 /**
      2 * 以管理员身份,否则容易出错
      3 * make命令参数-j4指允许make使用最多4个线程进行编译,这样编译速度会更快
      4 * 可以根据自己机器的情况进行更改
      5 * 使用tee命令可以将编译过程中终端显示的信息保存到make.log文件中,便于查看,这样即使VNC断线,终端的* 信息太多看不到,也可以通过make.log文件查看编译过程。
      6 **/
      7  
      8 sudo make -j4 2>&1 | tee make.log

        

       

          如果看到进度编译到100%,那么说明编译安装成功。

        

      1 // 安装
      2 sudo make install
      3  
      4 // 更新动态链接库
      5 sudo ldconfig

         

          注意: 不要忘记回到 /etc/dphys-swapfile 文件:

             1.将 CONF_SWAPSIZE 重置为 100MB

             2.重新启动交换服务

      其他配置

         设置库的路径,相当于windows下的环境变量,便于使用OpenCV库,也可以不进行设置,使用的时候说明路径也可。例如在编译时说明使用库的路径是 -L/usr/local/lib 

       

        1.配置opencv.conf 

         打开opencv.conf配置文件,在末端加入如下内容: 

       1 //这里我使用的是树莓派默认的nano,也可以使用vim、gedit.打开opencv.conf文件
       2 sudo nano /etc/ld.so.conf.d/opencv.conf
       3 
       4 /**
       5 *在末端添加如下内容
       6 *注意:?表示一个空格,可能原因是有的语言要求最后有一个空格才可以编译通过。
       7 **/
       8 /usr/local/lib
       9 ?
      10 
      11 //加载一下
      12sudo ldconfig

         

        2.打开 bash.bashrc 配置文件 

      1 //打开bash.bashrc配置文件
      2 sudo gedit /etc/bash.bashrc
      3 
      4 
      5 // 在最后添加如下内容
      6 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig       
      7 export PKG_CONFIG_PATH

         

        3.重启树莓派

      1 sudo reboot

       

       检测OpenCV使用是否正常

        python程序

       1 import cv2
       2 import numpy as np
       3 cv2.namedWindow("gray")
       4 img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像
       5 cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线
       6 cv2.imshow("gray",img)#显示图像
       7 #循环等待,按q键退出
       8 while True:
       9     key=cv2.waitKey(1)
      10     if key==ord("q"):
      11         break
      12 cv2.destoryWindow("gray")

        保存文件为 test.py ,并在终端运行程序

      1 sudo python3 test.py

        运行结果如下:

        

       

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 树莓派3b 是一种小型计算机,可以应用于各种嵌入式系统中。结合opencv图像处理库,可以实现人脸识别门禁系统。 在系统中,树莓派3b作为主控制器,通过摄像头采集图片,并使用opencv进行图像处理和人脸识别。当有人靠近门口时,树莓派可以识别出其面部信息,并与已存储的人脸数据库进行对比,从而确定是否有权限进入。 为了保证系统的安全性,可以通过添加语音控制和身份验证等功能来进一步加强系统的安全性。同时可以加入实时监控功能,将采集的画面实时传输至管理人员,及时反馈人员进出信息。 总体来说,基于树莓派3bopencv的人脸识别门禁系统有着较高的安全性、高效的运行速度以及良好的稳定性等优点,可以应用于学校、公司等地的门禁系统中。 ### 回答2: 随着人们对门禁安全性的日益重视,基于树莓派3bOpenCV的人脸识别门禁系统得到越来越广泛的应用。 首先,使用树莓派3b可以实现低成本的门禁控制系统。树莓派作为一种单片机,它既可以作为一个微型计算机来完成门禁控制系统的主体功能,又可以根据不同系统的需求接入不同的外设,如门禁读卡器、门铃、LED灯等。 其次,OpenCV是一款强大的开源计算机视觉库,它支持多种计算机视觉算法,包括人脸检测和识别。人脸识别门禁系统主要通过将门禁区域内的摄像头与OpenCV进行连接,实现对人脸的实时监测和识别,从而控制门禁的开启与关闭。OpenCV的高精度识别,可以大大提高门禁性能。 最后,人脸识别门禁系统可以应用于多种场所,如工厂、学校、小区等,实现了高效门禁控制、流畅通行、安全管理等功能。同时,基于树莓派3BOpenCV的门禁系统不仅成本低、性能高,而且通过不断地更新软件算法,也可以不断地提升门禁系统的安全性级别,拓展门禁系统的应用领域。 ### 回答3: 基于树莓派3bopencv的人脸识别门禁系统是一种非常先进的智能门禁系统。该系统可以根据注册的人脸信息进行快速准确的身份识别,并控制门禁的进出。该系统的核心技术是使用opencv对摄像头捕捉到的图像进行处理和分析,找出其中的人脸特征,并与已有的人脸模板进行匹配。 在使用该门禁系统时,用户首先需要将自己的人脸信息进行注册,包括姓名、照片等。当用户来到门禁处时,门禁系统会自动对其进行人脸识别,并与注册时的信息进行匹配,如果匹配成功,系统会自动开启门禁,否则门禁将无法开启。该系统不仅可以提高门禁的安全性和便利程度,还可以减少传统门禁系统的管理和维护成本。 该门禁系统的优势在于其高精度、高速度、高稳定性、低成本、易操作等特点,可以应用于企业、学校、公共场所等各种场合。同时,该系统还具有很好的扩展性和可定制性,可以根据用户的需求进行定制和升级。但是,该系统也存在一些缺点,如依赖网络环境、对光线的要求较高等,需要用户在使用时注意避免这些问题的影响。 总之,基于树莓派3bopencv的人脸识别门禁系统是一种非常实用和先进的门禁系统,可以为用户提供更加便捷、安全、高效的出入系统。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值