1. 程式人生 > >我為什麽要寫《OpenCV Android 開發實戰》這本書

我為什麽要寫《OpenCV Android 開發實戰》這本書

基礎算法 map 完整 發展 十年 程序員 核心 智能 完成

我為什麽要寫《OpenCV Android 開發實戰》這本書

技術分享圖片

2015年我出版了個人第一本關於圖像處理方面的書籍《Java圖像處理-編程技巧與應用實踐》,這本書主要是從理論與編碼上面詳細闡述了圖像處理基礎算法以及它們在編碼實現上的技巧。一轉眼已經三年過去了,在這三年的時光裏我無時無刻都在關註圖像處理與計算機視覺技術發展與未來,同時漸漸萌發了再寫一本圖像處理相關技術書籍的念頭,主要是因為《Java圖像處理-編程技巧與應用實踐》一書主要不是針對工程應用場景,讀者在學完之後很難直接上手開始做項目,所以把第二本書定位為工程實戰書籍類型,可以幫助大家解決工程與項目實際技術問題。OpenCV是英特爾開源出來的計算機視覺框架,有著十分強大的圖像與視頻分析處理算法庫。借助OpenCV框架,Android程序員可以在不關心底層數學原理的情況下,解決人臉檢測、OCR識別、AR應用開發,圖像與視頻分析處理,文本處理等Androd開發者經常遇到問題,考慮這些真實需求,本著從易到難的原則,列出了提綱,得到機械工業出版社 楊繡國編輯 肯定與大力支持,於是才有《OpenCV Android開發實戰》一書的寫作與出版。

谷歌2008年10月發布了第一款搭載Android系統的手機, 從此Android系統在移動端與嵌入式終端大顯神威,占據了移動操作系統市場的半壁江山,市場需求爆炸式增長,大量Android開發人員出現,形成了龐大的Android開發者生態體系,經過十年發展,Android操作系統與開發者隊伍已經從當初的註重量轉為註重質。Android開發人員也面臨技術棧老化、工作七年之癢,技術方向選擇,職業發展瓶頸等難題。計算機視覺作為人工智能的分支學科之一、符合未來科技發展方向,OpenCV是開源的可以商業應用的最流行的計算機視覺框架,包含了3000多個算法實現, 其SDK支持Java、C++、Python等編程語言,支持Windows系統、Linux系統、Android系統、Mac系統。未來隨著5G手機的發布與普及,移動端大量應用場景必然要借助於手機攝像頭與實時視頻內容分析與處理,OpenCV在這兩個方面有得天獨厚的技術優勢,Android開發人員唯有不斷學習,跟上時代步伐,方可獲得職業生涯的進一步發展。OpenCV計算機視覺就是“天高任鳥飛、海闊憑魚躍”廣闊天地,是Android開發者技術方向追求、走向人工智能技術的第一站。特別期待能與廣大Android開發者成為朋友,期待各位讀者的閱讀反饋與提問交流,讀同一本書,寫不同的技術人生、得其術、知其道。

附圖書目錄:
第1章 OpenCV For Android框架
1.1 OpenCV是什麽
1.1.1 OpenCV框架歷史與發展現狀
1.1.2 核心模塊與功能介紹
1.1.3 OpenCV4Android SDK介紹
1.2 OpenCV4Android開發環境搭建
1.2.1 OpenCV4Android SDK下載與導入
1.2.2 環境搭建
1.2.3 代碼測試
1.3 構建一個OpenCV演示APP應用
1.4 拍照與選擇圖片
1.5 小結

第2章 Mat與Bitmap對象
2.1 Mat對象
2.2 Android中Bitmap對象
2.3 基礎形狀繪制與填充
2.2.1 基於Mat的繪制與填充
2.2.2 Bitmap上的繪制與填充

2.4 Mat與Bitmap轉換與使用
2.5 小結

第3章 Mat像素操作
3.1 OpenCV Mat中操作像素的方法
3.1.1 Mat的類型與get、put方法
3.1.2 如何正確循環操作每個像素點
3.2 圖像通道與均值方差計算
3.3.1 – 通道分離與合並、計算均值與標準方程, 使用均值與標準方程過濾空白圖像
3.3 像素操作經典例子-調整圖像亮度與對比度
3.4 兩張圖像混合
3.5.1 - 直接的像素相加
3.5.2 - 基於權重的像素相加
3.5 Mat的其它各種像素操作(包括取反、邏輯操作、平方根等)
3.6 小結

