3dwoo大學簡體電腦書店
基于FPGA的數字圖像處理原理及應用
( 簡體 字)
作者:牟新剛,周曉,鄭曉亮類別:1. -> 電子工程 -> FPGA
   2. -> 教材 -> 數位影像處理
出版社:電子工業出版社基于FPGA的數字圖像處理原理及應用 3dWoo書號: 45906
詢問書籍請說出此書號!
有庫存
NT售價: 330
出版日:1/1/2017
頁數:452
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121293351 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 圖像處理基礎 1
1.1 數字圖像處理簡介 1
1.1.1 圖像采樣 1
1.1.2 圖像量化 2
1.1.3 數字圖像處理 3
1.2 數字圖像處理系統 4
1.2.1 圖像處理系統構成 4
1.2.2 原始圖像獲取 6
1.2.3 圖像傳感器接口 16
1.2.4 圖像處理流水線 17
1.2.5 圖像與視頻壓縮 19
1.2.6 視頻顯示處理 26
第2章 FPGA與圖像處理 32
2.1 使用FPGA的原因 32
2.2 FPGA技術優勢 33
2.3 FPGA的發展歷程 34
2.4 FPGA生產廠家及其產品 35
2.4.1 Altera 35
2.4.2 Xilinx 37
2.4.3 Lattice 37
2.4.4 Atmel 38
2.4.5 Actel 38
2.5 FPGA開發流程 38
2.5.1 FPGA設計方法 38
2.5.2 典型的FPGA開發流程 39
2.6 FPGA常用開發工具 44
2.6.1 代碼輸入工具 45
2.6.2 綜合工具 46
2.6.3 仿真工具 47
2.6.4 實現與優化工具 47
2.6.5 EDA工具 48
2.7 FPGA圖像處理的開發流程 49
2.7.1 需求分析及問題描述 49
2.7.2 軟件算法設計及驗證 50
2.7.3 硬件平臺設計 51
2.7.4 FPGA映射 52
2.7.5 仿真及驗證 54
第3章 FPGA編程語言 55
3.1 HDL語言簡介 55
3.2 模塊化設計 56
3.3 可移植性 57
3.4 不可移植性 61
3.5 測試邏輯 62
3.6 冗余邏輯 63
3.7 常用語法 63
3.7.1 參數化 63
3.7.2 條件編譯 68
3.7.3 位寬匹配 69
3.7.4 二維數組 69
3.8 應用實例 70
3.8.1 信號邊沿檢測 70
3.8.2 多拍處理 72
3.8.3 圖像行列計數 73
第4章 映射技術 77
4.1 系統結構 77
4.1.1 流水線設計 77
4.1.2 并行陣列 81
4.2 計算技術 82
4.2.1 算法轉換 82
4.2.2 近似計算 83
4.2.3 增量更新 85
4.2.4 查找表 85
4.2.5 浮點計算 89
4.2.6 Cordic技術 96
4.3 存儲器映射 103
4.3.1 幀緩存 104
4.3.2 行緩存 105
4.3.3 異步緩存 113
4.3.4 增加存儲器帶寬 114
4.3.5 存儲器建模與仿真 115
4.4 其他設計技巧 116
4.4.1 合理處理參數 116
4.4.2 資源及模塊復用 117
4.4.3 防止亞穩態 118
第5章 系統仿真 121
5.1 Modelsim使用基礎 121
5.1.1 Modelsim簡介 121
5.1.2 Modelsim圖形界面及
仿真示例 122
5.1.3 使用腳本命令來加速
仿真 133
5.1.4 其他加速仿真的方法 136
5.2 視頻圖像處理仿真測試系統 136
5.2.1 仿真測試系統框架 136
5.2.2 視頻時序模擬 137
5.2.3 視頻捕獲模擬 145
5.2.4 MFC程序設計 157
5.2.5 通用testbench 161
第6章 直方圖操作 167
6.1 灰度直方圖 167
6.2 直方圖均衡化 169
6.3 直方圖規定化 172
6.4 直方圖拉伸 175
6.5 基于FPGA的直方圖操作 179
6.5.1 FPGA直方圖統計 179
6.5.2 FPGA直方圖均衡化 192
6.5.3 FPGA直方圖線性拉伸 203
第7章 線性濾波器 214
7.1 線性濾波 214
7.1.1 均值濾波 214
7.1.2 高斯濾波 216
7.1.3 Sobel算子 219
7.1.4 離散傅里葉變換 222
7.2 基于FPGA的均值濾波 227
7.2.1 整體設計與模塊劃分 227
7.2.2 子模塊設計 228
7.2.3 Verilog代碼設計 232
7.2.4 仿真與調試結果 243
7.3 基于FPGA的Sobel算子 247
7.3.1 整體設計與模塊劃分 247
7.3.2 Sobel模板計算電路 249
7.3.3 基于Cordic的坐標系轉換
電路 251
7.3.4 Verilog代碼設計 257
7.3.5 仿真與調試結果 274
第8章 非線性濾波器 280
8.1 統計排序濾波 280
8.2 基于FPGA的統計排序濾波器 282
8.2.1 并行全比較排序法原理 282
8.2.2 整體設計與模塊劃分 285
8.2.3 子模塊設計 286
8.2.4 Verilog代碼設計 288
8.2.5 仿真與調試結果 298
第9章 形態學濾波 303
9.1 形態學濾波簡介 303
9.2 形態學濾波的基本應用 304
9.3 基于FPGA的Tophat濾波設計 311
9.3.1 頂層框架設計 311
9.3.2 子模塊設計 312

