《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告_第1頁(yè)
《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告_第2頁(yè)
《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告_第3頁(yè)
《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告_第4頁(yè)
《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

千里之行,始于足下讓知識(shí)帶有溫度。第第2頁(yè)/共2頁(yè)精品文檔推薦《嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)》設(shè)計(jì)報(bào)告嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)

設(shè)計(jì)報(bào)告

組長(zhǎng):

成員:

中國(guó)石油高校(華東)計(jì)算機(jī)與通信工程學(xué)院計(jì)算機(jī)科學(xué)系

二0年12月

一、引言

OpenCV的全稱是:OpenSourceComputerVisionLibrary。OpenCV是一個(gè)基于(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows和MacOS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的無(wú)數(shù)通用算法。它的應(yīng)用領(lǐng)域十分廣泛,包括人機(jī)互動(dòng)、物體識(shí)別、圖像分割、人臉識(shí)別、機(jī)器視覺(jué)、汽車平安駕駛等。隨著手機(jī)性能的不斷提高,OpenCV往安卓上移植已經(jīng)成為可能,安卓設(shè)備移植上OpenCV之后將能夠舉行復(fù)雜的圖像處理和視頻分析工作,人們不必拘泥于使用固定的設(shè)備舉行圖像以及視頻的處理,從而增強(qiáng)了處理的靈便性。

本課程設(shè)計(jì)實(shí)現(xiàn)的就是OpenCV到安卓的移植以及在安卓上實(shí)現(xiàn)一個(gè)容易的圖像處理應(yīng)用。Android應(yīng)用程序是通過(guò)AndroidSDK(SoftwareDevelopmentKit)利用Java編程語(yǔ)言舉行開(kāi)發(fā),同時(shí)也可以通過(guò)JNI調(diào)用C動(dòng)態(tài)庫(kù),不過(guò)這種開(kāi)發(fā)方式存在技術(shù)障礙,陪同著AndroidNDK(NativeDevelopmentKit)的問(wèn)世,使得“JAVA+C”的開(kāi)發(fā)方式走向成熟。

二、總體設(shè)計(jì)

1、功能描述

本課程設(shè)計(jì)分為以下四個(gè)模塊,各模塊功能介紹如下:

Android-OpenCV項(xiàng)目:

OpenCV中大部分重要API在該項(xiàng)目中已經(jīng)封裝成了JAVA接口,為安卓上的OpenCV開(kāi)發(fā)提供C、C++函數(shù)支持。

AndroidNDK:

它包括從C/C++生成原生代碼庫(kù)所需要的工具和buildfiles,能夠?qū)⑷嫉脑鷰?kù)嵌入可以在Android設(shè)備上部署的應(yīng)用程序包文件(applicationpackagesfiles,即.apk文件)中,支持全部將來(lái)Android平臺(tái)的一些列原生系統(tǒng)頭文件和庫(kù)。在本課程設(shè)計(jì)中擔(dān)任重要角色,包括交錯(cuò)編譯OpenCV源代碼、編譯測(cè)試程序等。

Cygwin:

Windows下模擬Linux操作環(huán)境,在其中執(zhí)行NDK編譯。

Eclipse:

Android開(kāi)發(fā)環(huán)境,開(kāi)發(fā)android程序,生成可執(zhí)行的.apk文件,銜接真機(jī)或虛擬機(jī)舉行調(diào)試。

2、設(shè)計(jì)特色

本課程設(shè)計(jì)的特色在于勝利的將android-opencv移植到eclipse開(kāi)發(fā)環(huán)境中去,實(shí)現(xiàn)了在android設(shè)備開(kāi)發(fā)圖像處理、視頻分析應(yīng)用,提高了android設(shè)備的使用價(jià)值。編譯環(huán)境采納AndroidNDK+Cygwin,便利開(kāi)發(fā)者在windows環(huán)境下開(kāi)發(fā)“java+c”程序。

3、體系結(jié)構(gòu)

C代碼開(kāi)發(fā)環(huán)境:

Java代碼開(kāi)發(fā)環(huán)境:

三、具體設(shè)計(jì)

1、AndroidNDK開(kāi)發(fā)環(huán)境搭建

(1)、NDK下載

本課程設(shè)計(jì)使用的NDK版本是android-ndk-r4-crystax,這是一款面對(duì)android的編譯工具,下載后解壓,存放位置自己定義,我放在G盤根名目下。

(2)、Cygwin下載

