樹莓派安裝OpenCV

安裝opencv

說(shuō)明:
硬件:raspberry 3B
OpenCV:3.4.1
SD卡剩余空間至少保證10G以上

本教程是連帶opencv_contrib的編譯方式欢搜,帶opencv_contrib的編譯時(shí)間會(huì)更長(zhǎng)一些,大概6-7小時(shí)灼捂,如果是3b+的話更快一些池户,也要大概4-5小時(shí)咏雌。
另,大家編譯的時(shí)候一定要用質(zhì)量好的電源校焦,防止編譯時(shí)因?yàn)樘濍娭貑⒒蛘邿龎臉漭伞?/p>

為什么裝OpenCV_contrib

OpenCV_contrib庫(kù)中包括了人臉識(shí)別赊抖、matlab調(diào)用、RGB加工寨典、深層神經(jīng)網(wǎng)絡(luò)等內(nèi)容氛雪,顯然opencv異常強(qiáng)大。官方文檔展示了庫(kù)的完整內(nèi)容凝赛。

  • 安裝CMake等編譯openCV源碼的工具

    sudo apt-get install build-essential cmake pkg-config
    
  • 安裝幾種常見格式的圖像操作的包注暗,方便我們能從硬盤上讀取不同格式的圖像

    sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
    
  • 同樣的,我們也需要視頻操作的包

    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    
  • 下面安裝gtk2.0(樹莓派很可能下載錯(cuò)誤墓猎,更換中科大或者清華源即可捆昏,ubuntu有可能出現(xiàn)包版本過(guò)高的情況,需要將依賴包降級(jí)安裝)

     sudo apt-get install libgtk2.0-dev
    
  • 優(yōu)化函數(shù)包

      sudo apt-get install libatlas-base-dev gfortran
    

    執(zhí)行到這里就把OpenCV的依賴包全部安裝好了毙沾,之后要開始編譯OpenCV源代碼了骗卜,請(qǐng)大家用wget工具下載到用戶目錄下(源碼要放在有執(zhí)行權(quán)限的位置,不是安裝位置)左胞,命令如下:

  • 下載OpenCV

     wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
    
  • 解壓OpenCV

     unzip opencv-3.4.1.zip
    
  • 下載OpenCV_contrib庫(kù):

     wget -O opencv_contrib-3.4.1.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
    
  • 解壓OpenCV_contrib庫(kù):

     unzip opencv_contrib-3.4.1.zip
    

    找到你下載的源碼文件夾并打開寇仓,tar.gz解壓后文件夾名應(yīng)該是opencv-3.4.1(版本號(hào)可能會(huì)變化),git方式下載的文件夾名應(yīng)該是opencv烤宙。

  • 打開源碼文件夾遍烦,這里以我修改文章時(shí)最新的3.4.1為例

      cd opencv-3.4.1
    
  • 之后我們新建一個(gè)名為release的文件夾用來(lái)存放cmake編譯時(shí)產(chǎn)生的臨時(shí)文件:

      mkdir release
    
  • 進(jìn)入release文件夾

      cd release
    
  • 設(shè)置cmake編譯參數(shù),安裝目錄默認(rèn)為/usr/local躺枕,剛才注意參數(shù)名服猪、等號(hào)和參數(shù)值之間不能有空格,但每行末尾“\”之前有空格拐云,參數(shù)值最后是兩個(gè)英文的點(diǎn):

    sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON ..
    
    • CMAKE_BUILD_TYPE是編譯方式
    • CMAKE_INSTALL_PREFIX是安裝目錄
    • OPENCV_EXTRA_MODULES_PATH是加載額外模塊
    • INSTALL_PYTHON_EXAMPLES是安裝官方python例程
    • BUILD_EXAMPLES是編譯例程(這兩個(gè)可以不加罢猪,不加編譯稍微快一點(diǎn)點(diǎn),想要C語(yǔ)言的例程的話叉瘩,在最后一行前加參數(shù)INSTALL_C_EXAMPLES=ON \)
      之后開始正式編譯過(guò)程(如果之前一步因?yàn)榫W(wǎng)絡(luò)問題導(dǎo)致cmake下載缺失文件失敗的話膳帕,可以嘗試使用手機(jī)熱點(diǎn),并將release文件夾刪除掉薇缅,重新創(chuàng)建release文件夾并cmake):


      image.png
  • 以管理員身份編譯 (需要時(shí)間大概7個(gè)小時(shí),耐心等待吧)

      sudo make
    
  • 安裝

      sudo make install
    
  • 更新鏈接庫(kù)

      sudo ldconfig
    
  • 到這里危彩,OpenCV的編譯完成攒磨,已經(jīng)可以正常使用了,下面我提供一個(gè)Python語(yǔ)言的測(cè)試程序恬砂,用來(lái)測(cè)試OpenCV是否正常:

      # -*- 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)#顯示圖像
      #循環(huán)等待咧纠,按q鍵退出
      while True:
          key=cv2.waitKey(1)
          if key==ord("q"):
              break
      cv2.destoryWindow("gray")
    

