先說一下啊,我使用的python語言。
先說使用picamera這個硬件來做計算機視覺方面的事情的對於視頻流獲取的兩個方案。
使用picamera這個硬件的官方python庫---PiCamera這個庫來獲取視頻流,然後使用openCV來處理視頻流,然後動作。
直接使用openCV來獲取視頻流然後處理,不依賴任何的庫文件。
哈哈,這個裡面坑就太多了。大家自己做的時候要有心理準備,沒有個兩三遍這個環境都配置不會成功的。
一.使用PiCamera這個python庫來獲取視頻流
這個環境時比較寬鬆的,可以使用python2.7+opencv2.x或者python3.5+opencv3.x都是可以的,我都試過。教程我在以前應該發過,配置也很簡單。弊端也有很多,就不會說了。我不習慣用這個庫,還是直接全部都用opencv好。
二.直接都使用opencv。
這個最好就是python3.5+opencv3.x這個環境了。我使用的是python3.5+opencv3.4.1。opencv3.4.1使用源碼安裝。附一個opencv的源碼庫下載地址:https://opencv.org/releases.html。
附一個源碼安裝的教程吧:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
下載源碼,並且把源碼放在樹莓派合適的位置
unzip opencv- 3.x .x. zip
cd ~/opencv-3.x.x
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make
耐心等待2小時。
10. sudo make install
好了,檢驗一下opencv:
好了,我們還要做一件事,就是把樹莓派中內置的picamera打開:
sudo raspi-config
然後使用圖形界面設置,設置如下:
設置完成後,sudo reboot
下面就需要注意了,直接調用一個opencv獲取視頻流的程序,肯定是報錯了的。在opencv中cv2.VideoCapture(0)這個函數是獲取usb攝像頭的,不能用來直接獲取樹莓派內置的這個攝像頭(picamera)這個的,其實就是設備的驅動不一樣,你可以去查一下:ls /dev/video0*看看 有沒有相關的設備,肯定是沒有的,但是usb攝像頭設備肯定有video0這個設備節點。那麼使用攝像頭(picamera)能不能也生成這個設備節點呢?答案是肯定的。
其實只需要改一個文件就好了,看圖:注意路徑啊。
vim該文件改動如下:
保存退出後,在重啟一下。
然後ls /dev/video*下:是不是出現了video0這個設備節點了,那就太好了。
在附上一段簡單的使用opencv獲取視頻流的代碼:
閱讀更多 小5嵌入式 的文章