本章節(jié)將介紹 OpenCV 的移植方法,及結(jié)合 Qt 例程去進(jìn)一步學(xué)習(xí) OpenCV 識(shí)別圖像。本章節(jié)使用的資料已經(jīng)放到了開(kāi)發(fā)板網(wǎng)盤(pán)資料中,路徑為:“11_Linux 系統(tǒng)開(kāi)發(fā)進(jìn)階\85_章節(jié)_移植 OpenCv2.4.9 使用資料”。 我們需要準(zhǔn)備的資料: 1. 開(kāi)發(fā)板使用的是 i.MX6ULL 終結(jié)者,開(kāi)發(fā)板里面是 Yocto 文件系統(tǒng)。 2. 使用 Ubuntu16.04 3. 提供 opencv 源碼“opencv-2.4.9.zip” 4. QT 測(cè)試?yán)?br /> 85.1 安裝交叉編譯工具 移植的 QT 系統(tǒng)需要的交叉編譯器就是我們編譯 qt 的編譯器,因?yàn)槲覀兪?Yocto 系統(tǒng),所以我們用編譯 Yocto 的編譯器來(lái)編譯 OpenCV。交叉編譯器為:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf。設(shè)置交叉編譯器請(qǐng)參考 i.MX6ULL 終結(jié)者-開(kāi)發(fā)板使用手冊(cè) 4.3 章節(jié) 搭建交叉編譯環(huán)境。 85.2 搭建 OpenCv 編譯環(huán)境 1.我們將文件中提供的“opencv-2.4.9.zip”也就是 opencv 源碼通過(guò) ssh 軟件移 ubuntu 下并解壓,作者將該文件放入了“/home/topeet/opencv2.4.9”目錄下,新建 opencvbuild 和 opencvinstall 文件夾,opencvbuild是構(gòu)建目錄,opencvinstall 是安裝目錄如圖 85.2.1 所示。 ![]() 2.OpenCV 2.2 以后版本需要使用 Cmake 生成 makefile 文件,因此需要先安裝 cmake。ubuntu 下安裝 cmake 比較簡(jiǎn)單,使用命令“apt-get install cmake”,如圖 85.2.2 所示。 ![]() 3.使用命令“cmake --version”查看版本,測(cè)試是否安裝成功。如圖 85.2.3 所示。 ![]() 4.我們使用命令“cd opencv-2.4.9/”進(jìn)入源碼目錄。如圖 85.2.4 ![]() 5.使用命令“cmake-gui”打開(kāi) cmake 的 gui 界面,開(kāi)始進(jìn)行配置。如圖 85.2.5 所示。 ![]() 6.我們?cè)凇皐here is the source code”中填入電腦中 opencv 源碼的位置,“where to build the binaries”填入生成 make 編譯文件的位置,然后點(diǎn)擊 configure 按鈕。如圖 85.2.6 所示。 ![]() 7.選擇最后一項(xiàng),然后點(diǎn)擊 next,如圖 85.2.7 所示。 ![]() 8.Operating System 選擇目標(biāo)系統(tǒng)“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 所示,點(diǎn)擊 finish.如果出現(xiàn)配置錯(cuò)誤的信息,關(guān)閉警告配置即可。 ![]() 9.此時(shí)主界面如下圖所示,這時(shí) Cmake 會(huì)讀取程序的一些配置信息,可以在下圖紅框中對(duì)每一個(gè)編譯選項(xiàng)進(jìn)行修改,將 CMAKE_INSTALL_PREFIX 改成你想要的路徑,作者改成了“/home/topeet/opencv2.4.9/opencvinstall”,如圖 85.2.9 所示。 ![]() 最后點(diǎn) Generate,在編譯路徑/home/topeet/opencv2.4.9/opencvbuild 下就生成 Makefile。 10.我們使用“cd /home/topeet/opencv2.4.9/opencvbuild”命令進(jìn)入 “/home/topeet/opencv2.4.9/opencvbuild”目錄下,在執(zhí)行 Makefile 之前需要修改 CMakeCache.txt 文件的194 行。使用命令“vi CMakeCache.txt”編輯文本。如圖 85.2.10 所示。 ![]() 跳轉(zhuǎn)至 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”目錄下看到編譯生成的庫(kù)文件。至此,移植工作基本完成。 ![]() |