數字圖像處理與機器視覺 — Visual C++ 與 Matlab 實現, 2/e

張錚 徐超 任淑霞 韓海玲 編著

  • 數字圖像處理與機器視覺 — Visual C++ 與 Matlab 實現, 2/e-preview-1
  • 數字圖像處理與機器視覺 — Visual C++ 與 Matlab 實現, 2/e-preview-2
數字圖像處理與機器視覺 — Visual C++ 與 Matlab 實現, 2/e-preview-1

買這商品的人也買了...

商品描述

  《數字圖像處理與機器視覺——Visual C++與Matlab實現(第 2版)》將理論知識、科學研究和工程實踐有機結合起來,內容涉及數字圖像處理和識別技術的方方面面,包括圖像的點運算、幾何變換、空域和頻域濾波、小波變換、圖像復原、彩色圖像處理、形態學處理、圖像分割、圖像壓縮以及圖像特徵提取等;同時對機器視覺進行了前導性的探究,重點介紹了3種目前在工程技術領域非常流行的分類技術——人工神經網絡(ANN)、支持向量機(SVM)和AdaBoost,並在配套給出的識別案例中直擊光學字符識別(OCR)、人臉識別和性別分類等熱點問題。

  《數字圖像處理與機器視覺——Visual C++與Matlab實現(第 2版)》結構緊湊,內容深入淺出,講解圖文並茂,適合於電腦、通信和自動化等相關專業的本科生、研究生,以及工作在圖像處理和識別領域一線的廣大工程技術人員閱讀參考。

目錄大綱

目 錄

 

第0章 初識數字圖像處理與機器視覺 1

0.1 數字圖像 1

0.1.1 什麽是數字圖像 1

0.1.2 數字圖像的顯示 1

0.1.3 數字圖像的分類 2

0.1.4 數字圖像的實質 3

0.1.5 數字圖像的表示 4

0.1.6 圖像的空間和灰度級分辨率 4

0.2 數字圖像處理與機器視覺 5

0.2.1 從圖像處理到圖像識別 5

0.2.2 什麽是機器視覺 6

0.2.3 數字圖像處理和識別的應用實例 7

0.3 數字圖像處理的預備知識 8

0.3.1 鄰接性、連通性、區域和邊界 8

0.3.2 距離度量的幾種方法 9

0.3.3 基本的圖像操作 10

 

第 1章 MATLAB數字圖像處理編程基礎 11

1.1 MATLAB R2011a簡介 11

1.1.1 MATLAB軟件環境 11

1.1.2 文件操作 12

1.1.3 在線幫助的使用 13

1.1.4 變量的使用 15

1.1.5 矩陣的使用 17

1.1.6 細胞數組(Cell Array)和結構體(Structure) 19

1.1.7 關系運算與邏輯運算 20

1.1.8 常用圖像處理數學函數 21

1.1.9 MATLAB程序流程控制 22

1.1.10 M文件編寫 25

1.1.11 MATLAB函數編寫 26

1.2 MATLAB圖像類型及其存儲方式 28

1.3 MATLAB的圖像轉換 30

1.4 讀取和寫入圖像文件 32

1.5 圖像的顯示 34

 

第 2章 Visual C++圖像處理編程基礎 37

2.1 位圖文件及其C++操作 37

2.1.1 設備無關位圖 37

2.1.2 BMP圖像文件數據結構 37

2.2 認識CImg類 40

2.2.1 主要成員函數列表 40

2.2.2 公有成員 41

2.3 CImg類基礎操作 41

2.3.1 加載和寫入圖像 41

2.3.2 獲得圖像基本信息 44

2.3.3 檢驗有效性 45

2.3.4 按像素操作 45

2.3.5 改變圖像大小 47

2.3.6 重載的運算符 47

2.3.7 在屏幕上繪制位圖圖像 48

2.3.8 新建圖像 48

2.3.9 圖像類型的判斷與轉化 50

2.4 DIPDemo工程 51

2.4.1 DIPDemo主界面 51

2.4.2 圖像操作和處理類——CImg和CImgProcess 52

2.4.3 文檔類——CDIPDemoDoc 53

2.4.4 視圖類——CDIPDemoView 53

2.5 CImg應用示例 54

2.5.1 打開圖像 54

2.5.2 清空圖像 55

2.5.3 像素初始化方法 56

2.5.4 保存圖像 57

 

第3章 圖像的點運算 58

3.1 灰度直方圖 58

3.1.1 理論基礎 58

3.1.2 MATLAB實現 59

3.1.3 Visual C++實現 62

3.2 灰度的線性變換 63

3.2.1 理論基礎 63

3.2.2 MATLAB程序的實現 64

3.2.3 Visual C++實現 66