9.3.3 Verilog代碼設計 317
9.3.4 仿真及調試結果 337
第10章 圖像分割 341
10.1 圖像分割簡介 341
10.2 基于閾值的分割 341
10.2.1 全局閾值分割 341
10.2.2 局部自適應閾值分割 344
10.3 基于邊緣的分割 347
10.3.1 Canny算子 347
10.3.2 Canny算子的計算步驟 347
10.4 基于FPGA的局部自適應分割 356
10.4.1 算法轉換 357
10.4.2 FPGA結構設計 358
10.4.3 子模塊設計 359
10.4.4 Verilog代碼設計 363
10.4.5 仿真與調試 371
10.5 基于FPGA的Canny算子設計 378
10.5.1 非最大值抑制電路設計 378
10.5.2 滯后閾值分割電路設計 381
10.5.3 Verilog代碼設計 382
10.5.4 仿真調試結果 390
第11章 視頻接口 391
11.1 視頻輸入接口 391
11.1.1 模擬視頻輸入 391
11.1.2 CameraLink接口 394
11.1.3 USB接口 399
11.1.4 FireWire接口 401
11.1.5 GigE Vision?接口 407
11.1.6 直接接口 410
11.2 視頻輸出接口 411
11.2.1 CVT標準 411
11.2.2 VGA 416
11.2.3 PAL 425
11.2.4 DVI/HDMI 433
參考文獻 441
本書首先介紹FPGA程序設計和圖像與視頻處理的關鍵基礎理論,然后通過實例代碼詳細講解了如何利用FPGA實現直方圖操作中的直方圖統計/均衡化/線性拉伸/規定化、線性濾波器操作中的均值濾波器、Sobel算子(濾波、求模、求角度)、非線性濾波器操作中的排序類算法/形態學濾波、圖像分割算法中的局部自適應分割/Canny算子等。本書在仿真測試部分設計了一種完善的通用測試系統,并利用此測試系統在每一章的仿真測試環節對所設計算法進行嚴格的測試和驗證。本書在最后一章介紹了在視頻處理領域常見的輸入/輸出接口。本書偏向于工程應用,在書中有大量關于如何利用FPGA實現圖像處理算法的實例及代碼,并對這些算法的原理及其實現過程、算法測試等做了詳細的介紹,全部的算法都進行了仿真測試驗證。本書提供實例的全部源代碼,可登錄以下網址免費獲取:http://www.hxedu.com.cn(華信資源教育網)。本書適用于需要利用FPGA進行圖像處理和視頻分析的學者和工程開發人員。讀者需要具備一定的嵌入式設計及FPGA設計的基礎知識,特別是Verilog語言的語法基礎。

