譯者序
作者簡介
前言
第1章 計算機視覺系統綜述1
1.1 計算機視覺系統介紹1
1.2 解決計算機視覺問題2
1.2.1 數據采集3
1.2.2 預處理4
1.2.3 圖像處理的特征提取5
1.2.4 后處理和后置濾波7
1.2.5 識別或檢測7
1.2.6 在現實世界中行動8
1.2.7 連接子模塊8
1.3 總結10
第2章 OpenCV的基礎與安裝11
2.1 OpenCV的基礎11
2.2 OpenCV的安裝12
2.2.1 在Linux上安裝OpenCV12
2.2.2 在MacOS上安裝OpenCV17
2.2.3 在Windows上安裝OpenCV18
2.2.4 在iOS上安裝OpenCV20
2.2.5 在Android上安裝OpenCV21
2.3 總結24
第3章 用OpenCV和Arduino進行數據采集25
3.1 圖像和視頻采集25
3.1.1 相機選擇25
3.1.2 圖像采集29
3.2 傳感器數據采集41
3.2.1 設置Arduino環境41
3.2.2 傳感器基礎42
3.2.3 從溫度傳感器中讀取數據44
3.3 總結47
第4章 用OpenCV進行數據過濾48
4.1 開始過濾48
4.2 空間域濾波49
4.2.1 平滑50
4.2.2 銳化51
4.3 顏色空間轉換51
4.3.1 灰度化52
4.3.2 二值化53
4.4 形態學濾波器55
4.4.1 腐蝕和膨脹55
4.4.2 開運算和閉運算56
4.5 梯度和邊緣檢測58
4.5.1 Canny邊緣檢測器58
4.5.2 LoG濾波器59
4.5.3 Sobel61
4.6 自定義濾波器63
4.7 直方圖均衡化65
4.8 本章的實踐項目66
4.9 總結72
第5章 用OpenCV進行視覺數據處理73
5.1 提取特征73
5.1.1 使用基本的統計信息74
5.1.2 使用顏色特征78
5.1.3 使用模板進行特征匹配78
5.1.4 使用輪廓特征79
5.1.5 使用凸包80
5.1.6 使用矩81
5.1.7 使用Hough變換82
5.1.8 使用角點83
5.1.9 使用尺度不變特征變換84
5.1.10 使用加速魯棒特征85
5.1.11 使用ORB86
5.1.12 使用blob分析86
5.2 總結87
第6章 用OpenCV進行識別88
6.1 構建一個可以思考的應用程序88
6.1.1 模板匹配89
6.1.2 特征匹配91
6.1.3 基於快速近似最近鄰搜索庫的匹配94
6.1.4 使用級聯分類器95
6.1.5 使用支持向量機97
6.2 總結98
第7章 用OpenCV與Arduino進行通信100
7.1 與Arduino進行通信100
7.1.1 有線通信102
7.1.2 無線通信111
7.2 用Java進行通信115
7.3 用C++進行通信120
7.4 總結121
第8章 將Arduino用於真實世界122
8.1 與電動機的連接122
8.1.1 驅動直流電動機123
8.1.2 驅動步進電動機125
8.1.3 驅動伺服電動機128
8.2 使用顯示器130
8.2.1 使用液晶顯示器131
8.2.2 使用薄膜晶體管顯示器133
8.3 總結137
第9章 建造一個點擊行走機器人138
9.1 系統總覽138
9.2 建造一個機器人141
9.2.1 構建力學部分142
9.2.2 構建電子電路部分143
9.2.3 構建機器人控制器和通信系統146
9.3 構建視覺應用程序154
9.4 總結163