內容簡介
《Android OpenCV應用程序設計》詳細闡述瞭與Android OpenCV程序設計相關的基本解決方案,主要包括構建OpenCV,與相機幀協同工作,添加圖像效果,圖像識彆和跟蹤,圖像跟蹤與3D渲染之間的整閤操作等內容。此外,本書還提供瞭相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
《Android OpenCV應用程序設計》適閤作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
Copyright Packt Publishing 2013.First published in the English language under the title
Android Application Programming with OpenCV.
Simplified Chinese-language edition 2014 by Tsinghua University Press.All rights reserved.
本書中文簡體字版由Packt Publishing授權清華大學齣版社齣版。未經齣版者書麵許可,不得以任何方式復製或抄襲本書內容。
作者簡介
本書講解瞭如何在Android應用程序中綁定OpenCV的Java內容,進而顯示相機畫麵、保存-共享照片、操控顔色和輪廓邊以及跟蹤2D或3D中的對象。另外,本書還討論瞭OpenGL的整閤方式,讀者可據此構建增強現實(AR)程序,進而在相機畫麵的跟蹤對象上繪製虛擬3D場景。
作為一類開源、跨平颱庫,OpenCV提供瞭計算機視覺和應用構建模塊,以及針對捕捉處理和圖像數據顯示的高層接口。例如,OpenCV抽象瞭相機硬件的細節內容以及數組的內存分配。同時,OpenCV廣泛地應用於教學和軟件工業中。
Android則是一類開源移動操作係統,對於Java開發者而言,它提供瞭稱作Android SDK的高層應用框架。Android應用程序是一類模塊化程序,並針對數據的發布和共享定義瞭標準的高層接口。針對照片共享應用,移動、高層抽象和數據共享可視為較好的開始點。
雖然OpenCV和Android提供瞭大量的高層抽象內容(以及開源代碼),但對於初學者而言並不容易掌握,例如構建適宜的開發環境,將庫功能項移至應用程序中。對此,本書旨在強調清晰的構建過程、簡潔的應用設計以及各功能項的詳細內容。
鑒於OpenCV的Java和Android綁定尚為新鮮事物,因而其文檔並不完整,針對OpenCV與Android的標準相機、媒介以及圖形API尤其如此。需要說明的是,整閤工作是應用程序開發者的重要任務之一,也是本書的講解重點。
OpenCV和Android庫之間的整閤過程充分體現瞭廣泛的應用程序特徵,本書結束時將會對此予以嘗試。屆時,讀者可通過可復用的類庫擴展或調整後續的計算機視覺項目,並根據已有的開發環境和知識編寫更為豐富的應用程序。
本書內容
第1章討論OpenCV和Android開發環境的構建過程,其中包括Eclipse和Android SDK。
第2章討論OpenCV與Android應用程序之間的整閤方式,進而預覽、捕捉、保存和共享照片數據。
第3章探討OpenCV的功能項,包括顔色通道的控製以及鄰接像素問題。除此之外,還將對現有應用程序進行擴展,以使其包含通道混閤濾鏡、"麯綫"濾鏡和黑色輪廓邊濾鏡。
第4章將展示視頻畫麵中既定目標對象(例如油畫作品)的識彆和跟蹤機製。同時,還將對已有應用程序進行適當擴展,並圍繞跟蹤目標繪製輪廓綫。
第5章通過確定3D環境中目標的位置和鏇轉改善前述跟蹤機製。另外,本章還將構建OpenGL 3D場景,並包含與Android相機設備相同的透視視角。
背景知識
本書將討論OpenCV和Android開發環境的構建過程,其中包括Eclipse和Android SDK。同時,對應軟件均包含跨平颱特徵,包括Windows、Mac、Linux以及其他類UNIX環境。
讀者需要持有一部可運行Android 2.2(Froyo)或後續版本的移動設備,並建議設備包含前置和後置相機。另外,鑒於OpenCV使用Google Play Store管理安裝和共享庫的更新操作,因而推薦安裝Google Play Store應用程序。
本書讀者
本書適用於Java開發人員,以及緻力於計算機視覺應用開發的讀者。本書假設讀者具備一定的Java開發經驗(但缺乏相應的Android知識),並對圖形數據有著基本的理解,例如像素、顔色通道等內容。
本書結構
本書包含瞭大量不同的文本風格,並以此區分不同種類的信息。下列內容展示瞭相應的文本風格和對應的解釋內容。
文本中的代碼字樣通常顯示為:"編輯係統路徑PATH並包含/platform- tools和/tools"。
對應代碼塊如下所示:
"http://schemas.android.com/apk/res/android"
package="com.nummist.secondsight"
android:versionCode="1"
android:versionName="1.0">
當強調特定的代碼段時,相關內容采用粗體錶示,如下所示:
mCameraView.enableView();
mBgr = new Mat();
mCurveFilters = new Filter[] {
new NoneFilter(),
new PortraCurveFilter(),
new ProviaCurveFilter(),
命令行輸入和輸齣如下所示:
$ cd /etc/udev/rules.d/
$ sudo touch 51-android.rules
$ sudo chmod a+r 51-android-rules
另外,某些新增內容和重要內容也采用粗體錶示,而屏幕、菜單或對話框中的文本則采用原文顯示,例如"clicking on the Next button moves you to the next screen"。
最後,"提示"錶示一些較為重要的提示;"技巧"則錶示相關的操作技巧。
讀者反饋和技術支持
歡迎讀者對本書的建議或意見予以反饋,以進一步瞭解讀者的閱讀喜好。反饋意見對於我們來說十分重要,以便改進我們日後的工作。
對此,讀者可嚮feedback@packtpub.com發送郵件,並以書名作為郵件標題。
若讀者意欲查詢齣版信息,可在www.packtpub.com網站的SUGGEST A TITLE錶項中填寫相關信息,或發送郵件至suggest@packtpub.com。
若讀者針對某項技術具有專傢級的見解,抑或計劃撰寫書籍或完善某部著作的齣版工作,則可閱讀www.packtpub.com/authors中的author guide一欄。
資源下載
讀者可訪問http://www.packtpub.com下載本書中的示例代碼文件;或者訪問http://www. packtpub.com/support,經注冊後可直接通過郵件方式獲取相關文件。
除此之外,讀者還可訪問作者網站http://nummist.com/opencv/下載本書示例代碼。
勘誤錶
盡管我們在最大程度上做到盡善盡美,但錯誤依然在所難免。如果讀者發現謬誤之處,無論是文字錯誤或是代碼錯誤,還望不吝賜教。對於其他讀者以及本書的再版工作,這將具有十分重要的意義。對此,讀者可訪問http://www.packtpub.com/support,選取對應書籍,單擊errata submission form超鏈接,並輸入相關問題的詳細內容。經確認後,填寫內容將被提交至網站,或添加至現有勘誤錶中(位於該書籍的Errata部分)。同時,讀者還可訪問http://www.packtpub.com/support查看當前勘誤錶。
版權須知
一直以來,互聯網上的版權問題從未間斷,Packt齣版社對此類問題異常重視。若讀者在互聯網上發現本書任意形式的副本,請告知網絡地址或網站名稱,我們將對此予以處理。
關於盜版問題,讀者可發送郵件至copyright@packtpub.com。對於作者的愛護,我們錶示衷心的感謝,並於日後嚮讀者呈現更為精彩的作品。
問題解答
若讀者對本書有任何疑問,均可發送郵件至questions@packtpub.com,我們將竭誠為您服務;或者訪問作者網站http://nummist.com/opencv/獲取常見問題的答案。
本書作者和審校人員
Joseph Howse很可能現在正坐在傢中的沙發上撰寫某本書籍,或者拎著手提箱處於奔波途中,箱子中被書籍、相機和計算機等設備填滿。Joseph Howse喜歡用這種"觀察世界的方式"裝備自己,要不就是在執行計算機視覺方麵的工作。
Joseph Howse在加拿大的Ad-Dispatch公司工作,並負責iOS和Android平颱的增強現實遊戲的開發工作。當與計算機視覺協同工作時,遊戲中使用瞭大量的真實道具,例如孩子的繪畫作品、玩具和毛毯。
另外,Joseph Howse還提供培訓和谘詢等服務,其中包括基於OpenCV人臉識彆的嵌入式係統項目。
Joseph Howse擁有計算機科學專業、國際發展研究專業以及商務管理專業3個碩士學位(加拿大Dalhousie大學),其研究成果曾被ISMAR發錶。
本書是Joseph Howse在Packt齣版社齣版的第二本書籍,另外一本是《OpenCV Computer Vision with Python》,該書介紹瞭Windows、Mac以及Linux操作係統上的臉部跟蹤和深度相機(例如Kinect)等內容。
下麵一段文字引自Joseph Howse:
"我擅長寫作並享受這一過程。這裏要感謝和Sam在一起的日子,以及父母和我的貓咪,他們是我的精神支柱。"
"感謝本書的編輯和審校人員,在他們的指導下本書方得以齣版。他們的專業、友好、良好的判斷力以及熱忱為本書增加瞭極大的色彩。"
Rohit Bhat是一名畢業於印度BITS Pilani的本科生,並在業界領先的Big Data Analytics公司擔任軟件工程師一職。他所參與的開發項目涉及多種科技領域,其中包括數據挖掘、Android開發、OpenCV、群集智能、工作流自動化以及視頻會議平颱。Rohit Bhat熱衷於最新技術,並可就任何話題與你展開討論。另外,閱讀、創業、經濟學以及時下的新聞同樣是他關注的話題。他熱愛寫作並在業餘時間撰寫自己的博客。
當前,Rohit Bhat正在為Packt齣版社編寫一本Bonita Open Solution方麵的書籍,相關技術廣泛地應用於工作流自動化和商業處理建模中。
Viral Parekh是一名計算機科學專業的大學生,同時也是一名經驗豐富的移動應用程序開發者,並熟悉多種開源庫,例如OpenCV、OpenNI、FFmpeg。當前,他從事於人機交互和增強現實方麵的開發工作。
目錄
第1章 構建OpenCV 1
1.1 係統需求 2
1.2 構建開發環境 2
1.3 獲取現有的開發環境--Tegra Android開發包(TADP) 2
1.4 逐個整閤安裝環境 4
1.5 獲取預製版本的OpenCV4Android 6
1.6 構建源OpenCV 7
1.7 基於Eclipse構建OpenCV示例 8
1.8 查看文檔和幫助文件 18
1.9 本章小結 19
第2章 與相機幀協同工作 20
2.1 設計Second Sight應用程序 20
2.2 創建Eclipse項目 22
2.3 開啓相機和磁盤訪問功能 25
2.4 創建菜單和字符串資源 27
2.5 在CameraActivity中預覽和保存照片 29
2.6 刪除、編輯和共享LabActivity中的照片 40
2.7 本章小結 44
第3章 添加圖像效果 45
3.1 嚮當前項目中添加文件 45
3.2 定義濾鏡接口 47
3.3 混閤顔色通道 47
3.4 麯綫色移 50
3.5 使用捲積過濾處理鄰接像素 56
3.6 嚮CameraActivity中加入濾鏡 58
3.7 本章小結 64
第4章 圖像識彆和跟蹤 65
4.1 嚮當前項目中添加文件 65
4.2 理解圖像追蹤 66
4.3 編寫圖像跟蹤濾鏡 67
4.4 嚮CameraActivity中加入跟蹤濾鏡 74
4.5 本章小結 80
第5章 圖像跟蹤與3D渲染之間的整閤操作 81
5.1 嚮項目中添加文件 81
5.2 定義ARFilter接口 82
5.3 在CameraProjectionAdapter中構建投影矩陣 83
5.4 針對3D跟蹤調整ImageDetectionFilter 87
5.5 在ARCubeRenderer中繪製立方體 92
5.6 將3D跟蹤和渲染添加至CameraActivity中 97
5.7 Android圖形學的更多內容 101
5.8 本章小結 102
前言/序言
Android OpenCV應用程序設計 下載 mobi epub pdf txt 電子書 格式