3.3 灰度對數變換 67

3.3.1 理論基礎 67

3.3.2 MATLAB實現 68

3.3.3 Visual C++實現 69

3.4 伽瑪變換 70

3.4.1 理論基礎 70

3.4.2 MATLAB編程實現 70

3.4.3 Visual C++實現 72

3.5 灰度閾值變換 73

3.5.1 理論基礎 73

3.5.2 MATLAB編程實現 74

3.5.3 Visual C++實現 75

3.6 分段線性變換 76

3.6.1 理論基礎 76

3.6.2 MATLAB編程實現 77

3.6.3 Visual C++編程實現 81

3.7 直方圖均衡化 82

3.7.1 理論基礎 82

3.7.2 MATLAB編程實現 83

3.7.3 Visual C++實現 85

3.8 直方圖規定化(匹配) 86

3.8.1 理論基礎 86

3.8.2 MATLAB編程實現 87

3.8.3 Visual C++實現 89

 

第4章 圖像的幾何變換 92

4.1 解決幾何變換的一般思路 92

4.2 圖像平移 94

4.2.1 圖像平移的變換公式 94

4.2.2 圖像平移的實現 94

4.3 圖像鏡像 96

4.3.1 圖像鏡像的變換公式 96

4.3.2 圖像鏡像的實現 97

4.4 圖像轉置 99

4.4.1 圖像轉置的變換公式 99

4.4.2 圖像轉置的實現 99

4.5 圖像縮放 101

4.5.1 圖像縮放的變換公式 101

4.5.2 圖像縮放的實現 101

4.6 圖像旋轉 103

4.6.1 以原點為中心的圖像旋轉 103

4.6.2 以任意點為中心的圖像旋轉 104

4.6.3 圖像旋轉的實現 105

4.7 插值算法 106

4.7.1 **近鄰插值 106

4.7.2 雙線性插值 107

4.7.3 高階插值 109

4.8 圖像配準簡介 111

4.8.1 圖像配準 112

4.8.2 人臉圖像配準的MATLAB實現 112

4.9 Visual C++**應用實例——汽車牌照的投影失真校正 115

4.9.1 系統分析與設計 116

4.9.2 系統實現 117

4.9.3 功能測試 122

 

第5章 空間域圖像增強 126

5.1 圖像增強基礎 126

5.2 空間域濾波 127

5.3 圖像平滑 133

5.3.1 平均模板及其實現 133

5.3.2 高斯平滑及其實現 134

5.3.3 通用平滑濾波的Visual C++實現 138

5.3.4 自適應平滑濾波 139

5.4 中值濾波 140

5.4.1 性能比較 140

5.4.2 一種改進的中值濾波策略 144

5.4.3 中值濾波的工作原理 145

5.5 圖像銳化 145

5.5.1 理論基礎 145

5.5.2 基於一階導數的圖像增強——梯度算子 145

5.5.3 基於二階微分的圖像增強——拉普拉斯算子 149

5.5.4 基於一階與二階導數的銳化算子的比較 151

5.5.5 高提升濾波及其實現 152

5.5.6 高斯-拉普拉斯變換(Laplacian of a Gaussian,LoG) 156

 

第6章 頻率域圖像增強 159

6.1 頻率域濾波——與空間域濾波殊途同歸 159

6.2 傅里葉變換基礎知識 159

6.2.1 傅里葉級數 159

6.2.2 傅里葉變換 161

6.2.3 幅度譜、相位譜和功率譜 163

6.2.4 傅里葉變換的實質——基的轉換 165

6.3 快速傅里葉變換及實現 166

6.3.1 FFT變換的必要性 167

6.3.2 常見的FFT算法 167

6.3.3 按時間抽取的基-2 FFT算法 168

6.3.4 離散反傅里葉變換的快速算法 171

6.3.5 N維快速傅里葉變換 171

6.3.6 MATLAB實現 171

6.3.7 Visual C++實現 175

6.4 頻域濾波基礎 183

6.4.1 頻域濾波與空域濾波的關系 183

6.4.2 頻域濾波的基本步驟 184

6.4.3 頻域濾波的MATLAB實現 184

6.4.4 頻域濾波的Visual C++實現 185

6.5 頻率域低通濾波器 187

6.5.1 理想低通濾波器及其實現 187

6.5.2 高斯低通濾波器及其實現 191

6.6 頻率域高通濾波器 195

6.6.1 高斯高通濾波器及其實現 195

6.6.2 頻域拉普拉斯濾波器及其實現 198

6.7 MATLAB綜合案例——利用頻域濾波消除周期噪聲 201

6.7.1 頻域帶阻濾波器 201

6.7.2 帶阻濾波器消除周期噪聲 202

