全書以新版本的MATLAB R2016a為平臺,全面講解MATLAB在圖像處理及應用方面的知識。本書理論結合實踐,自始至終通過實例來介紹有關內容,每章內容完整且相對獨立,是一本實用性極強的MATLAB參考書。
全書分為三個部分共14章。第一部分為MATLAB及圖像處理基礎,涵蓋的內容有MATLAB基礎知識、MATLAB矩陣及其運算、MATLAB圖像處理基礎; 第二部分為MATLAB的常見圖像處理技術,涵蓋的內容有MATLAB圖像的繪制、圖形用戶界面、圖像的基本運算、圖像的變換、圖像壓縮編碼、圖像增強技術、圖像的復原; 第三部分為MATLAB的高級圖像處理技術,涵蓋了圖像分割與區域處理分析、圖像形態學處理、MATLAB圖像處理的綜合應用等內容。
本書以實用為目標,深入淺出,實例引導,內容翔實,適合作為理工科高等院校研究生、本科生教學用書,也可作為相關專業科研工程技術人員的參考用書.
(1)資深作者編著,圖書質量更有保證:一線資深工程師執筆,系統歸納和總結了智能算法的實戰經驗。
(2)提供配套源碼,便于讀者動手實踐:理論必須聯系實踐,本書提供源代碼下載,方便讀者學習使用。
(3)內含豐富實例,利于讀者二次開發:書中提供了十幾個圖像處理算法的典型實例,讀者可以據此二次開發。
配套學習資源下載地址為清華大學出版社網站本書頁面。系列暢銷圖書如下:
MATLAB編程指南——計算、編程、仿真、算法及應用
MATLAB/Simulink系統仿真
MATLABGUI程序設計
MATLAB智能算法
MATLAB數學建模
MATLAB科學計算
MATLAB圖像處理
MATLAB圖像處理
MATLAB優化算法
MATLAB這個名字是由MATrix和LABoratory兩詞的前三個字母組合而成。在20世紀70年代后期,時任美國新墨西哥大學計算機科學系主任的CleveMoler教授出于減輕學生編程負擔的動機,為學生設計了一組調用LINPACK和EISPACK庫程序的“通俗易用”的接口,此即用FORTRAN編寫的萌芽狀態的MATLAB。
MATLAB以商業形式出現后的短短幾年,就以其良好的開放性和運行的可靠性,淘汰了原先控制領域里的眾多封閉式軟件包,而使其改在MATLAB平臺上重建。在國際上三十多個數學類科技應用軟件中,MATLAB在數值計算領域獨占鰲頭。
目前,MATLAB已成為圖像處理、信號處理、通信原理、自動控制等專業的重要基礎課程的首選實驗平臺,而對于學生而言,最有效的學習途徑是結合某一專業課程的學習,通過實踐掌握該軟件的使用與編程。
1.本書特點
(1)由淺入深,循序漸進。本書以初、中級讀者為對象,以MATLAB軟件為主線,先讓讀者了解其各項功能,然后進一步分別詳細地介紹MATLAB在圖像處理方面的應用。
(2)步驟詳盡,內容新穎。本書結合作者多年MATLAB使用經驗與圖像處理實際應用案例,將MATLAB軟件的使用方法與技巧詳細地講解給讀者,使讀者在閱讀時能夠快速掌握書中所講內容。
(3)實例典型,輕松易學。通過學習實際工程應用案例的具體操作是掌握MATLAB最好的方式。本書通過綜合應用案例,透徹詳盡地講解了MATLAB在各方面的應用。
2.本書內容
本書基于MATLABR2016a版,詳細講解MATLAB圖像處理的基礎知識和核心內容。全書共分為14章,具體內容如下:
第一部分為MATLAB及圖像處理基礎部分,主要介紹MATLAB的發展歷程及特點、MATLAB基礎知識、矩陣的表示、矩陣的尋訪、矩陣的運算、圖像的讀寫、圖像顯示、圖像類型的轉換等內容。具體的章節安排如下:
第1章MATLAB基礎知識介紹;
第2章MATLAB矩陣及其運算;
第3章MATLAB圖像處理基礎。
第二部分為MATLAB的常見圖像處理技術,詳細講解了二維、三維圖像的繪制及編輯、圖形用戶界面的設計、各種運算方法、圖像各種變換的原理、圖像編碼質量評價、常見的圖像壓縮編碼、小波壓縮編碼、圖像的增強、圖像的退化模型、退化函數估計、逆濾波、維納濾波、約束的最小二乘方濾波復原等內容。具體的章節安排如下:
第4章MATLAB圖形的繪制;
第5章圖形用戶界面;
第6章圖像的基本運算;
第7章圖像的變換;
第8章圖像壓縮編碼;
第9章圖像的增強;
第10章圖像的復原。
第三部分為MATLAB的高級圖像處理技術。主要講解閾值分割、區域分割、邊緣檢測、區域處理、數學形態學的基本操作、基于形態學處理的其他操作、MATLAB在醫學、人臉識別、特征提取、圖像配準、視頻檢驗方面的應用等內容。具體的章節安排如下:
第11章圖像分割與區域處理;
第12章圖像的數學形態學;
第13章MATLAB圖像處理綜合應用。
3.讀者對象
本書適合于MATLAB初學者和期望提高應用MATLAB進行圖像處理能力的讀者,包括:
圖像處理從業人員;
初學MATLAB圖像處理的技術人員;
大中專院校的教師和在校生;
相關培訓機構的教師和學員;
MATLAB愛好者;
廣大科研工作人員。
4.讀者服務
為了方便解決本書疑難問題,讀者朋友在學習過程中遇到與本書有關的技術問題,可以發郵件到郵箱caxart@126.com或者訪問博客http://blog.sina.com.cn/caxart,編者會盡快給予解答。
另外本書所涉及的素材文件(程序代碼)已經上傳到清華大學出版社本書頁面,讀者可以到此下載。
本書主要由劉成龍編著。此外,付文利、王廣、張巖、溫正、林曉陽、任艷芳、唐家鵬、孫國強、高飛等也參與了本書部分內容的編寫工作,在此表示感謝。
雖然作者在本書的編寫過程中力求敘述準確、完善,但由于水平有限,書中欠妥之處在所難免,希望讀者和同仁能夠及時指出,共同促進本書質量的提高。
編者
2017年4月
劉成龍 畢業于北京航空航天大學,獲得碩士學位,就職于中國科學院,長期從事圖像處理方面的研究與應用開發工作多年,精通MATLAB、ANSYS、Fluent等工程仿真軟件。在國內外期刊發表論文多篇,編寫了多部暢銷圖書。
第一部分MATLAB及圖像處理基礎
第1章MATLAB基礎知識介紹
1.1MATLAB概述與桌面操作
1.1.1MATLAB系統結構
1.1.2MATLAB的發展歷程
1.1.3命令行窗口
1.1.4M文件編輯窗口
1.1.5幫助系統窗口
1.1.6圖形窗口
1.1.7當前文件夾窗口
1.2查詢幫助命令
1.2.1help命令
1.2.2模糊尋找
1.3MATLAB變量及表達式
1.3.1數值與變量
1.3.2表達式
1.4符號運算
1.4.1創建符號變量
1.4.2數值與符號的轉換
1.4.3數值矩陣轉換為符號矩陣
1.4.4符號替換
1.4.5常用的符號運算
1.4.6關系運算和邏輯運算
1.5程序流程控制語句
1.5.1數據的輸入與輸出
1.5.2順序結構
1.5.3判斷語句
1.5.4分支語句
1.5.5for循環語句與while循環語句
1.6本章小結
第2章MATLAB矩陣及其運算
2.1矩陣的創建
2.1.1直接輸入法
2.1.2載入外部數據文件
2.1.3利用MATLAB內置函數創建矩陣
2.1.4利用M文件創建和保存矩陣
2.2矩陣的尋訪
2.2.1下標元素訪問
2.2.2訪問單元素
2.2.3訪問多元素
2.3矩陣的拼接
2.4矩陣的運算
2.4.1矩陣的加減運算
2.4.2矩陣的乘除運算
2.4.3矩陣的乘方
2.4.4按位運算
2.4.5矩陣的行列式與秩
2.4.6矩陣的逆與跡
2.4.7矩陣的范數及其計算函數
2.4.8矩陣的特征值與特征向量
2.4.9矩陣的超越函數
2.5本章小結
第3章MATLAB圖像處理基礎
3.1常用圖像的文件格式與類型
3.2圖像處理的基本函數
3.2.1圖像文件的查詢與讀取
3.2.2圖像文件的儲存與數據類型的轉換
3.2.3圖像顯示
3.3圖像類型的轉換
3.3.1dither函數
3.3.2im2bw函數
3.3.3mat2gray函數
3.3.4gray2ind函數與grayslice函數
3.3.5ind2gray函數與ind2rgb函數
3.3.6rgb2gray函數與rgb2ind函數
3.4MATLAB的顏色模型轉換
3.4.1rgb2hsv函數與hsv2rgb函數
3.4.2rgb2ntsc函數與ntsc2rgb函數
3.4.3rgb2ycbcr函數與ycbcr2rgb函數
3.5本章小結
第二部分MATLAB的常見圖像處理技術
第4章MATLAB圖形的繪制
4.1二維繪圖
4.1.1基本的二維繪圖
4.1.2figure函數與subplot函數
4.1.3二維圖形的標注與修飾
4.1.4特殊二維圖形的繪制實例
4.2三維繪圖
4.2.1三維折線及曲線的繪制
4.2.2三維圖形坐標標記的函數
4.2.3三維網格曲面的繪制
4.2.4三維陰影曲面的繪制
4.2.5三維圖形的修飾與標注
4.2.6特殊三維圖形的繪制實例
4.3本章小結
第5章圖形用戶界面
5.1圖形用戶界面簡介
5.1.1GUI的設計原則及步驟
5.1.2GUI模板與設計窗口
5.2控制框對象及屬性
5.2.1按鈕
5.2.2滑標
5.2.3單選按鈕
5.2.4復選框
5.2.5靜態文本
5.2.6可編輯文本框
5.2.7彈出式菜單
5.2.8列表框
5.2.9切換按鈕
5.2.10面板
5.2.11按鈕組
5.2.12軸
5.3菜單設計
5.4對話框設計
5.4.1Windows公共對話框
5.4.2MATLAB專用對話框
5.5GUI的設計工具
5.5.1布局編輯器
5.5.2對象瀏覽器
5.5.3用屬性查看器設置控制框屬性
5.5.4對象對齊工具
5.5.5Tab鍵順序編輯器
5.5.6菜單編輯器
5.5.7編輯器
5.6本章小結
第6章圖像的基本運算
6.1圖像的點運算
6.1.1點運算的種類
6.1.2直方圖與點運算
6.1.3直方圖的均衡化
6.1.4直方圖規定化
6.2圖像的代數運算
6.2.1圖像的加法運算
6.2.2圖像的減法運算
6.2.3圖像的乘法運算
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圖像的邏輯運算
6.6本章小結
第7章圖像的變換
7.1傅里葉變換
7.1.1連續傅里葉變換
7.1.2離散傅里葉變換
7.1.3快速傅里葉變換
7.1.4MATLAB的傅里葉變換函數
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.3MATLAB的離散余弦變換函數
7.4圖像的Radon變換
7.5沃爾什哈達瑪變換
7.6小波變換
7.6.1連續小波變換
7.6.2離散小波變換
7.7本章小結
第8章圖像壓縮編碼
8.1圖像壓縮編碼技術概述
8.1.1圖像壓縮的基本原理
8.1.2圖像的有損編碼和無損編碼
8.2圖像壓縮編碼的評價標準
8.2.1壓縮率與冗余度
8.2.2客觀標準
8.2.3主觀標準
8.3常見的圖像壓縮編碼
8.3.1赫夫曼與算數編碼
8.3.2香農編碼與行程編碼
8.3.3預測編碼
8.3.4變換編碼
8.4小波圖像壓縮編碼
8.5圖像壓縮在數字水印方面的應用
8.6本章小結
第9章圖像的增強
9.1灰度變換增強
9.1.1線性變換與非線性變換
9.1.2MATLAB的灰度變換函數
9.1.3最大熵方法增強對比度
9.2圖像的空域濾波增強
9.2.1噪聲與imnoise函數
9.2.2平滑濾波器
9.2.3中值濾波器
9.2.4自適應濾波器
9.2.5銳化濾波器
9.3圖像的頻域濾波增強
9.3.1低通濾波器
9.3.2高通濾波器
9.3.3同態濾波器
9.4彩色增強
9.4.1真彩色增強
9.4.2偽彩色增強
9.4.3假彩色處理
9.5小波變換在圖像增強方面的應用
9.5.1小波圖像去噪處理
9.5.2圖像鈍化與銳化
9.6本章小結
第10章圖像的復原
10.1圖像退化模型與估計函數
10.1.1連續退化模型
10.1.2離散退化模型
10.1.3退化估計函數
10.1.4MATLAB的圖像退化函數
10.2圖像恢復的方法
10.2.1逆濾波復原
10.2.2維納濾波復原
10.2.3約束的最小二乘方濾波復原
10.2.4LucyRichardson濾波復原
10.2.5盲去卷積濾波復原
10.2.6MATLAB的圖像恢復函數
10.3本章小結
第三部分MATLAB的高級圖像處理技術
第11章圖像分割與區域處理
11.1圖像分割的概述
11.2邊緣檢測
11.2.1Roberts邊緣算子
11.2.2Sobel算子
11.2.3Prewitt算子
11.2.4LaplacianGauss算子
11.2.5Canny算子
11.2.6MATLAB的邊緣檢測函數
11.2.7小波在圖像邊緣檢測中的應用
11.3直線的提取與邊界跟蹤
11.3.1用Hough變換提取直線
11.3.2邊界跟蹤
11.4閾值分割
11.4.1直方圖閾值法
11.4.2自動閾值法
11.4.3分水嶺分割法
11.4.4迭代法
11.5區域生長與分裂合并
11.5.1區域生長
11.5.2區域分裂與合并
11.6區域處理
11.6.1滑動領域操作
11.6.2分離領域操作
11.6.3區域的選擇
11.6.4區域濾波與填充
11.7本章小結
第12章圖像的數學形態學
12.1數學形態學的基本操作
12.1.1結構元素
12.1.2膨脹與腐蝕運算
12.1.3膨脹和腐蝕的組合運算
12.2基于形態學處理的其他操作
12.2.1擊中或擊不中運算
12.2.2骨架的提取
12.2.3邊界提取與距離變換
12.2.4區域填充與移除小目標
12.2.5極值的操作
12.2.6查找表與對象的特性度量
12.2.7光照不均勻的處理
12.2.8使用紋理濾波器對圖像進行處理
12.3本章小結
第13章MATLAB圖像處理綜合應用
13.1MATLAB在醫學圖像處理中的應用
13.1.1圖像負片效果在醫學圖像處理中的應用
13.1.2灰度變換在醫學圖像處理中的應用
13.1.3直方圖均衡化在醫學圖像處理中的應用
13.1.4銳化效果在醫學圖像處理中的應用
13.1.5邊緣檢測效果在醫學圖像處理中的應用
13.2MATLAB圖像在特征提取中的應用
13.2.1確定圖像中的圓形目標
13.2.2測量圖像的粒度
13.2.3測量灰度圖像的屬性
13.2.4測量圖像的半徑
13.2.5測量圖像的角度
13.3圖像處理在人臉識別中的應用
13.4MATLAB在圖像配準中的應用
13.5圖像處理在檢驗視頻目標中的應用
13.5.1利用圖像分割來檢驗視頻中的目標
13.5.2利用卡爾曼濾波來定位視頻中的目標
13.6GUI在圖像處理中的應用
13.6.1圖像幾何運算的GUI設計
13.6.2圖像增強的GUI設計
13.6.3圖像分割的GUI設計
13.6.4圖像邊緣檢測的GUI設計
13.7本章小結
參考文獻
第5章圖形用戶界面
圖形用戶界面是由窗口、菜單、對話框等各種圖形對象組成的用戶界面,在用戶界面中設定了觀看和感知計算機、操作系統或應用程序的功能。通常是根據用戶體驗和用戶界面功能來設計圖形用戶界面。
學習目標:
(1)了解圖形用戶界面中的基本概念。
(2)掌握圖形用戶界面中主要函數的基本原理及實現步驟。
(3)熟悉圖形用戶界面設計的基本方法。
5.1圖形用戶界面簡介
用戶界面(或接口)是指人與機器(或程序)之間交互作用的工具和方法。鍵盤、鼠標、跟蹤球、話筒都可以成為與計算機交換信息的接口。圖形用戶界面(GraphicalUserInterfaces,GUI)則是由窗口、光標、按鍵、菜單、文字說明等對象(Objects)構成的一個用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產生某種動作或變化,如實現計算和實現繪圖等。