因?yàn)镹DK編譯代碼時(shí)必需要用到make和gcc,所以必需搭建一個(gè)Linux環(huán)境,下載Cygwin,安裝時(shí)要注重一下幾點(diǎn):安裝名目最好不要放在有中文和空格的名目里;在挑選需要下載的包時(shí),因?yàn)椴磺逦鱾€(gè)包的用途,為了避開(kāi)出錯(cuò),所以挑選了所有下載;因?yàn)槭菑膰?guó)外站點(diǎn)下載資源,速度略微有些慢,大約1~2個(gè)小時(shí),期間應(yīng)確保網(wǎng)絡(luò)通暢。安裝后在系統(tǒng)環(huán)境變量Path中加入cygwin的bin和

android-ndk-r4-crystax的路徑,檢測(cè)是否安裝勝利,打開(kāi)CygwinTerminal,在命令行輸入“cygcheck-ccygwin”,會(huì)打印出當(dāng)前cygwin的版本和運(yùn)行狀態(tài),顯示status是“OK”,則表示安裝勝利,否則需要重新安裝。下面需要配置NDK環(huán)境變量,配置文件為.bash_profile,我的文件名目是

D:\cygwin\home\zhangyu\.bash_profile,在文件末尾添加“NDK=/cygdrive//”,為了區(qū)別該NDK版本,我寫的是:ndk_r4=/cygdrive/g/android-ndk-r4-crystaxexportndk_r4,“ndk_r4”這個(gè)名字是自己定義的,便利記憶。保存后,關(guān)閉終端,重啟,

終端,可能會(huì)浮現(xiàn)一下錯(cuò)誤:

導(dǎo)致這個(gè)錯(cuò)誤的緣由是使用了windows環(huán)境下的編輯環(huán)境,在Linux下存在不兼容的問(wèn)題,在該文件名目下輸入“dos2unix.bash_profile”,以Unix標(biāo)準(zhǔn)規(guī)范該文件即可消退錯(cuò)誤。輸入“cd$ndk_r4”,假如跳到該名目下,則表明ndk環(huán)境變量配置勝利。

下面向NDK所帶的一個(gè)例子舉行編譯,如下圖所示:

編譯后生成libhello-jni.so文件,將該工程導(dǎo)入eclipse,編譯運(yùn)行,結(jié)果如下:

至此,AndroidNDK開(kāi)發(fā)環(huán)境搭建完畢。

2、Android-OpenCV移植

移植辦法參照CSDN的一篇博文,下載Android-OpenCV源碼包,存放到G盤根名目

下,該源碼包已經(jīng)寫好了交錯(cuò)編譯Opencv的Makefile文件和Opencv的AndroidLibraryProject,用于本課程設(shè)計(jì),需要修改以下幾個(gè)地方:

(1)build.sh文件

將“ndk-build”替換為“cygdrive/g/android-ndk-r4-crystax/ndk-build”,用于明確所使用的ndk-build的詳細(xì)路徑。

(2)clean.sh文件

同上。

將android-ndk-r4-crystax囫圇文件夾拷貝到D:\cygwin\home\zhangyu下,由于在opencv源碼包中的local.env文件中指定的ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax。或者在此處更改NDK名目,總之目的就是正確的找到NDK工具所在名目。

下面編譯Opencv,打開(kāi)Cygwin終端,進(jìn)入opencv名目,運(yùn)行build.sh,編譯大約持續(xù)30分鐘,編譯勝利后,在android/libs/armeabi和armeabi-v7a兩個(gè)文件夾下生成libandroid-opencv.so文件,用于Android開(kāi)發(fā)的opencv庫(kù)文件生成勝利。

打開(kāi)eclipse,將android文件夾下的工程導(dǎo)入到eclipse工作空間中,導(dǎo)入后運(yùn)行該工程,在虛擬機(jī)上無(wú)任何反應(yīng),eclipse控制臺(tái)輸出如下信息:

下面運(yùn)行opencv源碼包自帶的android應(yīng)用,啟動(dòng)cygwin終端,進(jìn)入例子程序CVCamera名目下:

編譯勝利,將該工程導(dǎo)入eclipse,銜接手機(jī),挑選在真機(jī)上運(yùn)行,運(yùn)行結(jié)果如下:

表示androi-opencv移植勝利,該eclipse開(kāi)發(fā)環(huán)境具備了使用opencv舉行android應(yīng)用開(kāi)發(fā)的功能。

3、Android-OpenC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論