【OpenCV】為樹莓派(ARM)交叉編譯OpenCV
之前都是直接在樹莓派上從原始碼編譯OpenCV,但是速度太感人,而且也不符合嵌入式開發的真實場景,並不是所有的嵌入式裝置都有樹莓派這麼多的硬體資源的,得益於樹莓派官方提供的交叉編譯工具鏈,我們可以在自己的電腦中為樹莓派交叉編譯OpenCV,所以本著學習的態度,就再重新編譯一遍OpenCV
安裝依賴環境
sudo apt-get update
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install cmake cmake-qt-gui
sudo apt-get install libgtk2.0 -dev
sudo apt-get install pkg-config
sudo apt-get install python-dev python-numpy
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev
下載原始碼
cd ~
mkdir opencv-build && cd opencv-build && mkdir build && mkdir install
git clone https://github.com/opencv/opencv.git
cd build
生成Makefile
OpenCV需要使用Cmake生成Makefile,但是使用命令列執行cmake命令很繁瑣,因為你需要配置一大堆的路徑,導致命令很長,所以我們使用圖形介面的cmake工具
開啟Cmake之後,首先設定原始碼目錄和編譯目錄,分別選擇opencv目錄和build目錄
點選左下角的Configure,選擇最後一項
點選Next之後,需要設定目標系統的名稱,交叉編譯器的的路徑,以及目標機的根目錄,根據實際情況設定即可
點選Finish,配置完成之後會有一片紅色的區域,那些是可以配置的選項
這裡需要把BUILD_JPEG和BUILD_PNG
CMAKE_INSTALL_PREFIX
,修改為~/opencv-build/install
,之後再次點選Configure,如果沒有出錯會變成全白,最後點選Generate即可。
附加配置
此時並不能直接編譯,還需要新增一些選項,進入 ~/opencv-build/build
目錄,使用gedit開啟 CMakeCache
檔案,搜尋 CMAKE_EXE_LINKER_FLAGS
,新增 -lpthread -lrt -ldl
,儲存即可。
將終端定位到build目錄,執行
make -j8
根據你電腦的CPU的核心數修改 j 後面的引數,一般編譯時間在10分鐘左右。
安裝
首先執行
make install
這時所有OpenCV的元件都在 ~/opencv-build/install
,你可以通過任何你喜歡的方式放到樹莓派的 /usr/local
下的相應目錄中即可。
OpenCV for Python
這種安裝方式只能讓C/C++使用OpenCV庫,如果你還需要Python,那麼只需要在樹莓派下執行以下命令即可。
sudo apt-get install python-opencv
相關推薦
【OpenCV】為樹莓派(ARM)交叉編譯OpenCV
之前都是直接在樹莓派上從原始碼編譯OpenCV,但是速度太感人,而且也不符合嵌入式開發的真實場景,並不是所有的嵌入式裝置都有樹莓派這麼多的硬體資源的,得益於樹莓派官方提供的交叉編譯工具鏈,我們可以在自己的電腦中為樹莓派交叉編譯OpenCV,所以本著學習的態
【POCO】POCO學習總結(三)——交叉編譯
最小功能編譯 編譯選項:–minimal :只構建XML, JSON, 工具 and 網路 1 修改配置檔案 $ vi poco-1.7.8p3-all/build/config/ARM-Linux 13 LINKMODE ?
【Redis】在樹莓派(Raspberry Pi)上編譯 redis
在 Raspberry Pi 3B 上編譯 Redis 主機硬體:Raspberry Pi 3B 系統:Ubuntu MATE 16.04 編譯器版本: gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0 Overview
【POCO】POCO學習總結(四)——MinGW編譯poco
在window下使用MinGW編譯poco 使用MSYS 下載MSYS 安裝 執行mingw-get-setup.exe,只選擇安裝msys-base(mingw我使用Qt中自帶的) 配置 開啟C:\MinGW\msys\1.0\ms
【轉】OpenLayers專案分析(五) 資料解析以GML為例
前面也提到過,OpenLayers設計是符合標準的,有良好的框架結構和實現機制,非常值得學習。OpenLayers支援的格式比較多,有XML、GML、GeoJSON、GeoRSS、JSON、KML、WFS等。這回主要以GML為例來看OpenLayers 資料的解析過程。
【php】面向對象(一)
打電話 成員方法 駝峰命名 bject 內部 自動 正在 自己 div 1. 學習面向對象的目標: a) 語法的學習: b) 編程思想的學習: i. 過程化: ii. 面向對象:2. 比較(有對象和沒對象的區別) a) 沒對象: i. 我餓了 自己
【php】面向對象(五)
row 操作類 面向對象 ssa getline var pre span 錯誤信息 一、 類型約束: a) 約束函數可傳入的參數類型二、 類的遍歷 a) Foreach b) 可以將類當中的所有成員屬性遍歷出來三、 關於操作類與對象的一些函數: a) 判斷函數
【php】面向對象(三)
lamp1 變量 步驟 efi 第一個 面向對象 我們 ati 單例 知識點關鍵詞:FSCICATS一、 f => final: a) 是一個修飾符,用來修飾類和成員方法 b) 使用final修飾符修飾的類不能被繼承,使用final修飾符修飾的成員方法,不能被重寫
Android自己定義組件系列【6】——進階實踐(3)
err ack XML @+ layout apk get ast edi 上一篇《Android自己定義組件系列【5】——進階實踐(2)》繼續對任老師的《可下拉的PinnedHeaderExpandableListView的實現》進行了分析,這一篇計劃中間插一段“知識點
Android自己定義組件系列【5】——進階實踐(2)
col fonts tle 適配 pack tom ica void log 上一篇《Android自己定義組件系列【5】——進階實踐(1)》中對任老師的《可下拉的PinnedHeaderExpandableListView的實現》前一部分進行了實現,這一篇我們來看看Ex
Python自動化開發課堂筆記【Day06】 - Python進階(類)
擴展性 程序 lex 類名 人物 優點 ini 參數 self. 類與對象 面向過程的程序設計: 優點:極大的降低了程序的復雜度 缺點:一套流水線或者流程就是用來解決一個問題,生產汽水的流水線無法生產汽車,即使能,也是得大改,改一個組件,牽一發而動全身面向對象的程序設計
【原創】淺談webview(一)——驚鴻一瞥
版本 開發 spa 占用 混合 原創 大量 功能性 內存泄漏 眾所周知,APP開發過程中經常會通過webview實現HTML5(H5)的渲染,實現H5和Native的混合開發(Hybrid Development)。Hybrid Development可以加速
luogu_3379 【模板】最近公共祖先(LCA)
span oid ont return mes ace print next using #include<bits/stdc++.h>using namespace std;#define N 500010*2struct edge{int v,next;}
【轉】Nodejs學習筆記(一)--- 簡介及安裝Node.js開發環境
ack 目錄 javascrip 難度 時間 網站開發 clas jetbrains 常用 目錄 學習資料 簡介 安裝Node.js npm簡介 開發工具 Sublime Node.js開發環境配置 擴展:安裝多版本管理器 學習資料 1.深入淺出Node.j
【二】遺傳算法(GA)的MATLAB實現
tool view ima baidu ges matlab實現 編程 from 函數調用 essay from:https://wenku.baidu.com/view/ce45bbf44693daef5ef73df3.html 一、MATLAB編程實現GA
樹莓派進階之路 (023) - Windows下用串行連接控制樹莓派(轉)
最新版 一個 問題 conn get 鏡像 under tty 打開 轉載:http://shumeipai.nxez.com/2014/05/04/under-windows-serial-connection-control-raspberry-pi.html 在沒有鍵
P3391 【模板】文藝平衡樹(Splay)
spa 標題 -s gets 需要 () 序列 代碼 輸入 題目背景 這是一道經典的Splay模板題——文藝平衡樹。 題目描述 您需要寫一種數據結構(可參考題目標題),來維護一個有序數列,其中需要提供以下操作:翻轉一個區間,例如原有序序列是5 4 3 2 1,翻轉區間是[2
【轉載】CSS3之Clip(裁剪)拓展閱讀
很多 fix 以及 flow script stat browser hid 一定的 Clip屬性是大家經常會誤解的一個屬性,這篇文章幫助大家充分的了解和學習clip屬性,用這個屬性制作出更好的效果。 我可以確定Clip屬性有很多同學並不知道,因為這個屬性使用率非常的底,我
【51nod1519】拆方塊[Codeforces](dp)
mes str time get view space return .com sed 題目傳送門:1519 拆方塊 首先,我們可以發現,如果第i堆方塊被消除,只有三種情況: 1、第i-1堆方塊全部被消除; 2、第i+1堆方塊全部被消除;(因為兩側的方塊能夠
【bfs】奇怪的電梯(P1135)
site 而且 empty ans 整數 print bsp size col 題目描述 呵呵,有一天我做了一個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且第i層樓(1<=i<=N)上有一個數字Ki(0<=Ki<=N)。電梯只有四個