Python3 調(diào)用OpenCV

還有大家注意,官方并沒有給Python3的支持泻骤,所以大家要用python的話漆羔,先用Python2吧。

  • 如果要用python3的話可以使用需要安裝python3支持的opencv狱掂。

      sudo pip3 install opencv-python
    
      sudo pip3 install opencv-contrib-python
    
    image.png
    image.png
  • 遇到錯(cuò)誤

缺少libhdf5

    pi@raspberrypi:~/Desktop $ sudo python opencv.py 
    Traceback (most recent call last):
      File "opencv.py", line 1, in <module>
        import cv2
      File "/usr/local/lib/python3.5/dist-packages/cv2/__init__.py", line 3, in <module>
        from .cv2 import *
    ImportError: libhdf5_serial.so.100: cannot open shared object file: No such file or directory
    
![image.png](https://upload-images.jianshu.io/upload_images/6540285-a5d6cab5198b4e2f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 安裝下面依賴
    sudo apt-get update
    sudo apt-get install libhdf5-dev libhdf5-serial-dev

缺少libQtGui.so

  • 錯(cuò)誤信息

      Traceback (most recent call last):
        File "opencv.py", line 1, in <module>
          import cv2
        File "/usr/local/lib/python3.5/dist-packages/cv2/__init__.py", line 3, in <module>
          from .cv2 import *
      ImportError: libQtGui.so.4: cannot open shared object file: No such file or directory
    
    image.png
  • 安裝依賴

      sudo apt-get update
      sudo apt install libqtgui4
    

成功導(dǎo)入cv3

  • 打印信息:
    pi@raspberrypi:~/Desktop $ python 
    Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
    [GCC 6.3.0 20170124] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cv2
    >>> 
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末演痒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子趋惨,更是在濱河造成了極大的恐慌鸟顺,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件器虾,死亡現(xiàn)場(chǎng)離奇詭異讯嫂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)兆沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門欧芽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人葛圃,你說(shuō)我怎么就攤上這事千扔。” “怎么了库正?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵曲楚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我褥符,道長(zhǎng)龙誊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任喷楣,我火速辦了婚禮趟大,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抡蛙。我一直安慰自己护昧,他們只是感情好魂迄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布粗截。 她就那樣靜靜地躺著,像睡著了一般捣炬。 火紅的嫁衣襯著肌膚如雪熊昌。 梳的紋絲不亂的頭發(fā)上绽榛,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音婿屹,去河邊找鬼灭美。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昂利,可吹牛的內(nèi)容都是我干的届腐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蜂奸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼犁苏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扩所,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤围详,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后祖屏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體助赞,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年袁勺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雹食。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡魁兼,死狀恐怖婉徘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咐汞,我是刑警寧澤盖呼,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站化撕,受9級(jí)特大地震影響几晤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜植阴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一蟹瘾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掠手,春花似錦憾朴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春砾省,著一層夾襖步出監(jiān)牢的瞬間鸡岗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工编兄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轩性,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓狠鸳,卻偏偏與公主長(zhǎng)得像揣苏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子件舵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容