6.8 頻域濾波器與空域濾波器之間的內在聯系 204

附錄 205

 

第7章 小波變換 207

7.1 多分辨率分析 207

7.1.1 多分辨率框架 207

7.1.2 分解與重構的實現 213

7.1.3 圖像處理中分解與重構的實現 214

7.2 Gabor多分辨率分析 220

7.3 常見小波分析 223

7.3.1 Haar小波 223

7.3.2 Daubechies小波 225

7.4 高維小波 227

 

第8章 圖像復原 230

8.1 圖像復原的理論模型 230

8.1.1 圖像復原的基本概念 230

8.1.2 圖像復原的一般模型 232

8.2 噪聲模型 232

8.2.1 噪聲種類 233

8.2.2 MATLAB實現 237

8.2.3 Visual C++實現 239

8.3 空間濾波 244

8.3.1 空域濾波原理 244

8.3.2 MATLAB實現 245

8.3.3 Visual C++實現 247

8.4 逆濾波復原 250

8.4.1 逆濾波原理 250

8.4.2 MATLAB實現 251

8.4.3 Visual C++實現 253

8.5 維納濾波復原 256

8.5.1 維納濾波原理 256

8.5.2 MATLAB實現 257

8.5.3 Visual C++實現 260

8.6 有約束**小二乘復原 262

8.7 Lucky-Richardson復原 265

8.8 盲去捲積圖像復原 266

8.9 MATLAB圖像復原綜合案例——去除照片的運動模糊 268

 

第9章 彩色圖像處理 270

9.1 彩色基礎 270

9.2 彩色模型 272

9.2.1 RGB模型 272

9.2.2 CMY、CMYK模型 274

9.2.3 HSI模型 276

9.2.4 HSV模型 282

9.2.5 YUV模型 287

9.2.6 YIQ模型 292

9.2.7 Lab模型簡介 296

9.3 全彩色圖像處理基礎 296

9.3.1 彩色補償及其MATLAB實現 296

9.3.2 彩色平衡及其MATLAB實現 298

 

第 10章 圖像壓縮 300

10.1 圖像壓縮理論 300

10.1.1 圖像冗餘 300

10.1.2 香農定理 303

10.1.3 保真度評價 304

10.2 DCT變換與量化 304

10.2.1 DCT變換原理 304

10.2.2 量化 306

10.2.3 DCT變換和量化的Visual C++實現 307

10.3 預測編碼 312

10.4 霍夫曼編碼 313

10.4.1 霍夫曼編碼原理 313

10.4.2 霍夫曼編碼的Visual C++實現 316

10.5 算術編碼 324

10.5.1 算術編碼原理 324

10.5.2 算術編碼的Visual C++實現 327

10.6 游程編碼 330

10.7 JPEG和JPEG2000壓縮標準 331

10.8 Visual C++綜合案例——類似JPEG的圖像壓縮 332

 

第 11章 形態學圖像處理 341

11.1 預備知識 341

11.2 二值圖像中的基本形態學運算 342

11.2.1 腐蝕及其實現 343

11.2.2 膨脹及其實現 350

11.2.3 開運算及其實現 353

11.2.4 閉運算及其實現 356

11.3 二值圖像中的形態學應用 357

11.3.1 擊中與擊不中變換及其實現 357

11.3.2 邊界提取與跟蹤及其實現 359

11.3.3 區域填充及其Visual C++實現 363

11.3.4 連通分量提取及其實現 365

11.3.5 細化算法及其Visual C++實現 370

11.3.6 像素化算法及其Visual C++實現 374

11.3.7 凸殼及其Visual C++實現 379

11.3.8 bwmorph()函數 382

11.4 灰度圖像中的基本形態學運算 383

11.4.1 灰度膨脹及其實現 383

11.4.2 灰度腐蝕及其實現 386

11.4.3 灰度開、閉運算及其實現 389

11.4.4 頂帽變換(top-hat)及其實現 392

小結 394

 

第 12章 圖像分割 395

12.1 圖像分割概述 395

12.2 邊緣檢測 396

12.2.1 邊緣檢測概述 396

12.2.2 常用的邊緣檢測算子 397

12.2.3 MATLAB實現 400

12.2.4 Visual C++實現 402

12.3 霍夫變換 409

12.3.1 直線檢測 409

12.3.2 曲線檢測 411

12.3.3 任意形狀的檢測 411

12.3.4 Hough變換直線檢測的MATLAB實現 412

12.3.5 Hough變換直線檢測的Visual C++實現 415

12.4 閾值分割 418

12.4.1 閾值分割方法 419

12.4.2 MATLAB實現 422

12.4.3 Visual C++實現 423

12.5 區域分割 425

12.5.1 區域生長及其實現 425