最近幾年圖像處理與機器視覺的發展非常迅速,圖像處理領域也被認為是未來幾十年最有前途的領域之一。
隨著現代圖像及視頻處理技術的不斷發展,人們對圖像處理提出了新的要求,圖像處理系統的硬件體積越來越小,實時性也越來越好。特別是最近幾年,圖像的分辨率和掃描頻率都有了較大范圍的提升,1080P分辨率的視頻已經非常流行,2K甚至4K分辨率的圖像也在火熱發展中。目前比較火熱的VR技術更是需要雙通道的高分辨率、高掃描頻率的視頻數據及處理能力。
這些新的要求給之前的圖像處理平臺帶來了嚴重的挑戰,傳統的圖像處理技術主要基于軟件平臺,一般運行在Windows平臺的PC上。雖然現代PC的主頻較高,但是用軟件的串行化處理方法進行圖像處理的效率還是非常低的。例如,用PC處理一個比較復雜的高分辨率圖像處理算法花費半個小時或更多時間也是常見的事情。然而,對于實時圖像處理,例如實時跟蹤和視頻顯示,這個處理速度是遠遠不夠的。
正是由于這個原因,嵌入式圖像處理技術得到了廣泛的應用,一些帶有圖像視頻處理組件的嵌入式處理器開始在圖像處理領域大顯身手,例如,TI公司生產的達芬奇系列的DSP。這些組件實際上是圖像處理硬核,但是大部分是標準化接口的硬核,針對數字視頻、圖像采樣處理、視覺分析等應用進行了剪裁和優化。對于一個特定的圖像處理任務,需要利用其內部的處理器來進行串行化軟件處理。多核處理器的發展使得多個圖像處理任務可以同時執行,也大大提高了圖像處理的實時性。盡管這些嵌入式處理器的發展加快了圖像處理和視頻分析的實際應用,但其本質上仍為軟件處理的串行方式,難以滿足通用圖像處理中大數據量計算的需求。
隨著成像傳感器技術和信號處理技術的迅猛發展,圖像的分辨率、幀頻和像元有效位數越來越高,圖像處理算法越來越復雜,圖像處理結果的實時性要求越來越高,基于PC和DSP軟件平臺的圖像處理系統已難以滿足要求。由于圖像處理算法天然的并行性,FPGA的加入給圖像處理帶來了新的活力,特別是針對圖像處理底層一些并行特性的圖像處理算法。例如二維卷積,FPGA可以保證在極低主頻下得到比DSP平臺快得多的處理速度,利用其流水線技術可以在每個時鐘輸出一個處理后像素。然而,FPGA并不適合進行串行化處理算法和部分其他的上層算法。因此,目前DSP+FPGA平臺是圖像處理平臺的主流。此外,FPGA在一些低成本的機器視覺領域也得到了廣泛的應用。例如,著者所在實驗室研究的利用線列CCD和激光實現高精度位移測量項目,該項目利用FPGA實現CCD時序驅動、A/D轉換和測量算法實現,并實現高速接口與上位機。
在FPGA上實現一個圖像處理算法包括確定具體算法和對其進行并行性改造、將算法中計算和存儲需求與FPGA內部可用資源相映射、將算法映射到硬件結構上等步驟。然而,目前只有很少的公開資料可供初學者學習該領域的知識,可以讓初學者深入了解設計思路、過程、代碼的文獻資料更難找到。
為改變這一現狀,本書從FPGA圖像處理理論和分析入手,重點講解圖像處理算法移植到FPGA中的基本思路和方法,突出工程應用。每一章均附有C/C++實現代碼,同時用循序漸進、自頂向下的方式設計FPGA算法模塊,針對每一個模塊設計了詳細的實現框圖,確保讀者能理解算法設計的原理。此外,每個算法都配有Verilog實現方法,并給出仿真結果。本書還提出了一個通用的利用Modelsim和VS實現圖像處理的仿真測試平臺。
本書內容概述如下:
(1)第1~5章是基礎章節,重點介紹數字圖像處理和FPGA程序設計的基礎知識。
第1章簡單介紹了圖像處理的基礎知識,包括圖像處理的發展現狀,還地介紹了圖像從獲取到顯示存儲的基本流程。
第2章首先介紹了FPGA的發展現狀,生產廠家及其開發流程。接著介紹了基于FPGA的圖像處理的基本開發流程。
第3章主要介紹了在FPGA中應用的編程語言。本章并沒有詳細介紹Verilog語法,而是從工程應用的角度介紹常用的設計方法和實例。
第4章主要介紹了把軟件算法映射到FPGA常用的技巧。首先介紹了應用較廣泛的流水線設計方法,接著介紹了FPGA硬件計算技術,包括一些常用的計算轉換、查找表、浮點計算、Cordic計算等方法。最后介紹了在圖像處理中用途非常多的存儲器映射,并提出了一些其他設計技巧。
第5章首先簡要介紹了仿真測試軟件Modelsim的使用,接著重點介紹了一個通用的視頻圖像處理仿真測試系統。這個測試系統包括完整的視頻模擬、視頻捕獲,以及testbench設計,并結合基于MFC的VC上位機來實現測試系統的搭建。
(2)第6~10章主要介紹算法實現。
第6章介紹直方圖操作,主要介紹幾種常用直方圖操作的FPGA實現:直方圖統計、直方圖均衡、直方圖規定及直方圖線性拉伸。
第7章介紹基于圖像處理的線性濾波。首先,介紹了均值濾波算法、高斯濾波算法、Sobel算子及FFT等常見的幾種線性濾波原理。其次,介紹了均值濾波算法和Sobel算子的FPGA實現。
第8章主要介紹基于圖像處理的非線性濾波算法,包括排序濾波的基本原理及其FPGA實現方法。
第9章主要介紹基于圖像處理的形態學濾波算法,包括形態學濾波的基本概念,包括形態學膨脹、形態學腐蝕、開運算及閉運算等。重點介紹了基于FPGA的Tophat濾波的原理及實現方法。
第10章主要介紹基于圖像處理的常見的分割算法,包括全局閾值分割、局部自適應閾值分割及Canny算子。重點介紹基于FPGA的局部自適應閾值分割和Canny算子的設計與實現。
第11章主要介紹與視頻和圖像處理相關的輸入/輸出接口,包括CameraLink、火線接口、USB接口、千兆以太網等視頻輸入接口和CVT標準,以及VGA,PAL,DVI,HDMI等視頻輸出接口。其中,給出了VGA和PAL接口的Verilog代碼實現。
為了確保讀者能夠快速地掌握FPGA圖像處理設計方法,本書提供了算法章節的全部源代碼。
本書由武漢理工大學機電工程學院牟新剛、周曉和鄭曉亮合著,全書由牟新剛統稿。
本書參考了相關著作及資料的部分內容和圖表,部分技術資料取材于互聯網,在此對這些文獻的作者一并表示謝意。盡管我們為編寫本書付出了心血和努力,但仍然存在一些疏漏及欠妥之處,敬請讀者批評指正。
著者
2016.5
pagetop