第4章 圖像操作
4.1 模糊
4.2 統計排序濾波器
4.2.1 - 中值濾波
4.2.2 - 最大最小值濾波
4.3 邊緣保留濾波器
4.3.1 - 雙邊濾波
4.3.2 - 均值遷移濾波
4.4自定義濾波
4.5形態學操作
4.6 閾值與自適應閾值
4.6.1 閾值(介紹5種閾值方法)
4.6.2 自適應閾值(介紹兩種自適應閾值方法)
4.7 小結

第5章 基本特征檢測
5.1 梯度算子
5.2 拉普拉斯算子
5.3 Canny邊緣檢測
5.4 霍夫直線檢測
5.5 霍夫圓檢測
5.6 輪廓檢測與繪制
5.7.1 - 輪廓檢測與繪制輪廓
5.7.2 - 繪制輪廓外接矩形與圓
5.7.3 - 繪制最小外接矩形
5.7 輪廓分析
繪制外接矩形、最小外接矩形、橫縱比、面積、輪廓周長等
5.8 圖像直方圖
5.8.1 - 計算直方圖
5.8.2 - 直方圖均衡化
5.8.3 - 直方圖比較
5.8.4 - 直方圖反向投影
5.9 模板匹配 (介紹常見的圖像模板匹配算法)
5.10 小結

第6章 特征檢測與匹配
6.1 Harr角點檢測
(Harr角點特征檢測原理與相關API使用介紹)
6.2 Shi-Tomasi角點檢測
(Shi-Tomasi角點檢測原理與相關API使用介紹)
6.3 SURF特征檢測與匹配
(SURF特征提取的步驟與特征描述子)
6.4 SIFT特征檢測與匹配
(SIFT特征提取的步驟與特征描述子)
6.5 Feature2D中檢測器與描述子
BRISK
ORB
AKAZE
6.6 特征匹配查找已知對象
(跟特征匹配結果在一張圖中尋找已知對象並把對象輪廓標記出來)
6.7 級聯分類器與人臉檢測
LBP級聯分類器
Harr級聯分類器
應用級聯檢測器實現人臉檢測
6.8 小結

第7章 使用相機
7.1 使用JavaCameraView(介紹OpenCV4Android 自帶的調用攝像頭功能組件)
7.2 橫屏與豎屏顯示(探討橫屏與豎屏顯示問題)
7.3 處理相機預覽幀圖像 (實現對預覽幀的處理,同時知道過多的JNI方式調用OpenCV API會導致性能問題)
7.4 在預覽幀中實現人臉檢測(實現一個實時的人臉檢測例子,技術思路剖析與編碼實現步驟,介紹NDK開發方式)
7.4.1 – NDK支持開發配置
7.4.2 –本地方法定義與OpenCV C++代碼編寫
7.4.3 –Java中的代碼實現與運行演示
7.5 小結

第8章 OCR識別
8.1什麽是OCR
8.2開源OCR框架Tesseract (介紹Tesseract-OCR框架在Android 系統上的使用、完成第一個測試用例代碼)
8.3 識別×××號碼
8.3.1 UI編碼(講解調用相機拍照與顯示)
8.3.2 位置尋找(講述如何通過OpenCV實現×××號碼位置準確定位,基於模板匹配技術和特征匹配技術)
8.3.2 使用Tesseract-OCR API識別
8.4 提高OCR識別率
8.4.1 訓練自定義數據 (講述在Tesseract-OCR如何訓練自定義數據)
8.4.2 圖像預處理 (講述如何通過OpenCV實現偏斜校正、噪聲幹擾去除,邊線去除,來減低幹擾,提高識別率)
8.5小結 (總結本章所講內容)

第9章 人臉美顏
9.1 積分圖計算(介紹圖像積分圖算法)
9.2 基於積分圖像的局部均方差濾波(詳細介紹在OpenCV中如何實現自己的算法)
9.3 遮罩層生成(詳細講解與代碼演示實現,)
9.4 高斯權重融合(詳細講解與代碼演示實現)
9.5 邊緣提升(詳細講解與代碼演示實現,)
9.6 美顏實現(NDK層詳細講解與代碼演示實現,)
9.7 小結(講述了移動應用中常見的人臉磨皮美容算法實現步驟與細節,完整了整個美容算法、是對圖像處理知識的這運用)

第10章 人眼實時跟蹤與渲染
10.1界面顯示與相機預覽
10.2 人臉檢測與跟蹤
10.3尋找眼睛候選區域
10.4 眼睛檢測(使用級聯分類器檢測眼睛)
10.5 尋找黑眼球
10.6 渲染與優化
10.7 小結

購買地址

https://item.jd.com/12392800.html

相關視頻課程:

OpenCV Android零基礎入門課程

OpenCV Android 銀行卡識別實戰課程

我為什麽要寫《OpenCV Android 開發實戰》這本書