樹莓派4B:編譯安裝OpenCV3.4.7 (使用源碼形式進行編譯安裝)

一、環境介紹

開發板:樹莓派4B

OpenCV版本: 3.4.9

操作系統開發板原始自帶的32位操作系統

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

pi@raspberrypi:~ $ cat /proc/version
Linux version 4.19.97-v7l+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1294 SMP Thu Jan 30 13:21:14 GMT 2020

二、編譯安裝OpenCV

2.1 下載OpenCV

OpenCV下載地址:  https://opencv.org/releases/

我這裏下載的是:3.4.9版本

壓縮包的名稱: opencv-3.4.9.zip

操作樹莓派連接方式:使用windows遠程桌面連接。     

  遠程桌面不會看這裏:https://blog.csdn.net/xiaolong1126626497/article/details/106099194

2.2 安裝cmake

編譯OpenCV源碼需要使用cmake,爲了方便編譯,這裏下載安裝cmake圖像界面版本,方便可視化配置。

  命令行執行的命令如下:

sudo apt-get install cmake
sudo apt  install cmake-qt-gui
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

2.3 編譯前說明

樹莓派4B本身的空間不太夠用,我這裏是外插了一張16GB的SD-通過USB讀卡器接入,並在PC機上將這張SD卡格式化成ext4文件系統,在樹莓派上解壓編譯OpenCV源碼都在這張SD卡空間上進行。

注意: 一定要ext4文件系統,不能是FAT或者NTFS之類的文件系統。

2.4  編譯配置OpenCV源碼

這一步執行完要沒有報錯才行,也就是界面上不能報錯,有錯誤就根據提示解決錯誤。

執行完第2步之後,就關閉軟件,進入到第編譯目錄下,進行編譯安裝。

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/Build $cd /media/pi/sdcard/work/opencv-3.4.9/Build

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/Build $make && make install

編譯成功之後,將生成的庫文件和頭文件全部拷貝到/use目錄下一份。

2.5  測試OpenCV :  使用g++編譯示例代碼  

在OpenCV的samples/cpp/example_cmake 目錄下,有一份測試示例代碼,效果是打開攝像頭。

pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ g++ example.cpp -lopencv_calib3d -lopencv_objdetect -lopencv_core -lopencv_photo -lopencv_dnn -lopencv_shape -lopencv_features2d  -lopencv_stitching -lopencv_flann -lopencv_superres -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs  -lopencv_video -lopencv_imgproc -lopencv_videostab -lopencv_ml
pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ 
pi@raspberrypi:/media/pi/sdcard/work/opencv-3.4.9/samples/cpp/example_cmake $ ./a.out 

    要測試這份代碼,可以先找一個USB攝像頭插在樹莓派4B的USB口上。

2.6 測試python的OpenCV模塊

 進入python3的命令行,導入cv2模塊,查看OpenCV版本。

python2 也是正常的。

 

2.7  使用python調用OpenCV模塊,打開電腦攝像頭

import numpy as np
import cv2
#調用筆記本內置攝像頭,所以參數爲0,如果有其他的攝像頭可以調整參數爲1,2
cap=cv2.VideoCapture(0)
while True:
    #從攝像頭讀取圖片
    sucess,img=cap.read()
    #轉爲灰度圖片
    #gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    #顯示攝像頭,背景是灰度。
    #cv2.imshow("img",gray)
    cv2.imshow("img",img) #顯示彩圖
    #保持畫面的持續。
    k=cv2.waitKey(1)
    if k == 27:
        #通過esc鍵退出攝像
        cv2.destroyAllWindows()
        break
    elif k==ord("s"):
        #通過s鍵保存圖片,並退出。
        cv2.imwrite("image2.jpg",img)
        cv2.destroyAllWindows()
        break
#關閉攝像頭
cap.release()

下面公衆號裏全套單片機、QT、C、C++基礎教程、歡迎大家關注。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章