⑴ Visual C++數字圖像處理技術詳解的目錄
前言
第一篇 數字圖像處理編程基礎
第1章 Visual C++圖像處理基礎
1.1 visual C++概述
1.2 數字圖像處理的研究內容及應用領域
1.3 顏色模式和調色板
1.3.1 顏色模式
1.3.2 Windows調色板
1.4 數字圖像文件格式
1.4.1 BMP文件格式
1.4.2 其他文件格式
1.5 使用visual C++處理數字圖像的基本方法
1.5.1 使用GDI+處理數字圖像
1.5.2 使用DIB處理數字圖像
1.5.3 使用自定義類CDib處理數字圖像
1.6 綜合實例——圖像瀏覽器
1.7 實踐拓展
第二篇 數字圖像處理核心技術
第2章 圖像幾何變換
2.1 圖像位置變換
2.1.1 圖像平移
2.1.2 圖像旋轉
2.1.3 圖像鏡像
2.1.4 圖像轉置
2.2 圖像尺度變換
2.2.1 圖像縮放
2.2.2 插值演算法
2.3 綜合實例——魔鏡
2.4 實踐拓展
第3章 圖像正交變換
3.1 基本正交變換
3.1.1 離散傅里葉變換
3.1.2 離散餘弦變換
3.1.3 離散沃爾什變換
3.2 特徵變換
3.2.1 K-L變換
3.2.2 SVD變換
3.2.3 小波變換
3.3 綜合實例——特徵提取
3.4 實踐拓展
第4章 圖像增強
4.1 灰度變換增強
4.1.1 線性灰度增強
4.1.2 分段線性灰度增強
4.1.3 非線性灰度增強
4.2 直方圖增強
4.2.1 直方圖統計
4.2.2 直方圖均衡化
4.2.3 直方圖規定化
4.3 圖像平滑
4.3.1 鄰域平均法
4.3.2 加權平均法
4.3.3 選擇式掩膜平滑
4.3.4 中值濾波法
4.4 圖像銳化
4.4.1 梯度銳化
4.4.2 拉普拉斯掩膜銳化
4.5 頻域增強
4.5.1 低通濾波
4.5.2 高通濾波
4.5.3 帶阻濾波
4.5.4 同態濾波
4.6 彩色增強
4.6.1 真彩色增強
4.6.2 假彩色增強
4.6.3 偽彩色增強
4.7 綜合實例——照片處理器
4.8 實踐拓展
第5章 圖像復原
5.1 圖像退化模型
5.2 線性復原
5.2.1 無約束逆濾波
5.2.2 有約束維納濾波
5.2.3 有約束最小平方濾波
5.2.4 運動模糊圖像復原
5.3 非線性復原
5.3.1 最大後驗復原
5.3.2 最大熵復原
5.3.3 投影復原
5.4 盲目復原與幾何復原
5.4.1 盲目圖像復原
5.4.2 圖像幾何畸變的校正
5.5 綜合實例——模糊照片復原
5.6 實踐拓展
第6章 圖像重建
6.1 圖像重建與可視化工具VTK
6.1.1 圖像重建
6.1.2 可視化工具VTK
6.2 VTK的安裝與配置
6.2.1 安裝前的准備
6.2.2 開始實施安裝
6.2.3 Visual Studio 2005環境的配置
6.2.4 測試開發環境
6.3 傳統重建演算法
6.3.1 傅里葉反投影重建
6.3.2 卷積反投影重建
6.3.3 代數重建
6.3.4 超解析度重建
6.4 三維重建數據可視化
6.4.1 三維圖像的面繪制
6.4.2 三維圖像的體繪制
6.5 綜合實例——CT圖像重建
6.6 實踐拓展
第7章 形態學處理
7.1 形態學基本概念
7.2 二值圖像形態學處理
7.2.1 圖像腐蝕
7.2.2 圖像膨脹
7.2 -3開運算和閉運算
7.2.4 擊中擊不中變換
7.2.5 骨架提取
7.3 灰度圖像形態學處理
7.3.1 灰值腐蝕和膨脹
7.3.2 灰值開運算和閉運算
7.3.3 灰值形態學梯度
7.3.4 Top-Hat變換
7.4 綜合實例——白細胞檢測
7.5 實踐拓展
第8章 圖像分割
8.1 邊緣檢測法
8.1.1 Roberts運算元
8.1.2 Sobel運算元
8.1.3 Prewitt運算元
8.1.4 Krisch運算元
8.1.5 Laplacian運算元
8.1.6 Gauss-Laplacian運算元
8.2 閾值分割法
8.2.1 最大方差閾值分割
8.2.2 自適應閾值分割
8.3 邊界分割法
8.3.1 輪廓提取
8.3.2 邊界跟蹤
8.4 其他分割法
8.4.1 區域生長法
8.4.2 彩色分割法
8.4.3 分水嶺分割法
8.4.4 水平集分割法
8.5 綜合實例——指紋提取
8.6 實踐拓展
第9章 圖像匹配
9.1 基於像素的匹配
9.1.1 歸一化積相關灰度匹配
9.1.2 序貫相似性檢測法匹配
9.2 基於特徵的匹配
9.2.1 不變矩匹配法
9.2.2 距離變換匹配法
9.2.3 最小均方誤差匹配法
9.3 綜合實例——遙感圖像匹配
9.4 實踐拓展
第三篇 數字圖像媒體處理技術
第10章 圖像壓縮編碼
10.1 無損壓縮
10.1.1 Huffman編碼
10.1.2 Shannon-Fano編碼
10.1.3 算術編碼
10.1.4 遊程編碼
10.1.5 線性預測編碼
10.1.6 位平面編碼
10.2 有損壓縮
10.2.1 有損預測編碼
10.2.2 變換編碼
10.3 JPEG 2000編碼
10.3.1 JPEG 2000概述
10.3.2 JPEG 2000編碼過程
10.3.3 JPEG 2000圖像壓縮碼流格式
10.4 綜合實例——圖像編碼解碼器
10.5 實踐拓展
第11章 圖像特效
11.1 顯示特效
11.1.1 掃描特效
11.1.2 移動特效
11.1.3 百葉窗特效
11.1.4 柵條特效
11.1.5 馬賽克特效
11.1.6 雨滴特效
11.2 濾鏡效果
11.2.1 底片效果
11.2.2 雕刻效果
11.2.3 黑白效果
11.2.4 霧化效果
11.2.5 素描效果
11.3 綜合實例——圖像特效編輯器
11.4 實踐拓展
第四篇 數字圖像編程高級應用
第12章 Visual C++結合Open CV編程
12.1 OpenCV概述
12.2 OpenCV編程環境
12.2.1 OpenCV的獲取
12.2.2 0penCV的安裝和Visual C++的配置
12.3 OpenCV編程基礎
12.3.1 OpenCV編程規范
12.3.2 0penCV基礎數據結構
12.3.3 OpenCV動態數據結構
12.3.4 OpenCV常用函數
12.3.5 在Vsual C++環境下使用OpenCV
12.4 綜合實例——人臉檢測
12.5 實踐拓展
第13章 Visual C++結合MATLAB編程
13.1 MATLAB概述
13.2 MATLAB圖像處理
13.2.1 MATLAB程序設計基礎
13.2.2 MAⅡAB圖像處理工具箱
13.2.3 Simulink視頻和圖像處理模塊
13.3 在Visual C++中調用MATLAB
13.3.1 使用MATLAB引擎
13.3.2 使用MATLAB編譯器
13.3.3 使用MATCOM
13.3.4 在VC中調用Simulink模型
13.4 綜合實例-運動物體跟蹤
13.5 實踐拓展
第14章 車牌識別系統綜合應用
14.1 車牌識別系統概述
14.2 車牌識別系統架構
14.2.1 系統硬體平台
14.2.2 系統軟體平台
14.3 車牌定位
14.3.1 車輛圖像採集與預處理
14.3.2 車牌區域定位
14.4 字元分割
14.4.1 圖像二值化
14.4.2 傾斜校正
14.4.3 分割字元
14.5 車牌識別
14.5.1 字元特徵提取
14.5.2 分類器設計
14.5.3 字元識別
14.6 實踐拓展
參考文獻
⑵ 演算法研究現狀
Farmer以及Deutsch和Journel雖然在1992年就提出了多點地質統計學方法,但其主要是通過在模擬退火中加入多點統計目標函數,然後對模擬圖像進行反復迭代達到與輸入統計參數匹配。該演算法受到數據樣板大小、模擬類型值多少的影響,此外迭代收斂也是一個不可避免的問題。受計算機性能以及演算法的雙重影響,模擬速度極其緩慢。因此對該方法的應用報道很少。1993年,Guardiano et al.提出了一種非迭代演算法。它並不通過變差函數及克里金建立條件概率分布,而是直接利用數據樣板掃描訓練圖像,並根據數據樣板掃描獲得的不同數據事件出現頻率,代替數據事件的多點統計概率。即對於每一個未取樣點,通過局部條件數據構成的數據事件,掃描訓練圖像推斷局部數據事件聯合未知點的條件概率(cpdf)。該方法屬於序貫模擬的范疇,但由於每次條件概率的推斷都需要重復掃描訓練圖像,對計算機性能要求相當高,因而該方法也一直停留在實驗室階段。
多點地質統計學得到快速發展,是源於搜索樹概念的提出,即一種存儲數據事件概率的數據結構。Strebelle(2000)對Guardiano et al.的演算法進行了改進,提出將掃描訓練圖像獲得的多點概率保存在「搜索樹」里,隨後的模擬採用序貫模擬的思路。在每模擬一個未知節點時,條件概率直接從「搜索樹」里讀取,大大縮短了運算機時,使得多點統計學儲層建模真正意義上的推廣成為可能。Strebelle將此演算法命名為Snesim(Singlenormal equation simulation)。Snesim演算法推出後,立刻受到建模界的關注,成為近幾年儲層建模熱點。通過實際研究區建模,有些學者指出Snesim尚存在一些缺陷,表現在以下幾個方面:
1)訓練圖像的平穩性問題。如何將實際儲層中的大量非平穩信息表現為訓練圖像並能應用多點統計方法進行建模;
2)集成軟數據(如地震)及評估訓練圖像或軟數據的權重問題,尤其是它們在某種程度上不一致時;
3)儲層形態合理再現問題。在現有演算法中,當數據事件稀少時,往往通過去除最遠條件節點方法來獲得可靠的數據事件,而這種處理方法往往會導致儲層構型再現失敗;此外,訓練圖像過小將導致目標不連續,影響建模真實性;而訓練圖像過大則導致運行機時大,Snesim的實施存在困難;
4)多重網格搜索問題。兩點統計學的多重網格搜索方法,不能改變粗網格模擬值,而條件數據重新分配具有相當大的誤差,導致實際地質結構特徵再現效果較差;
5)由於多點地質統計學仍然是基於像元的演算法,所以只能在一定程度上重現目標的形狀,對於更復雜的如尖角或者U型目標的應用則效果較差。
對於Snesim存在的問題,不同學者通過研究提出了各自的解決方案或建議。如非平穩性問題,Caers(2002)就採取類似於變差函數套合方式,通過伸縮和旋轉變換,將非平穩的地質模式變化為平穩的地質模式,隨後採用Snesim進行建模。再如數據樣板再現,Liu(2003)就通過賦予不同節點不同權重,在數據事件稀少時,舍棄權重最小數據點以獲得可靠的數據事件,而不是Snesim中去除最遠條件節點的方式;Stien(2007)則允許刪除條件數據點的值,而不是把它從條件數據集中移去。當所有節點被模擬後,再對那些被刪掉值的點重新模擬。Suzuki(2007)提出了一種新的方法,即實時後處理方法(PRTT),其主要思想是在某一點上如果條件化失敗,不是去掉一些條件數據縮小數據模板,而是返回到上一步,對前面模擬的數據進行修改,以達到數據事件合理化。在儲層屬性及數據事件多時,Arpat(2003)、Zhang(2003)等提出聚類的思想對相似數據事件進行歸類,從而減少運行機時及不合理數據事件的出現概率。
儲層建模是對地下沉積儲層地質模式的再現。考慮到儲層建模過程,實質上是對地下儲層特徵沉積模式的重建過程。如果將各種地質模式看成是一幅圖像的構成單元,對儲層預測也就是圖像的重建過程。基於此思想,在2003年Stanford油藏預測中心舉行的會議上,Arpat提出了Simpat(Simulation with pattenrs)多點地質統計學隨機建模方法,即通過識別不同的地質模式,採用相似性判斷方法,在建模時再現這些地質模式。Simpat模擬流程採用的也是序貫模擬的思路。由於是對地質模式處理,而地質模式是通過空間多個點構成的數據事件反映的,因此,在模擬實現時以整個數據事件賦值或者數據事件的子集取代了單個模擬網格節點的賦值。也就是說,在模擬過程中,在對某個未知值的預測過程中,除了模擬節點處賦值外,用來預測節點處值的條件數據的值也會有變化。Arpat通過這種數據事件整體賦值,實現儲層地質模式再現。在數據事件選擇上,Arpat擯棄了傳統的概率推斷、蒙特卡羅抽樣的隨機建模方法,而是借鑒計算機視覺及數字圖像重建領域的知識,利用數據事件的相似性對數據事件進行選擇。Arpat對此方法進行了較詳細的論證,表明此方法能夠較好再現儲層結構特徵。在此基礎上,基於距離相似度的多點地質統計學(distance-based multiple point geostatistics)開始得到研究和發展(Suzuki et al.,2008;Scheidt et al.,2008;Honarkhah et al.,2010)。與傳統基於統計抽樣的模擬不同,基於距離相似度的方法直接計算數據事件的相似性,並用最相似的數據進行整體替換。
基於統計抽樣以及儲層模式分類的考慮,Zhang(2006)提出了Fitlersim(Filter-Based simulation)方法。他認為在訓練圖像中眾多儲層模式可以由幾個濾波函數進行描述,由濾波函數獲得儲層模式的統計得分,在此基礎上,進行儲層模式的聚類,達到降低儲層維數、提高運算效率的目的。此外,在聚類過程中考慮相似的儲層模式出現的頻率,使得儲層預測具有統計學的意義。Yin(2009)則從目標骨架提取出發,約束多點統計模式選擇,提出了基於儲層骨架的多點地質統計學方法。