産品特色
編輯推薦
(1) 資深作者編著,圖書質量更有保證:一綫資深工程師執筆,係統歸納和總結瞭智能算法的實戰經驗。
(2) 配套源碼,便於讀者動手實踐:理論必須聯係實踐,本書提供源代碼,方便教師及讀者學習使用。
(3) 內含豐富實例,利於讀者二次開發:書中提供瞭十幾個優化算法的典型實例,讀者可以據此二次開發。
配套學習資源下載地址為清華大學齣版社網站本書頁麵。係列暢銷圖書如下:
MATLAB 編程指南——計算、編程、仿真、算法及應用
MATLAB/Simulink係統仿真
MATLAB GUI程序設計
MATLAB智能算法
MATLAB數學建模
MATLAB優化算法
MATLAB信號處理
MATLAB圖像處理
MATLAB優化算法
內容簡介
全書的編寫基於當前版本的MATLAB環境,書中由淺入深地全麵講解瞭MATLAB在GUI設計方麵應用的知識。本書按邏輯編排,重點給齣瞭MATLAB在GUI設計各個環節中的實現方法,在講解各個知識點時列舉瞭豐富的實例,使得本書具有很強的實用性; 內容完整且每章相對獨立,是一本具有很高使用價值的MATLAB參考書。
本書分為三個部分共13章。第一部分為MATLAB基礎,涵蓋的內容有MATLAB概述、GUI設計預備知識、二維和三維繪圖、圖像文件的顯示以及文件讀取I/O操作; 第二部分為基於GUI常見設計技術,涵蓋的內容有句柄圖形對象、GUI控件及屬性、uimenu菜單及設計、MATLAB GUI基礎設計等; 第三部分為基於MATLAB的高級GUI設計技術及應用,涵蓋的內容有MATLAB與Excel文件的數據交換、基於GUI設計的學生成績管理係統、基於GUI的離散控製係統設計、GUI實現濾波器設計、基於GUI的BP神經網絡設計及GUI在圖像處理方麵的應用。
本書以實用為目標,深入淺齣、實例引導、內容翔實,適閤作為理工科高等院校研究生、本科生教學用書,也可作為相關專業科研工程技術人員的參考用書。
作者簡介
付文利 畢業於哈爾濱工業大學信息技術專業,研究生學曆。現就職於烽火通信集團,擔任係統工程師。精通MATLAB科學計算、Simulink係統仿真、Visual C++ 程序設計等,在國內外期刊發錶論文多篇。在工作實踐中長期使用MATLAB /Simulink,對其編程與應用有深刻的理解。
目錄
目錄
第一部分MATLAB基礎
第1章MATLAB概述
1.1MATLAB軟件介紹
1.1.1MATLAB語言
1.1.2MATLAB繪圖功能
1.1.3MATLAB數學函數庫
1.1.4MATLAB應用程序接口
1.2MATLAB工作環境
1.2.1命令行窗口
1.2.2幫助係統窗口
1.2.3工作空間窗口
1.2.4M文件編輯窗口
1.2.5圖形窗口
1.2.6當前文件夾
1.2.7搜索路徑
1.3MATLAB中的函數類型
1.3.1匿名函數
1.3.2M文件主函數
1.3.3子函數
1.3.4嵌套函數
1.3.5私有函數
1.3.6重載函數
1.4查詢幫助命令
1.4.1help命令
1.4.2lookfor命令
1.4.3模糊尋找
1.5MATLAB程序流程控製結構
1.5.1順序結構
1.5.2選擇結構
1.5.3循環結構
1.5.4程序流程控製語句及其他常用命令
本章小結
第2章GUI設計預備知識
2.1數組與矩陣
2.1.1數組的創建與操作
2.1.2常見的數組運算
2.1.3矩陣的錶示
2.1.4尋訪矩陣
2.1.5矩陣的拼接
2.1.6矩陣的運算
2.1.7矩陣的乘方
2.1.8矩陣的行列式
2.2MATLAB基本數值類型
2.2.1整數類型數據運算
2.2.2變量與常量
2.2.3數值
2.2.4錶達式
2.2.5空數組
2.2.6邏輯運算
2.2.7關係運算
2.3字符串
2.3.1創建字符串
2.3.2基本字符串操作
2.3.3字符串操作函數
2.4元胞數組
2.4.1元胞數組的創建
2.4.2元胞數組的基本操作
2.4.3元胞數組的操作函數
2.5結構
2.5.1結構的創建
2.5.2結構的基本操作
2.5.3結構操作函數
本章小結
第3章二維繪圖
3.1基本的二維繪圖
3.2figure函數與subplot函數
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.2.4等高綫圖
4.2.5瀑布圖
4.2.6簡易繪圖函數
4.3三維圖形顯示與控製
4.3.1顔色控製
4.3.2坐標控製
4.3.3視角控製
4.4繪製動畫圖形
4.5四維圖形可視化
4.5.1用顔色描述第四維
4.5.2其他函數
本章小結
第5章圖像處理的基礎知識
5.1數字圖像概述
5.1.1什麼是數字圖像
5.1.2圖像的分類
5.2圖像文件的讀寫
5.2.1圖像文件的查詢
5.2.2圖像文件的讀取
5.2.3圖像文件的存儲
5.3圖像處理的基本函數
5.3.1imshow函數
5.3.2image函數和imagesc函數
5.3.3colorbar函數
5.3.4montage函數
5.3.5warp函數
5.3.6subimage函數
5.3.7zoom命令
5.3.8impixel函數
5.4圖像類型的轉換
5.4.1通過抖動算法轉換圖像類型的函數dither
5.4.2將灰度圖像轉換為索引圖像的函數gray2ind
5.4.3將灰度圖像轉換為索引圖像的函數grayslice
5.4.4將其他圖像轉換為二值圖像的函數im2bw
5.4.5將索引圖像轉換為灰度圖像的函數ind2gray
5.4.6將索引圖像轉換為RGB圖像的函數ind2rgb
5.4.7將數據矩陣轉換為灰度圖像的函數mat2gray
5.4.8將RGB圖像轉換為灰度圖像的函數rgb2gray
5.4.9將RGB圖像轉換為索引圖像的函數rgb2ind
5.5文件讀取I/O操作
5.5.1數據基本操作
5.5.2底層文件基本I/O操作
5.6文件的讀寫
5.6.1二進製文件的讀寫
5.6.2記事本數據的讀寫
5.6.3電子錶格數據的讀寫
5.6.4聲音文件的讀寫
5.6.5視頻文件的讀寫
本章小結
第二部分基於GUI的常見設計技術
第6章句柄圖形對象
6.1圖形對象及其句柄
6.1.1屬性的設置與查詢
6.1.2對象的默認屬性值
6.1.3對象的屬性查找
6.1.4圖形對象的復製
6.1.5圖形對象的刪除
6.2圖形對象屬性
6.2.1根對象
6.2.2圖形窗口對象
6.2.3坐標軸對象
6.2.4麯綫對象
6.2.5文字對象
6.2.6麯麵對象
6.2.7塊對象
6.2.8圖像對象
6.2.9方對象
6.2.10光對象
本章小結
第7章GUI控件及uimenu菜單
7.1GUIDE界麵
7.2控件及屬性
7.2.1按鈕
7.2.2滑塊
7.2.3單選按鈕
7.2.4復選框
7.2.5靜態文本
7.2.6可編輯文本框
7.2.7彈齣式菜單
7.2.8列錶框
7.2.9切換按鈕
7.2.10麵闆
7.2.11按鈕組
7.2.12軸
7.3控件對象示例
7.4基於MATLAB的日曆設計
7.5uimenu菜單及設計
7.5.1建立用戶菜單
7.5.2菜單對象常用屬性
7.5.3上下文菜單的建立
本章小結
第8章MATLAB GUI基礎設計
8.1GUI設計原則和步驟
8.2GUI的設計工具
8.2.1布局編輯器
8.2.2對象瀏覽器
8.2.3屬性查看器
8.2.4對齊對象
8.2.5Tab順序編輯器
8.2.6菜單編輯器
8.2.7M文件編輯器
8.3對話框設計
8.3.1Windows公共對話框
8.3.2MATLAB專用對話框
8.4迴調函數
8.5GUI界麵設計實例
8.5.1GUI界麵程序設計實例
8.5.2GUI實現圖像處理實例
8.6GUI的數據傳遞方式
8.6.1全局變量
8.6.2運用GUI本身的varargin{}和varargout{}傳遞參數
8.6.3UserData數據與handles數據
8.6.4Application數據
8.6.5跨空間計算evalin和賦值assignin
8.6.6將數據保存到文件,需要時讀取
本章小結
第三部分高級GUI設計技術及應用
第9章MATLAB與Excel文件的數據交換
9.1Excel 文件數據導入MATLAB工作空間
9.2調用 xlsfinfo 函數獲取文件信息
9.3調用 xlsread 函數讀取數據
9.4調用xlswrite 函數把數據寫入 Excel 文件
9.5基於GUI的學生成績管理係統設計
9.5.1係統的設計與完成
9.5.2導入成績
9.5.3統計數據
9.5.4繪製該課程成績麯綫圖
9.5.5係統應用演示
本章小結
第10章基於GUI的離散控製係統設計
10.1控製係統工具箱介紹
10.2控製係統理論基礎
10.3離散控製係統設計與完成
10.3.1繪製Bode圖界麵
10.3.2繪製Nyquist麯綫
10.3.3繪製Nichols麯綫
10.3.4繪製根軌跡
10.3.5離散係統穩定性判斷
10.3.6階躍響應
10.3.7脈衝響應
本章小結
第11章GUI實現濾波器設計
11.1IIR數字濾波器
11.1.1IIR濾波器設計思想
11.1.2IIR濾波器設計編程實現
11.2FIR數字濾波器
11.2.1FIR濾波器設計思想
11.2.2FIR濾波器設計編程實現
11.3基於GUI的數字濾波器設計與實現
11.3.1“濾波器設計”界麵設計
11.3.2“濾波器設計”迴調函數
11.3.3AutoChoose.m程序的編寫
11.3.4運行和結果顯示
本章小結
第12章智能算法的GUI設計
12.1神經網絡結構及BP神經網絡
12.1.1神經元與網絡結構
12.1.2生物神經元
12.1.3人工神經元
12.1.4BP神經網絡及其原理
12.1.5基於MATLAB的BP神經網絡工具箱函數
12.1.6BP神經網絡在函數逼近中的應用
12.1.7GUI實現BP神經網絡的設計
12.2遺傳算法GUI設計
12.3蟻群算法GUI設計
本章小結
第13章GUI設計在圖像處理方麵的應用
13.1基於GUI的圖像壓縮處理技術
13.2GUI在圖像處理中的應用
13.2.1圖像幾何運算的GUI設計
13.2.2圖像增強的GUI設計
13.2.3圖像分割的GUI設計
13.2.4圖像邊緣檢測的GUI設計
13.3GUI菜單選項設計實現圖像的處理
13.3.1文件操作菜單項
13.3.2圖像編輯菜單項
13.3.3圖像分析菜單項
13.3.4圖像調整菜單項
13.3.5圖像平滑菜單項
13.3.6圖像銳化菜單項
13.3.7圖像高級處理菜單項
13.3.8小波變換菜單項
本章小結
參考文獻
精彩書摘
數字圖像處理是一門新興技術,隨著計算機硬件的發展,數字圖像的實時處理已經成為可能。下麵介紹MATLAB中圖像顯示函數及其功能,並介紹基本的圖像處理函數、圖像類型轉換等。
學習目標:
(1) 理解圖像文件的讀寫與顯示;
(2) 掌握圖像類型轉換的基本原理與實現步驟。
5.1數字圖像概述
5.1.1什麼是數字圖像
圖像有多種含義,其中最常見的定義是指各種圖形和影像的總稱。在日常的學習或統計中,圖像都是必不可少的組成部分,它為人類構建瞭一個形象的思維模式,有助於學習和思考問題。
隨著數字技術的不斷發展和應用,現實生活中的許多信息都可以用數字形式的數據進行處理和存儲,數字圖像就是以數字形式進行存儲和處理的圖像。利用計算機可以對它進行常見圖像處理技術所不能實現的加工處理,還可以將它在網上傳輸,也可以多次復製而不失真。
數字圖像是指一個被采樣和量化後的二維函數(該二維函數由光學方法産生),采用等距矩形網格采樣,對幅度進行等間隔量化。一幅是指圖像是一個被量化的采樣數值的二維矩陣。
5.1.2圖像的分類
在計算機中,按照顔色和灰度的多少可以將圖像分為二值圖像、灰度圖像、索引圖像和真彩色RGB圖像四種基本類型。目前,大多數圖像處理軟件都支持這四種類型的圖像。
1. 二值圖像
一幅二值圖像的二維矩陣僅由0、1兩個值構成,0代錶黑色,1代錶白色。由於每一像素(矩陣中每一元素)取值僅有0、1兩種可能,所以計算機中二值圖像的數據類型通常為1個二進製位。二值圖像通常用於文字、綫條圖的掃描識彆(OCR)和掩膜圖像的存儲,如圖5��1所示。
2. 灰度圖像
灰度圖像矩陣元素的取值範圍通常為[0,255]。因此其數據類型一般為8位無符號整型(int8),這就是人們經常提到的256灰度圖像。0錶示純黑色,255錶示純白色,中間的數字從小到大錶示由黑到白的過渡色。在某些軟件中,灰度圖像也可以用雙精度數據類型(double)錶示,像素的值域為[0,1],0代錶黑色,1代錶白色,0到1之間的小數錶示不同的灰度等級。二值圖像可以看成是灰度圖像的一個特例,如圖5��2所示。
前言/序言
前言
MATLAB是美國MathWorks公司的産品,是矩陣實驗室(Matrix Laboratory)的簡稱,用於算法開發、數據可視化、數據分析及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。
MATLAB的功能有進行矩陣運算、繪製函數和數據、實現算法、創建用戶界麵、連接其他編程語言的程序等,主要應用於工程計算、控製設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。
MATLAB的基本數據單位是矩陣,它的指令錶達式與數學、工程中常用的形式十分相似,故用MATLAB來解算相同問題要比用C和Fortran等語言簡潔得多,並且MathWorks也吸收瞭Maple等軟件的優點,使MATLAB成為一個強大的數學軟件。在新的版本中也加入瞭對C、Fortran、C++和Java的支持。用戶可以直接調用MATLAB函數庫,也可以將自己編寫的實用程序導入到MATLAB函數庫中方便以後調用。
MATLAB可以創建圖形用戶界麵(graphical user interface,GUI),它是用戶和計算機之間交流的工具。MATLAB 將所有GUI支持的用戶控件都集成在這個環境中並提供界麵外觀、屬性和行為響應方式的設置方法,隨著版本的提高,這種能力還會不斷加強,而且具有強大的繪圖功能,使MATLAB開發的程序可以為越來越多的用戶所接受。
1. 本書特點
由淺入深,循序漸進: 本書以初中級讀者為對象,先讓讀者瞭解其各項功能,然後進一步詳細地介紹MATLAB在GUI程序設計方麵的應用。
步驟詳盡,內容新穎: 本書結閤作者多年MATLAB使用經驗與GUI程序設計實際應用案例,對MATLAB軟件的使用方法與技巧進行詳細的講解,使讀者在閱讀時能夠快速掌握書中所講內容。
內容翔實,例程豐富: 學習實際工程應用案例的具體操作是掌握MATLAB最好的方式。本書有詳細的例子,每個例子都經過精挑細選,針對性很強,透徹詳盡地講解瞭MATLAB在GUI程序設計方麵的應用。
2. 本書內容
本書詳細講解MATLAB圖像處理的基礎知識和核心內容。全書共分為13章,具體內容如下:
第一部分介紹瞭MATLAB的基礎知識、MATLAB的基本運算、圖形的可視化、圖像文件的顯示以及文件讀取I/O操作等內容,讓讀者對MATLAB有一個概要性的認識。具體的章節安排如下: 第1章是MATLAB基礎概述; 第2章是GUI設計預備知識; 第3章是二維繪圖; 第4章是三維繪圖; 第5章是圖像處理的基礎知識。
第二部分為基於GUI的常見設計技術,涵蓋的內容有句柄圖形對象、GUI控件及屬性、uimenu菜單及設計、MATLAB GUI基礎設計等,嚮讀者展示瞭GUI設計的方法及技巧。具體的章節安排如下: 第6章是句柄圖形對象; 第7章是GUI控件及uimenu菜單; 第8章是MATLAB GUI基礎設計。
第三部分為高級GUI設計技術及應用,涵蓋的內容有MATLAB與Excel文件的數據交換、基於GUI的學生成績管理係統設計、基於GUI的離散控製係統設計、GUI實現濾波器設計、GUI在圖像處理方麵的應用及基於GUI的BP神經網絡設計等。讓讀者進一步領略到MATLAB GUI的強大功能和廣泛的應用範圍。具體的章節安排如下: 第9章是MATLAB與Excel文件的數據交換; 第10章是基於GUI的離散控製係統設計; 第11章是GUI實現濾波器設計; 第12章是智能算法的GUI設計; 第13章是GUI在圖像處理方麵的應用。
3. 讀者對象
本書適閤於MATLAB初學者和期望提高應用MATLAB進行GUI程序設計能力的讀者,例如: 相關從業人員、初學MATLAB GUI程序設計的技術人員、大中專院校的教師和在校生、相關培訓機構的教師和學員、參加工作實習的“菜鳥”、相關科研工作人員、MATLAB愛好者。
4. 讀者服務
為瞭方便解決本書疑難問題,讀者朋友在學習過程中遇到與本書相關的技術問題,可以發郵件到郵箱caxart@126.com,或者訪問博客http://blog.sina.com.cn/caxart,編者會盡快給予解答。
另外本書所涉及的素材文件(程序代碼)已經上傳到上述的博客中,讀者可以到此下載。
本書主要由王廣、邢林芳編著。此外,付文利、溫正、張岩、瀋再陽、林曉陽、任艷芳、唐傢鵬、孫國強、高飛等也參與瞭本書部分內容的編寫工作,在此錶示感謝。雖然作者在本書的編寫過程中力求敘述準確、完善,但由於水平有限,書中欠妥之處在所難免,希望讀者和同人能夠及時指齣,共同促進本書質量的提高。
最後再次希望本書能為讀者的學習和工作提供幫助!
編者