內容簡介
MATLAB圖像處理工具箱是目前最流行的圖像處理工具之一,其函式能有效地實現各種圖像算法。本書從實用角度出發,詳細介紹MATLAB各種圖像處理函式,包括圖像顯示、繪圖、圖像類型轉換、圖像用戶界面、空間變換、圖像統計、圖像代數運算、圖像增強、去模糊、濾波變換、形態學操作、塊與鄰域操作、色彩空間變換函式等。為加深讀者對MATLAB圖像處理套用的認識,書中列舉了8個MATLAB圖像處理套用綜合實例。本書寫作結構清晰、解釋翔實、實例豐富。隨書贈送的DVD光碟中附有大量教學視頻,方便讀者學習與提高。本書可作為MATLAB圖像處理工作者的參考用書。
作者簡介
國防科學技術大學博士,大學教師。從事智慧型算法套用、有限元仿真、慣性器件加工研究工作,參與過多個智慧型與仿真項目的開發,熟悉各種工程計算、有限元仿真以及圖像處理軟體,精通MATLAB軟體套用,有豐富的教學和開發經驗。
目錄
第1章 圖像顯示與圖像檔案輸入/輸出函式 1
1.1 圖像顯示函式 1
1.1.1 immovie—創建視頻結構數組 1
1.1.2 implay—在視頻播放工具中播放視頻 2
1.1.3 imshow—顯示圖像 3
1.1.4 colorbar—顯示顏色條 7
1.1.5 imtool—顯示圖像工具 8
1.1.6 montage—在矩形框中顯示多幀圖像序列 11
1.1.7 subimage—在圖形視窗或視窗的分區中顯示圖像 14
1.1.8 warp—將圖像顯示到紋理映射表面 16
1.1.9 image—顯示圖像對象 17
1.1.10 movie—播放視頻 19
1.1.11 line—創建線條 22
1.2 圖像檔案輸入/輸出函式 25
1.2.1 imwrite—把圖像寫入圖形檔案中 25
1.2.2 imread—從圖像檔案中讀取圖像 26
1.2.3 analyze75info—從analyze7.5數據集頭檔案中讀取信息 30
1.2.4 analyze75read—讀取analyze7.5數據 30
1.2.5 dicomanon—修改DICOM檔案 31
1.2.6 dicomdict—獲得DICOM數據目錄 31
1.2.7 dicominfo—從DICOM檔案中讀取元數據信息 32
1.2.8 dicomlookup—尋找DICOM檔案的屬性 34
1.2.9 dicomread—從DICOM檔案中讀取圖像 34
1.2.10 dicomuid—生成DICOM檔案標識符 35
1.2.11 dicomwrite—把圖像寫入DICOM檔案 36
1.2.12 getframe—獲取動畫幀 37
1.2.13 imfinfo—返回圖形檔案的信息 39
1.2.14 hdrread—讀取HDR圖像 41
1.2.15 hdrwrite—將HDR圖像寫入檔案 41
1.2.16 interfileinfo—從Interfile檔案中讀取圖像信息 43
1.2.17 interfileread—從Interfile檔案中讀取圖像 43
1.2.18 makehdr—創建HDR圖像 43
1.2.19 nitfinfo—從NITF檔案中讀取元數據信息 45
1.2.20 nitfread—從NITF檔案中讀取圖像 46
第2章 圖形繪製 47
2.1 MATLAB二維圖形繪製 47
2.1.1 plot—繪製二維平面圖 47
2.1.2 figure—創建圖形視窗 51
2.1.3 subplot—分區繪圖 53
2.1.4 set—設定圖像屬性 57
2.1.5 axis—設定坐標軸 59
2.1.6 xlabel/ylabel/zlabel—添加坐標軸標註 61
2.1.7 title—添加圖名 62
2.1.8 legend—添加圖例 64
2.1.9 hold—圖形保持 67
2.1.10 ginput—獲取指定點坐標值 68
2.1.11 semilogx/semilogy—設定x/y軸單對數坐標軸 69
2.1.12 loglog—設定雙對數坐標 71
2.1.13 fill—圖形填充 71
2.1.14 bar/barh—條形圖 72
2.1.15 pie—圓餅圖 75
2.1.16 stairs—階梯圖 75
2.1.17 hist—直方圖 76
2.1.18 rose—角度直方圖 77
2.1.19 stem—離散序列數據桿狀圖 78
2.1.20 errorbar—誤差棒形圖 79
2.1.21 compass—羅盤圖 79
2.1.22 feather—羽毛圖(速度向量圖) 81
2.1.23 polar—極坐標圖 81
2.1.24 zoom—圖形縮放 82
2.1.25 clf—清除當前圖形視窗 86
2.1.26 contourf—繪製二維等高線圖 86
2.2 三維圖形繪製 87
2.2.1 plot3—繪製三維圖 87
2.2.2 surf—繪製三維陰影曲面圖 89
2.2.3 mesh—繪製參數網狀表面圖 90
2.2.4 view—設定三維圖形視圖 92
2.2.5 contour—繪製曲面等高線 94
2.2.6 contour3—繪製三維等高線 95
2.2.7 waterfall—繪製瀑布圖 96
2.2.8 quiver—繪製箭袋圖 97
2.2.9 fill3—填充三維圖 98
2.2.10 clabel—標註等高線高度 99
2.2.11 pcolor—繪製偽彩色圖 101
2.2.12 meshgrid—轉換區域為數組 103
2.2.13 pie3—三維圓餅圖 104
2.2.14 comet3—繪製三維彗星圖 104
2.2.15 surfl—繪製帶光照模式的三維曲面圖 105
2.2.16 sphere—三維球體 106
2.2.17 cylinder—三維圓柱圖 107
2.2.18 light—光照處理 109
2.2.19 hidden—設定或取消隱藏線模式 109
2.3 流場圖繪製 110
2.3.1 coneplot—流錐圖 110
2.3.2 streamline—流線圖 112
2.3.3 streamtube—流管圖 113
2.3.4 streamribbons—流帶圖 115
第3章 圖像類型和類型轉換 117
3.1 demosaic—將Bayer模式編碼圖像轉換為真彩色RGB圖像 117
3.2 hsv2rgb—轉換HSV值為RGB顏色表 118
3.3 rgb2hsv—轉換RGB值為HSV顏色空間 118
3.4 tonemap—將HDR圖像轉換為RGB圖像 118
3.5 dither—通過抖動增加顏色外觀解析度、轉換圖像 119
3.6 gray2ind—把灰度圖像或二值圖像轉換為索引圖像 120
3.7 grayslice—使用多級閾值將灰度圖像轉換為索引圖像 121
3.8 graythresh—全局圖像閾值 122
3.9 im2bw—轉換為二值圖像 123
3.10 double—雙精度轉換 125
3.11 im2double—將圖像矩陣轉換為雙精度類型 125
3.12 im2int16—將圖像矩陣轉換為16位有符號整數類型 128
3.13 im2java2d—將圖像矩陣轉換為Java緩衝圖像 130
3.14 im2single—將圖像矩陣轉換為單精度類型 132
3.15 uint8—轉換數據為8位無符號整型 135
3.16 uint16—轉換數據為16位無符號整型 135
3.17 im2uint16—將圖像矩陣轉換為16位無符號整數類型 136
3.18 im2uint8—將圖像矩陣轉換為8位無符號整數類型 139
3.19 ind2gray—將索引圖像轉換為灰度圖像 142
3.20 ind2rgb—將索引圖像轉換為真彩色圖像 142
3.21 label2rgb—將標註矩陣轉換為真彩色圖像 143
3.22 mat2gray—將矩陣轉換為灰度圖像 144
3.23 rgb2gray—將真彩色RGB圖像轉換為灰度圖像 145
3.24 rgb2ind—將真彩色圖像轉換為索引圖像 147
第4章 圖形用戶界面工具 148
4.1 imcontrast—創建圖像對比工具 148
4.2 imageinfo—創建圖像信息工具 149
4.3 imdisplayrange—創建像素值範圍顯示工具 150
4.4 imdistline—創建圖像距離工具 151
4.5 impixelinfo—創建像素信息工具 152
4.6 impixelinfoval—創建像素信息工具(無文本標註) 154
4.7 impixelregion—創建像素區域工具 155
4.8 impixelregionpanel—創建像素區域工具面板 156
4.9 immagbox—創建縮放文本框 157
4.10 imoverview—在另外一個視窗中創建圖像概覽顯示工具 157
4.11 imoverviewpanel—在同一個視窗中創建圖像概覽顯示工具 158
4.12 imscrollpanel—在圖像視窗中顯示滾動條 159
4.13 axes2pix—將軸坐標轉換為像素坐標 160
4.14 getimage—坐標軸下的圖像數據 161
4.15 getimagemodel—獲取圖像模型的信息 163
4.16 imattributes—獲取圖像信息 164
4.17 imellipse—創建可變形的橢圓 166
4.18 imfreehand—使用滑鼠創建圖形區域 168
4.19 imgca—獲取當前圖像坐標軸的句柄 168
4.20 imgcf—獲取當前圖形視窗的句柄 170
4.21 imgetfile—創建打開圖像對話框 170
4.22 imhandles—獲取當前圖形視窗的圖像句柄 171
4.23 imline—創建可變形的線段 173
4.24 impoint—創建可拖動的點 175
4.25 impoly—創建可變形多邊形 177
4.26 imrect—創建可變形矩形 179
4.27 iptaddcallback—在調用列表中添加函式句柄 181
4.28 iptcheckhandle—檢查句柄的有效性 182
4.29 iptgetapi—獲取句柄的應用程式接口信息 183
4.30 iptGetPointerBehavior—獲得滑鼠行為結構 184
4.31 ipticondir—返回IPT和MATLAB圖示的路徑 185
4.32 iptPointerManager—創建滑鼠管理器 187
4.33 iptremovecallback—在回調列表中刪除函式句柄 187
4.34 iptSetPointerBehavior—設定滑鼠行為結構 188
4.35 iptwindowalign—重排圖形視窗 191
4.36 Makeconstraintorectfcn—創建可拉伸矩形約束函式 193
4.37 truesize—調整圖像顯示比例 194
第5章 空間變換和圖像配準 195
5.1 空間變換 195
5.1.1 checkerboard—創建棋盤圖像 195
5.1.2 findbounds—尋找空間變換的輸出邊界 196
5.1.3 fliptform—空間變換結構輸入/輸出互換 197
5.1.4 imcrop—圖像剪下 198
5.1.5 impyramid—對圖像進行成倍放大或縮小 201
5.1.6 imresize—對圖像進行成比例放大或縮小 202
5.1.7 imrotate—對圖像進行旋轉 204
5.1.8 imtransform—對圖像進行二維空間變換 206
5.1.9 makeresampler—創建重採樣結構 210
5.1.10 maketform—創建空間變換結構 211
5.1.11 tformarray—對多維數組進行空間變換 212
5.1.12 tformfwd—套用前向空間變換 213
5.1.13 tforminv—套用逆空間變換 214
5.2 圖像配準 215
5.2.1 cp2tform—從控制點對轉變生成空間變換結構 215
5.2.2 cpcorr—使用互相關調整控制點位置 217
5.2.3 cpselect—控制點選擇工具 218
5.2.4 cpstruct2pairs—將空間變換結構轉變成有效的控制點對 221
5.2.5 normxcorr2—歸一化二維互相關 223
第6章 圖像分析和統計 225
6.1 bwboundaries—二值圖像區域邊界跟蹤 225
6.2 bwtraceboundary—二值圖像跟蹤目標 228
6.3 edge—尋找灰度圖像的邊界 229
6.4 hough—計算Hough變換,用來檢測直線 235
6.5 houghlines—根據Hough變換提取線段 236
6.6 houghpeaks—計算Hough變換的峰值 238
6.7 qtdecomp—四叉樹分解 239
6.8 qtgetblk—獲取四叉樹分解中的塊值 241
6.9 qtsetblk—設定四叉樹分解中的塊值 243
6.10 entropy—計算灰度圖像的熵 243
6.11 entropyfilt—灰度圖像的局部熵 244
6.12 graycomatrix—創建灰度共生矩陣 245
6.13 graycoprops—灰度共生矩陣的屬性 245
6.14 rangefilt—計算圖像的局部範圍 246
6.15 stdfilt—計算圖像的局部標準差 248
6.16 corr2—計算兩個矩陣的互相關係數 248
6.17 imcontour—創建圖像等高線圖 249
6.18 imhist—創建圖像直方圖 250
6.19 impixel—獲取圖像像素值 253
6.20 improfile—創建圖像強度曲線 254
6.21 mean2—計算矩陣的均值 257
6.22 regionprops—計算圖像的局部性質 258
6.23 std2—計算矩陣的標準差 259
第7章 圖像代數運算 261
7.1 imabsdiff—兩幅圖像差的絕對值 261
7.2 imadd—圖像的和運算 262
7.3 imcomplement—圖像求補 264
7.4 imdivide—圖像的除運算 266
7.5 imlincomb—圖像的線性運算 268
7.6 immultiply—圖像的乘運算 270
7.7 imsubtract—圖像的差運算 272
第8章 圖像增強 273
8.1 decorrstretch—使用去相關拉伸增強圖像 273
8.2 adapthisteq—有限對比度自適應直方圖均衡化 274
8.3 histeq—直方圖均衡化 275
8.4 imadjust—調整圖像灰度值或顏色映像表 277
8.5 imnoise—在圖像上加噪聲 279
8.6 intlut—使用查詢錶轉換為整數值 280
8.7 medfilt2—二維中值濾波 281
8.8 ordfilt2—二維排序統計濾波 284
8.9 stretchlim—尋找像素值範圍 285
8.10 wiener2—二維維納濾波 286
8.11 contrast—調整灰色對比度 287
第9章 圖像去模糊 289
9.1 deconvwnr—使用維納濾波器對圖像進行去模糊 289
9.2 deconvreg—使用規則化濾波器對圖像進行去模糊 290
9.3 deconvlucy—使用Lucy-Richardson方法對圖像進行去模糊 293
9.4 deconvblind—使用盲解卷積對圖像進行去模糊 295
9.5 edgetaper—對圖像邊緣進行模糊處理 297
9.6 otf2psf—將光學轉換函式轉換成點擴散函式 297
9.7 psf2otf—將點擴散函式轉換成光學轉換函式 298
第10章 線性濾波和變換 300
10.1 convmtx2—計算二維卷積矩陣 300
10.2 filter2—進行二維線性濾波操作 301
10.3 fspecial—創建二維濾波器 302
10.4 imfilter—對圖像進行濾波 303
10.5 freqz2—二維頻率回響 305
10.6 fsamp2—用頻率抽樣法設計二維FIR濾波器 306
10.7 ftrans2—使用頻率變換設計二維FIR濾波器 307
10.8 fwind1—用一維視窗法設計二維FIR濾波器 308
10.9 fwind2—用二維視窗法設計二維FIR濾波器 309
10.10 dct2—設計二維離散餘弦變換 310
10.11 dctmtx—計算離散餘弦變換矩陣 312
10.12 fan2para—將扇形投影轉換為平行投影 313
10.13 fanbeam—計算Fan-beam變換 314
10.14 idct2—計算二維離散餘弦逆變換 316
10.15 ifanbeam—計算Fan-beam逆變換 317
10.16 iradon—計算Radon逆變換 318
10.17 para2fan—將平行投影轉換為扇形投影 319
10.18 phantom—創建頭骨幻影圖像 321
10.19 radon—計算Radon變換 321
10.20 fft2—進行二維快速傅立葉變換 322
10.21 fftn—進行N維快速傅立葉變換 323
10.22 ifft2—計算二維快速傅立葉反變換 324
10.23 ifftn—計算N維快速傅立葉反變換 325
10.24 conv2—進行二維卷積操作 326
10.25 convn—計算N維卷積 328
10.26 fftshift—把快速傅立葉變換的DC組件移到頻譜中心 328
10.27 freqspace—確定頻率回響的頻率間隔 329
第11章 形態學操作 330
11.1 imbothat—進行Bottom-hat濾波 330
11.2 conndef—創建連通矩陣 331
11.3 imclearborder—去除圖像邊界 332
11.4 imclose—進行形態學閉運算 334
11.5 imdilate—進行膨脹操作 334
11.6 imerode—進行腐蝕操作 336
11.7 imextendedmax—進行擴展極大值變換 338
11.8 imextendedmin—進行擴展極小值變換 338
11.9 imfill—進行填充操作 339
11.10 imhmax—進行H-極大值變換 341
11.11 imhmin—進行H-極小值變換 343
11.12 imimposemin—在原始圖像上強置最小值 344
11.13 imopen—進行形態學開運算 346
11.14 imreconstruct—進行形態學重建 346
11.15 imregionalmax—計算局部極大值區域 347
11.16 imregionalmin—確定局部極小值區域 348
11.17 imtophat—進行Top-hat濾波 349
11.18 watershed—分水嶺變換 350
11.19 applylut—二值圖像中使用查詢表進行鄰域操作 352
11.20 bwarea—計算二值圖像中目標的面積 353
11.21 bwareaopen—移除小目標 353
11.22 bwdist—二值圖像的距離變換矩陣 354
11.23 bweuler—確定二進制圖像歐拉數 357
11.24 bwhitmiss—二值擊中擊不中操作 358
11.25 bwlabel—標註二值圖像中的目標物體 359
11.26 bwlabeln—標註多維二值圖像中的目標物體 360
11.27 bwmorph—形態學操作通用函式 362
11.28 bwpack—二值圖像壓縮,用來加快形態學操作的速度 364
11.29 bwperim—確定圖像目標邊界 364
11.30 bwselect—選擇二值圖像中的目標對象 365
11.31 bwulterode—二值圖像的無窮腐蝕 367
11.32 bwunpack—二值圖像解壓縮,用來加快形態學操作的速度 368
11.33 makelut—創建查詢表 369
11.34 getheight—返回結構元素的高度 370
11.35 getneighbors—返回結構元素的相對位置和高度 370
11.36 getnhood—返回結構元素的鄰域 371
11.37 getsequence—分解的結構元素序列 372
11.38 isflat—是否為平面結構元素 373
11.39 reflect—關於中心對稱的結構元素 374
11.40 strel—創建結構元素對象 374
11.41 translate—平移結構元素對象 377
第12章 圖像的塊和鄰域處理 379
12.1 poly2mask—將感興趣區域轉換為掩膜區域 379
12.2 roicolor—根據顏色選擇感興趣區域 380
12.3 roifill—在圖像指定區域進行平滑插補 381
12.4 roifilt2—對區域進行二維濾波 382
12.5 roipoly—選擇感興趣的區域 383
12.6 bestblk—為塊處理選取合適的塊大小 384
12.7 blkproc—區別圖像的塊處理 384
12.8 col2im—將矩陣的列重新組織到塊中 386
12.9 colfilt—列鄰域處理 387
12.10 im2col—將圖像塊重新調整為列 388
12.11 nlfilter—通用滑動鄰域處理 389
第13章 顏色映射表和色彩空間 390
13.1 rgbplot—劃分顏色映像表 390
13.2 cmpermute—重新調整顏色映射表中的顏色 391
13.3 brighten—增加或降低顏色映像表的亮度 391
13.4 colormap—獲取當前顏色表 392
13.5 shading—設定顏色色調 393
13.6 cmunique—減少顏色映射表中的顏色 394
13.7 imapprox—使用更少的顏色近似表示索引圖像 396
13.8 applycform—套用設備獨立的顏色空間變換結構 397
13.9 iccfind—尋找指定路徑下的ICC檔案 397
13.10 iccread—讀取ICC檔案 399
13.11 iccroot—ICC檔案的路徑 400
13.12 iccwrite—將ICC檔案寫入磁碟 400
13.13 isicc—判斷是否是有效的ICC檔案 401
13.14 lab2double—將L?a?b色彩空間值轉換為雙精度 402
13.15 lab2uint16—將L?a?b色彩空間值轉換為無符號16位整數 402
13.16 lab2uint8—將L?a?b色彩空間值轉換為無符號8位整數 402
13.17 makecform—創建顏色變換結構 403
13.18 ntsc2rgb—將NTSC圖像轉換為真彩色圖像 404
13.19 rgb2ntsc—將真彩色圖像轉換為NTSC圖像 404
13.20 rgb2ycbcr—將真彩色圖像轉換為YCbCr空間圖像 405
13.21 whitepoint—標準光源的XYZ色彩值 406
13.22 xyz2double—將XYZ色彩值轉換為雙精度 406
13.23 xyz2uint16—將XYZ色彩值轉換為無符號16位整數 407
13.24 ycbcr2rgb—將YCbCr圖像轉換為真彩色RGB圖像 407
第14章 其他常用函式 409
14.1 iptgetpref—獲取圖像處理工具箱參數 409
14.2 iptsetpref—設定圖像處理工具箱參數 410
14.3 getrangefromclass—圖像類型的默認顯示範圍 410
14.4 impixelinfo—顯示圖像像素信息 411
14.5 iptcheckconn—檢查連通性參數的有效性 411
14.6 iptcheckinput—檢查輸入矩陣的有效性 412
14.7 iptcheckmap—檢查顏色映射表的有效性 413
14.8 iptchecknargin—檢查輸入參數的個數 413
14.9 iptcheckstrs—檢查可選字元串的有效性 414
14.10 iptnum2ordinal—把正整數轉換成對應序號字元串 415
14.11 getline—用滑鼠選擇折線段 415
14.12 getrect—用滑鼠選擇矩形 418
14.13 padarray—矩陣邊界擴充元素 418
14.14 iptdemos—顯示MATLAB圖像處理工具箱的演示幫助 421
14.15 ippl—檢查IPPL庫是否存在 422
第15章 圖像配準實戰 423
實戰 對四幅不同角度拍攝的圖像進行圖像配準 423
第16章 圖像區域生長分割實戰 428
16.1 實戰1:對圖片中的人物進行區域生長分割 428
16.2 實戰2:對醫學腦部圖像中的白質進行區域生長分割 430
第17章 交通視頻車輛檢測實戰 434
實戰 提取交通視頻中的車輛 434
第18章 人臉區域定位實戰 439
實戰 對人物頭像進行臉部區域定位 439
第19章 圖像特徵提取實戰 442
19.1 實戰1:提取照片中的腐蝕區域 442
19.2 實戰2:識別圖像中的圓形目標 444
第20章 圖像分形維計算實戰 448
實戰 計算灰度圖像的差分盒維數 448