|
本章節將介紹 OpenCV 的移植方法,及結合 Qt 例程去進一步學習 OpenCV 識別圖像。本章節使用的資料已經放到了開發板網盤資料中,路徑為:“11_Linux 系統開發進階\85_章節_移植 OpenCv2.4.9 使用資料”。 我們需要準備的資料: 1. 開發板使用的是 i.MX6ULL 終結者,開發板里面是 Yocto 文件系統。 2. 使用 Ubuntu16.04 3. 提供 opencv 源碼“opencv-2.4.9.zip” 4. QT 測試例程 85.1 安裝交叉編譯工具 移植的 QT 系統需要的交叉編譯器就是我們編譯 qt 的編譯器,因為我們是 Yocto 系統,所以我們用編譯 Yocto 的編譯器來編譯 OpenCV。交叉編譯器為:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf。設置交叉編譯器請參考 i.MX6ULL 終結者-開發板使用手冊 4.3 章節 搭建交叉編譯環境。 85.2 搭建 OpenCv 編譯環境 1.我們將文件中提供的“opencv-2.4.9.zip”也就是 opencv 源碼通過 ssh 軟件移 ubuntu 下并解壓,作者將該文件放入了“/home/topeet/opencv2.4.9”目錄下,新建 opencvbuild 和 opencvinstall 文件夾,opencvbuild是構建目錄,opencvinstall 是安裝目錄如圖 85.2.1 所示。
2.OpenCV 2.2 以后版本需要使用 Cmake 生成 makefile 文件,因此需要先安裝 cmake。ubuntu 下安裝 cmake 比較簡單,使用命令“apt-get install cmake”,如圖 85.2.2 所示。
3.使用命令“cmake --version”查看版本,測試是否安裝成功。如圖 85.2.3 所示。
4.我們使用命令“cd opencv-2.4.9/”進入源碼目錄。如圖 85.2.4
5.使用命令“cmake-gui”打開 cmake 的 gui 界面,開始進行配置。如圖 85.2.5 所示。
6.我們在“where is the source code”中填入電腦中 opencv 源碼的位置,“where to build the binaries”填入生成 make 編譯文件的位置,然后點擊 configure 按鈕。如圖 85.2.6 所示。
7.選擇最后一項,然后點擊 next,如圖 85.2.7 所示。
8.Operating System 選擇目標系統“Linux”, Compilers 中選擇交叉編譯器的 gcc 和 g++, “/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc” “/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++”,Target Root 選擇交叉編譯器的路徑 “/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin”,include Mode 選擇“search only in target root”,其他如圖 85.2.8 所示,點擊 finish.如果出現配置錯誤的信息,關閉警告配置即可。
9.此時主界面如下圖所示,這時 Cmake 會讀取程序的一些配置信息,可以在下圖紅框中對每一個編譯選項進行修改,將 CMAKE_INSTALL_PREFIX 改成你想要的路徑,作者改成了“/home/topeet/opencv2.4.9/opencvinstall”,如圖 85.2.9 所示。
最后點 Generate,在編譯路徑/home/topeet/opencv2.4.9/opencvbuild 下就生成 Makefile。 10.我們使用“cd /home/topeet/opencv2.4.9/opencvbuild”命令進入 “/home/topeet/opencv2.4.9/opencvbuild”目錄下,在執行 Makefile 之前需要修改 CMakeCache.txt 文件的194 行。使用命令“vi CMakeCache.txt”編輯文本。如圖 85.2.10 所示。
跳轉至 194 行。將“CMAKE_EXE_LINKER_FLAGS:STRING=' '”改為 “CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl”如圖 85.2.11 所示。修改后保存退出。
11.在 /home/topeet/opencv2.4.9/opencvbuild 目錄下輸入命令 make 編譯。編譯部分截圖如圖 85.2.12所示。
編譯完成之后。如圖 85.2.13 所示:
使用指令“make install”,部分截圖如圖 85.2.14 所示。
安裝完成后,我們可以在“/home/topeet/opencv2.4.9/opencvinstall”目錄下看到編譯生成的庫文件。至此,移植工作基本完成。
|