本文檔介紹的是在QtE系統(tǒng)環(huán)境下迅為iTOP4412 UVC攝像頭opencv程序?qū)嶒?yàn)調(diào)試步驟。我們使用的是4412全功能底板。提供opencv源碼“opencv-2.4.9.zip”,uvc攝像頭qt源碼“camera_opencv.tar.gz”以及opencv編譯好的庫(kù)文件“opencv-2.4.9_arm.tar.gz” OPENCV移植我們將文件中提供的“opencv-2.4.9.zip”即opencv源碼包解壓,并將其通過(guò)ssh軟件移至ubuntu下,作者將該文件放入了“/home/work2/cwork/opencv”下,如下圖所示。 OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安裝cmake。 ubuntu下安裝cmake比較簡(jiǎn)單,使用命令“apt-get install cmake”,如下圖所示。 使用命令“cmake --version”查看版本,測(cè)試是否安裝成功。如下圖所示。 我們使用命令“cd opencv-2.4.9/”進(jìn)入源碼目錄。如下圖示。 使用命令“cmake-gui”打開(kāi)cmake的gui界面,開(kāi)始進(jìn)行配置。如下圖示所示。 我們?cè)?/font>“where is the source code”中填入電腦中opencv源碼的位置,“where to build the binaries”填入生成make編譯文件的位置,然后點(diǎn)擊configure按鈕。如下圖所示。 選擇最后一項(xiàng),然后點(diǎn)擊next,如下圖所示。 Operating System 選擇目標(biāo)系統(tǒng)“ Linux”,Compilers中選擇交叉編譯器的gcc和g++,“/usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-gcc”“/usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-g++”,Target Root選擇交叉編譯器的路徑“/usr/local/arm/4.4.1”,include Mode選擇“search only in target root”。點(diǎn)擊finish。如下圖所示。 .此時(shí)主界面如下圖所示,這時(shí)Cmake會(huì)讀取程序的一些配置信息,可以再下圖紅框中對(duì)每一個(gè)編譯選項(xiàng)進(jìn)行修改,將CMAKE_INSTALL_PREFIX改成你想要的路徑,作者改成了“/usr/local/opencv-2.4.9”,這里去掉WITH_TIFF,WITH_CUDA及WITH_GTK。如下圖所示。 最后點(diǎn)Generate,在編譯路徑/opt/opencv_arm下就生成了Makefile。關(guān)閉后我們使用“cd /opt/opencv-arm/”命令進(jìn)入“/opt/opencv_arm”,在執(zhí)行Makefile之前需要修改CMakeCache.txt文件的194行。使用命令“vi CMakeCache.txt”編輯文本。如下圖所示。 跳轉(zhuǎn)至194行。將“CMAKE_EXE_LINKER_FLAGS:STRING=' '”改為“CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl”如下圖所示。 保存退出后,使用“make”編譯。編譯部分截圖如下所示。 編譯完成之后。使用指令“make install”,部分截圖如下所示。 我們可以在“/usr/local/opencv-2.4.9/”目錄下看到編譯生成的庫(kù)文件。至此,移植工作基本完成。 UVC程序編譯我們把文件夾中帶的例程源碼“camera_opencv.tar.gz”通過(guò)ssh拷貝到ubuntu下,如下圖所示。 使用命令“tar -xvf camera_opencv.tar.gz”解壓程序源碼。如下圖所示。 使用命令“cd camera_opencv/”進(jìn)入。然后使用命令“/opt/qt-4.7.1/bin/qmake”“make”編譯程序,編譯完成即可看到程序,如下圖所示。 生成文件系統(tǒng)我們使用命令“ cd /home/topeet/Linux+QT/root/”進(jìn)入qt文件系統(tǒng)目錄。如下圖所示。 使用命令“cp -r /usr/local/opencv-2.4.9/ ./usr/local/”將opencv庫(kù)文件拷貝到qt文件系統(tǒng)中,使用命令“cp -r /home/work2/cwork/opencv/camera_opencv/camera_opencv topeet/”將程序拷貝到文件系統(tǒng)中,使用命令“ cp -r /opt/opencv-arm/lib/* ./lib/”動(dòng)態(tài)庫(kù)拷貝到開(kāi)發(fā)板中。如下圖所示。 我們使用命令“cd lib/”進(jìn)入“l(fā)ib”文件夾。使用命令“cp -r /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 ./”將“l(fā)ibstdc++.so.6.0.12”拷貝到當(dāng)前目錄(自帶的libstdc++.so.6.0.10不支持GLIBCXX_3.4.11,運(yùn)行程序會(huì)報(bào)錯(cuò)),使用命令“”刪除舊連接文件,使用命令“l(fā)n -s libstdc++.so.6.0.12 libstdc++.so.6”創(chuàng)建鏈接。如下圖所示。 使用命令“cd ../../”返回上一級(jí)目錄。使用命令“make_ext4fs -s -l 314572800 -a root -L linux system.img root”生成文件系統(tǒng)鏡像。如下圖所示。 然后將文件系統(tǒng)燒寫(xiě)到開(kāi)發(fā)板上(QT系統(tǒng))。 程序測(cè)試開(kāi)發(fā)板上電啟動(dòng)后,使用命令“ps”查看當(dāng)前進(jìn)程,并kill fluidlauncher。如下圖所示。 使用命令“cd /topeet/”進(jìn)入程序存放目錄。使用命令“./camera_opencv -qws &”即可運(yùn)行程序,此時(shí)屏幕顯示uvc攝像頭瀏覽畫(huà)面。 更多內(nèi)容關(guān)注北京迅為
|