嵌入式開發之移植OpenCv可執行程序到arm平台


0. 序言

  • PC操作系統:Ubuntu 16.04
  • OpenCv版本:4.0
  • 交叉工具鏈:arm-linux-gnueabihf,gcc version 5.4.0
  • 目標平台:arm
  • 編譯時間:20181224
  • 建議新手先看交叉編譯的這篇文章:https://www.jianshu.com/p/0fcdce428d8f

1. 下載C++版本Eclipse

下載地址:https://www.eclipse.org/downloads/packages/ 選擇Linux 64位

2. 創建C++Project

  • 步驟1:File-New-Project..-C++Project-Next-輸入Project name-Next-輸入Author-Next:


     
     

     
     
  • 步驟2:默認Debug和Release:


     
     
  • 步驟3:輸入交叉編譯命令的前綴和交叉編譯所在的路徑並點擊Finish:
     
     

    說明:這里看不懂的,建議先看交叉編譯的文章:https://www.jianshu.com/p/0fcdce428d8f
  • 目錄結構:


     
     

3. 編寫C++代碼

  • 把Exam.cpp的代碼替換為以下代碼並保存:
 1 #include<opencv2/core.hpp>
 2 #include<opencv2/imgcodecs.hpp>
 3 #include<opencv2/imgproc.hpp>
 4 using namespace cv;
 5 int main(void)
 6 {
 7     Mat pic;
 8     pic=imread("gaoyuanyuan.jpg");
 9     Mat gray;
10     cvtColor(pic,gray,COLOR_BGR2GRAY);
11     imwrite("gray.png",gray);
12     return 0;
13 }
注意:這里一定要執行保存的操作。
 
 

4. 添加頭文件的路徑

  • 右擊項目Exam,選擇Properties並設置如圖選項,然后點擊Apply And Closed。


     
     

    說明:
    ① /usr/local/arm/opencv-arm/ 是交叉編譯執行make install后存放可執行文件的目錄,也就是CMAKE_INSTALL_PREFIX對應的目錄
    ② /usr/local/arm/opencv-arm/include/opencv4/ 對應Exam.cpp的代碼"#include<opencv2/core.hpp>"
    ,因為我的opencv4的下一級目錄是opencv2,opencv2里面存放的是頭文件。


     
     

5. 添加庫依賴

  • 右擊項目Exam,選擇Properties並設置如圖選項,然后點擊Apply And Closed。


     
     

     
     
注意:Libraries是手寫的,它會自動拼接lib和so字符找到指定的依賴。而path則是上上個圖展示的存放so文件的目錄的路徑。

6. 添加C++11新特性

  • Project->Properties->C/C++ Build->Settings->GCC G++ Compiler->Miscellaneous->Other flags 將-c -fmessage-length=0 改為 -c -fmessage-length=0 -std=c++11


     
    image.png

7. 項目Clean然后Build

  • Clean 是為了防止你中途沒有配置完Properties就Build項目:


     
     

    說明:Building file是原始我們的cpp文件,Building target指的是編譯cpp文件生成的可執行文件。

8. 導出可執行文件和so文件並執行

  • Exam可執行文件存放在生成的Debug目錄下:


     
     
  • so文件就是我們剛剛指定的libraries依賴的path路徑下的so文件:


     
     
  • 復制Exam可執行文件以及Exam.cpp程序所需的一張圖片到arm平台的一個目錄下,這里用到的圖片名稱為gaoyuanyuan.jpg
  • 復制so文件到arm平台的/lib文件夾下。
  • 進入Exam可執行文件和圖片所在的目錄,執行命令,就會生成一張gray.png圖片:
./Exam
 


作者:付凱強
鏈接: https://www.jianshu.com/p/f515357e1539
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM