opencv 源碼編譯

opencv自己編譯

之前用樹莓派做人臉識別,臺式機用的64位ubuntu訓練模型,樹莓派用的32位raspi系統(tǒng)使用。
以下提供給大家參考:
?以下內(nèi)容為快速安裝的方式,無需自己編譯喲!此方法很方便

一般化快速安裝環(huán)境

  1. 依賴安裝
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libhdf5-dev libhdf5-serial-dev
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
  1. 翻墻下載此內(nèi)容:點我下載
  2. cd到下載的內(nèi)容位置進行安裝:
sudo pip3 install opencv_contrib_python-3.4.3.18-cp37-cp37m-linux_armv7l.whl

直接import就可以玩了

對于一般的小伙伴來說,以上安裝opencv方案已經(jīng)完美了
但對我來說,其結(jié)果是啪啪啪打臉,因為我使用的sklearn訓練的模型在跨系統(tǒng)下根本不能兼容。報錯如下:(此錯誤為python讀取模型文件的錯誤,不是opencv的錯喲!)

ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'

我嘗試過將model文件轉(zhuǎn)換成可以序列的json,也總是失敗,一怒之下,直接把樹莓派刷成了專門適用于樹莓派4b8g的ubuntu server 64bit系統(tǒng)
(現(xiàn)在時間為2020-10-27,ubuntu mate還沒有4b版本的系統(tǒng),官方測試版raspi64bit垃圾)
然而此ubuntu server系統(tǒng)為aarch64,沒有這類opencv環(huán)境或者whl文件可以用,因此需要自己使用opencv源碼進行編譯!

自己編譯opencv由此開始:

================下面開始真正的操作===========================
利用apt-get先把上面?中的依賴下一遍

  1. 下載你想要的opencv源碼和opencv-contrib源碼(兩個都得有??!),如果git clone速度慢,可以直接去github或者官網(wǎng)去下,
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
  1. 進入opencv目錄進行如下操作:
cd opencv
mkdir build
cd build
  1. 構(gòu)建項目,注意參數(shù)的地址一定要對應(yīng)你自己電腦(樹莓派)上的python位置和環(huán)境,小編為了便于觀看和理解,擅自給每條指令加了回車,所以使用的時候需要去掉回車,用空格切分:
cmake -D CMAKE_BUILD_TYPE=Release 
-D CMAKE_INSTALL_PREFIX=/usr/local 
-D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules 
PYTHON3_EXECUTABLE = /usr/bin/python3
PYTHON_INCLUDE_DIR = /usr/include/python3.5
PYTHON_INCLUDE_DIR2 = /usr/include/arm-linux-gnueabihf/python3.5m
PYTHON_LIBRARY = /usr/lib/arm-linux-gnueabihf/libpython3.5m.so
PYTHON3_NUMPY_INCLUDE_DIRS = /home/pi/.local/lib/python3.5/site-packages/numpy/core/include/
..
  1. 開始編譯,此過程超級漫長!我的小樹莓派用了2個多小時吧!
make -j4
sudo make install
  1. 刷新動態(tài)庫
sudo ldconfig

以上順利的話編譯完成了,進入python3之后使用import cv2進行測試,如果報某moudle找不到,根據(jù)信息進行pip3 install進行下載即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容