12.5.2 區域分裂與合並及其MATLAB實現 429

12.6 小結 433

 

第 13章 特徵提取 434

13.1 圖像特徵概述 434

13.2 基本統計特徵 436

13.2.1 簡單的區域描繪子及其MATLAB實現 436

13.2.2 直方圖及其統計特徵 437

13.2.3 灰度共現矩陣及其Visual C++實現 439

13.3 特徵降維 442

13.3.1 維度災難 442

13.3.2 特徵選擇簡介 443

13.3.3 主成分分析 444

13.3.4 快速PCA及其實現 450

13.4 綜合案例——基於PCA的人臉特徵抽取 451

13.4.1 數據集簡介 452

13.4.2 生成樣本矩陣 452

13.4.3 主成分分析 453

13.4.4 主成分臉可視化分析 454

13.4.5 基於主分量的人臉重建 456

13.5 局部二進制模式 457

13.5.1 基本LBP 457

13.5.2 圓形鄰域的LBPP,R算子 458

13.5.3 統一化LBP算子——Uniform LBP及其MATLAB實現 459

13.5.4 MB-LBP及其MATLAB實現 462

13.5.5 圖像分區及其MATLAB實現 467

 

第 14章 圖像識別初步 470

14.1 模式識別概述 470

14.2 模式識別方法分類 474

14.3 **小距離分類器和模板匹配 476

14.3.1 **小距離分類器及其MATLAB實現 476

14.3.2 基於相關的模板匹配 477

14.3.3 相關匹配的計算效率 482

 

第 15章 人工神經網絡 484

15.1 人工神經網絡簡介 484

15.1.1 仿生學動機 484

15.1.2 人工神經網絡的應用實例 486

15.2 人工神經網絡的理論基礎 487

15.2.1 訓練線性單元的梯度下降算法 487

15.2.2 多層人工神經網絡 492

15.2.3 Sigmoid單元 492

15.2.4 反向傳播(Back Propagation,BP)算法 493

15.2.5 訓練中的問題 496

15.3 基於ANN的數字字符識別系統DigitRec——分析與設計 498

15.3.1 任務描述 498

15.3.2 數據集簡介 498

15.3.3 設計要點 498

15.4 基於ANN的數字字符識別系統——DigitRec的實現 500

15.4.1 構建神經元結構——SNeuron 500

15.4.2 構建神經網絡網絡層——SNeuronLayer 501

15.4.3 神經網絡信息頭——NeuralNet_Header 502

15.4.4 神經網絡類——CNeuralNet 502

15.4.5 神經網絡的訓練數據類——CNeuralData 513

15.4.6 誤差跟蹤類——CValueTrack 518

15.4.7 訓練對話框類——CTrainDlg 520

15.4.8 測試對話框類——CTestDlg 523

15.5 基於ANN的數字字符識別系統——DigitRec的測試 526

15.5.1 訓練 526

15.5.2 測試 526

15.6 改進的DigitRec 527

15.6.1 數字字符圖像的預處理類——COCRImageProcess 527

15.6.2 輸入圖像的預處理——實現 528

15.6.3 輸入圖像的預處理——測試 539

15.7 神經網絡參數對訓練和識別的影響 540

15.7.1 隱藏層單元數目的影響 540

15.7.2 學習率的影響 541

15.7.3 訓練時代數目的影響 542

 

第 16章 支持向量機 544

16.1 支持向量機的分類思想 544

16.2 支持向量機的理論基礎 545

16.2.1 線性可分情況下的SVM 545

16.2.2 非線性可分情況下的C-SVM 548

16.2.3 需要核函數映射情況下的SVM 550

16.2.4 推廣到多類問題 553

16.3 SVM的MATLAB實現 554

16.3.1 訓練——svmtrain 555

16.3.2 分類——svmclassify 556

16.3.3 應用實例 557

16.4 綜合案例——基於PCA和SVM的人臉識別系統 557

16.4.1 人臉識別簡介 558

16.4.2 前期處理 558

16.4.3 數據規格化 558

16.4.4 核函數的選擇 561

16.4.5 參數選擇 562

16.4.6 構建多類SVM分類器 564

16.4.7 實驗結果 566

16.5 SVM在線資源 571

16.5.1 MATLAB的SVM工具箱 572

16.5.2 LibSVM的簡介 572

 

第 17章 AdaBoost 573

17.1 AdaBoost分類思想 573

17.2 AdaBoost理論基礎 575

17.3 構建AdaBoost的MATLAB工具箱 577

17.4 MATLAB綜合案例——基於AdaBoost的面部圖像男女性別分類 580

17.4.1 關於數據集 580

17.4.2 數據的預處理 581

17.4.3 算法流程實現 581

 

參考文獻 583