基于MATLAB的圖像處理及跟蹤算法

上傳人:jun****875 文檔編號:20004946 上傳時間:2021-01-24 格式:DOC 頁數(shù):54 大?。?55.91KB
收藏 版權申訴 舉報 下載
基于MATLAB的圖像處理及跟蹤算法_第1頁
第1頁 / 共54頁
基于MATLAB的圖像處理及跟蹤算法_第2頁
第2頁 / 共54頁
基于MATLAB的圖像處理及跟蹤算法_第3頁
第3頁 / 共54頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于MATLAB的圖像處理及跟蹤算法》由會員分享,可在線閱讀,更多相關《基于MATLAB的圖像處理及跟蹤算法(54頁珍藏版)》請在裝配圖網上搜索。

1、摘 要 視頻圖像處理技術廣泛用于工業(yè)、安全、醫(yī)療、管理等領域。運動目標的檢測和跟蹤是圖像處理技術在視頻序列圖像處理方面的一個重要應用,在航天、交通、機器人視覺、視頻監(jiān)控、公共場所客流數(shù)據(jù)監(jiān)測等場合發(fā)揮著重要作用。 本文介紹了一種基于MATLAB的簡易的從視頻播放的幀圖像中找出目標圖像,并進行視頻跟蹤的實現(xiàn)方法。通過對圖像進行閾值處理(圖像分割),再對分割后的圖像求取形心,以對目標圖像進行定位,并最后找到各幅幀圖像的目標位置的方法,從而實現(xiàn)對100幀視頻圖像的實時跟蹤。 關鍵詞:目標檢測;閾值處理;視頻序列目標跟蹤;形心估計 ABSTRACT Video image proce

2、ssing technology is widely used in industrial, security, health care, management and other fields. Motion target detection and tracking is image processing technology in video sequence is an important application in image processing, in the aerospace, transportation, robot vision, video surveillance

3、, public traffic data monitoring plays an important role. This paper introduces a simple MATLAB to find the target image from the video image frame based, and realization method of video tracking.Through the threshold of image processing (image segmentation), then the after image segmentation to ob

4、tain the centroid, to locate the target image, and finally found the method of each frame image of the target position, so as to realize the real-time tracking of the 100 frame of video images. Key words: target detection; threshold; video object tracking; centroid estimation 目錄 第1章 引言 1 1.1 選題背

5、景 1 1.2 課題研究目的及意義 2 1.3 課題研究思路 3 第2章 數(shù)字圖像處理簡介 4 2.1 圖像數(shù)字化過程 4 2.2 數(shù)字圖像處理的基本內容 6 2.2.1 基本概念 6 2.2.2 數(shù)字圖像處理的主要內容 6 2.3 數(shù)字圖像處理的特點和應用 8 2.3.1 數(shù)字圖像處理的特點 8 2.3.2 數(shù)字圖像處理的應用 8 2.4 數(shù)字圖像類型 9 2.5 主要圖像文件格式 11 第3章 MATLAB仿真軟件的簡介 13 3.1 MATLAB的歷史背景 13 3.2 MATLAB簡介 14 3.3 MATLAB的特點 15 3.4 MATLAB在數(shù)字

6、圖像中的應用 16 第4章 圖形用戶界面 18 4.1 圖形用戶界面簡介 18 4.2 MATLAB 常用圖像操作 18 4.3 GUI的創(chuàng)建 20 4.4 GUI的應用 22 4.4.1 腳本與函數(shù) 22 4.4.2 遞歸函數(shù)調用 23 4.4.3 調試GUI M文件 23 第5章 基于MATLAB的圖像跟蹤算法 24 5.1 100幀視頻圖像的讀取 24 5.2 圖像的閾值處理(圖像分割) 24 5.2.1 閾值的確定 25 5.2.2 圖像的閾值分割 26 5.3 形心(距心)的求取 28 5.4 設置跟蹤波門 29 第6章 總結與展望 34 6.1

7、 總結 34 6.2 展望 34 參考文獻 36 致謝 37 附 錄 38 附錄一:圖像類型轉換模塊的實現(xiàn) 38 附錄二:圖像模塊中灰度的變換 38 外文資料原文 42 譯文 45 第1章 引言 1.1 選題背景 數(shù)字圖像處理起源于20世紀20年代。當時,人們通過Bartlane海底電纜圖片傳輸系統(tǒng),從倫敦到紐約傳輸了一幅經過數(shù)字壓縮后的照片,從而把傳輸時間從一周多縮短到不足三個小時。為了傳輸圖片,該系統(tǒng)在傳輸端進行了圖像編碼,然后在接受端用特殊打印設備重構了該圖片。盡管這一應用包含了數(shù)字圖像處理的知識,但是并沒有使用計算機。而數(shù)字圖像處理需要很大的存儲空間和計算能

8、力,其發(fā)展受到計算機中數(shù)據(jù)儲存、顯示和傳輸?shù)认嚓P技術發(fā)展的制約[1]。 在20世紀50年代,當時的電子計算機已經發(fā)展到一定水平,人們開始利用計算機來處理圖形和圖形信息。 在20世紀60年代初期數(shù)字圖像處理作為一門學科大約形成了。第一臺可執(zhí)行圖像處理任務的大型進算計出現(xiàn)。早期的圖像處理的目的是改善圖像的質量,它以人為對象,已改善人的視覺效果為目的。圖像處理中,輸入的是質量低的圖像,輸出的是改善質量后的圖像,常用的圖像處理方法有圖像增強、復原、編碼、壓縮等。首次獲得實際成功應用的是美國噴氣推進實驗室(JPL)。他們對航天探測器徘徊者7號在1964年發(fā)回的幾千張月球照片使用了圖像處理技術,如幾何

9、校正、灰色變換、去除噪聲的方法進行處理,并考慮了太陽位置和月球環(huán)境的影響,由計算機成功地繪制出月球表面地圖,獲得了巨大的成功。隨后又對探測飛船發(fā)回的近十萬張照片進行更為復雜的圖像處理技術都發(fā)揮了巨大的作用。 20世紀60年代末70年代初,數(shù)字圖像處理技術應用于醫(yī)學圖像、地球遙感監(jiān)測和天文學等諸多領域。1972年英國EMI公司工程師Housfield發(fā)明了用于頭顱診斷的X射線計算機斷層攝影裝置,也就是我們通常所說的CT(Computer Tomograph)。CT基本方法是根據(jù)人的頭部截面的投影,經計算機處理來重建截面圖像,稱為圖像重建。1975年EMI公司又成功研制出全身用的CT裝置,獲得了

10、人體各個部位鮮明清晰的斷層圖像。1979年,這項無損傷診 斷技術獲得了諾貝爾獎,說明它對人類作出了劃時代的貢獻。1972年美國陸地資源衛(wèi)星(Landsat)將多譜圖像用于資源探測。同年,計算機層析儀(CT)問世,它將圖像重建技術用于醫(yī)學[2]。 20世紀70年代中期開始,隨著計算機技術和人工智能、思維科學研究的迅速發(fā)展,數(shù)字圖像處理向更高、更深層次發(fā)展。人們已開始研究如何使用計算機系統(tǒng)解釋圖像,實現(xiàn)類似人類視覺系統(tǒng)理解外部世界,這被稱為圖像理解或計算機視覺。很多國家,特別是發(fā)達國家投入更多的人力、物力到這項研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的視

11、覺計算理論,這個理論成為計算機視覺其后十多年的主導思想。圖像理解雖然在理論方法研究上已取得了不小的進展,但它本身是一個比較難的研究領域,存在不少困難,因人類本身對自己的視覺過程還了解甚少,因此計算機視覺是一個有待人們進一步探索新的領域。 1.2 課題研究目的及意義 最早的圖像處理時上世紀六七十年代,隨著電子技術和計算機技術的不斷提高和普及,數(shù)字圖像處理進入高速發(fā)展時期。數(shù)字圖像處理就是利用數(shù)字計算機或者其他數(shù)字硬件,對圖像信息轉換而得的電信號進行某些數(shù)學運算,以提高圖像的實用性。例如從衛(wèi)星圖片中提取目標物的特征參數(shù),三維立體斷層圖像的重建等等。數(shù)字圖像處理技術處理精度比較高,而且還可以通過

12、改進處理軟件來優(yōu)化處理效果??偟膩碚f,數(shù)字圖像處理包括點運算、幾何處理、圖像增強、圖像還原、圖像形態(tài)學處理、圖像編碼、圖像重建、模式識別等。 由于計算機技術處理能力不斷增強,數(shù)字圖像處理學科在飛速發(fā)展的同時,也越來越廣泛地向其他許多學科快速交叉滲透,使得圖像作為信息獲取以及信息的利用等方面也變得越來越重要。目前數(shù)字圖像處理應用越來越廣泛,已經滲透到工業(yè)、醫(yī)療保健、航空航天、軍事等各個領域,在國民經濟中發(fā)揮越來越大的作用。MathWorks公司推出的MATLAB是學習數(shù)理知識的好幫手。應用MATLAB友好的界面和豐富、實用、高效的指令及模塊,可以使人較快地認識、理解圖像處理的相關概念,逐步掌握

13、圖像信號處理的基本方法,進而能夠解決相關的工程和科研中的問題。 圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著人類活動范圍的不斷擴大,圖像處理的應用領域也將隨之不斷擴大,數(shù)字圖像處理對人類的作用將是不可限量[3]。 1.3 課題研究思路 本文首先通過對MATLAB軟件的了解及應用,基于MATLAB的數(shù)字圖像處理環(huán)境和如何利用MATLAB及其圖像處理工具箱進行數(shù)字圖像處理。主要論述了利用MATLAB實現(xiàn)對圖像讀取、閥值處理、距心的求取等圖像處理。 第2章 數(shù)字圖像處理簡介 2.1 圖像數(shù)字化過程 圖像的數(shù)字化過程就是在計算機內

14、生成一個二維矩陣的過程。數(shù)字化的目的是將一幅圖像以數(shù)字的形式進行表示,并且要做到既不失真又便于計算機進行處理。圖像的數(shù)字化要求是要達到以最小的數(shù)據(jù)量不失真地描述圖像信息。數(shù)字圖像(digital imagine)和傳統(tǒng)的圖像即模擬圖像(picture)是有差別的。 圖像的數(shù)字化包括采樣和量化兩個過程。 1.采樣 采樣(sampling)就是把在時間上和空間上連續(xù)的圖像分割成離散點(采樣點,即像素)的集合的一種操作。 采樣是對圖像空間坐標的離散化,它決定了圖像的空間分辨率。采樣越細,越能精確地表現(xiàn)圖像。 圖像基本上是在二維平面上連續(xù)分布的信息形式要把它輸入到計算機中,首先要把二維信號變

15、成一維信號,因此要進行掃描(scanning)。最常用的掃描方法是在二維平面上按一定間隔順序地從上方順序地沿水平方向的直線(掃描線)掃描,從而取出濃淡值(灰度值)的線掃描(Laster掃描)。對于由此得到的一維信號,通過求出每一特定間隔的值,可以得到離散的信號。對于運動圖像除進行水平,垂直兩個方向的掃描以外,還有進行時間軸上的掃描。 通過采樣,如設橫向的像素數(shù)為M,縱向的像素數(shù)為N,則畫面的大小可以表示為“M*N”個像素。 一般來說,圖像中細節(jié)越多,采樣的間隔應當越小。 2.量化 如果把這些連續(xù)變化的值(灰度值)量化為8bit,則灰度值被分成0-2552的256個級別,分別對應于各個灰

16、度值的濃淡程度,叫做灰度等級或灰度標度。經過采樣,圖像被分解成在時間上和空間上離散分布的像素,但是像素的值(灰度值)還是連續(xù)值。像素的值,是指白色-灰色-黑色的濃淡值,有時候也指光的 強度(亮度)值或灰度值。把這些連續(xù)的濃淡值或灰度值變?yōu)殡x散的值(整數(shù)值)的操作就是量化。 在0-255的值對應于白-黑的時候,有以0為白,255為黑的方法,也有以0為黑,255為白的方法,這取決于圖像的輸入方法以及用什么樣的觀點對圖像進行處理等,這是在編程時應特別注意的問題。但在只有黑白二值的二值圖像的情形,一般設0為白,1為黑[4]。 量化的方法有: (1) 分層量化(Hierarchical quan

17、tization) (2) 均勻量化(Uniform quantization) (3) 非均勻量化(Non-uniform quantization) 分層量化是把每一個離散樣本的連續(xù)灰度值分成有限多的層次。均勻量化是把源圖像灰度層次從最暗至最亮均勻分為有限層次,如果采用不均勻分層就是非均勻量化。 對連續(xù)的灰度值賦予量化級的,即灰度值方法有:等間隔量化(Equal interval quantization)和非等間隔量化(Non equal interval quantization)。等間隔量化是簡單地把采樣值的灰度范圍等間隔地分割并進行量化。非均勻量化是依據(jù)一幅圖像具體的灰度值

18、分布的概率密度函數(shù),按總的量化誤差的最小的原則來進行量化。實用中一般采用等間隔量化[5]。 3. 采樣、量化和圖像細節(jié)的關系 上面的數(shù)字化過程,需要確定數(shù)值N和灰度級的級數(shù)K。在數(shù)字圖像處理中,一般都取成2的整數(shù)冪,即: (2-1) (2-2) 一幅數(shù)字圖像在計算機中所占的二進制存儲位數(shù)b為:

19、 (2-3) 例如,灰度級為256級(m=8)的512512的一幅數(shù)字圖像,需要大約210萬個存儲位。隨著N和m的增加,計算機所需要的存儲量也隨之迅速增加。 由于數(shù)字圖像是連續(xù)圖像的近似,從圖像數(shù)字化的過程可以看到。這種近似的程度主要取決于采樣樣本的大小和數(shù)量(N值)以及量化的級數(shù)K(或m值)。N和K的值越大,圖像越清晰[6]。 2.2 數(shù)字圖像處理的基本內容 2.2.1 基本概念 數(shù)字圖像處理(Digital Image Processing)是通過計算機對圖像進行去除噪聲、增強、復原、分割、提取特征等處理的方法和技術。相對于以往的數(shù)字圖像處理方法,數(shù)字圖像處理是一次新的“工

20、業(yè)革命”,它徹底改變了以往人們處理圖像時所采用的手段,成為圖像處理中一個嶄新的方向。 數(shù)字圖像處理的產生和迅速發(fā)展主要受三個因素的影響:一是計算機的發(fā)展;二是數(shù)學的發(fā)展(特別是離散數(shù)學理論的創(chuàng)立和完善);三是廣泛的農牧業(yè)、林業(yè)、環(huán)境、軍事、工業(yè)和醫(yī)學等方面的應用需求的增長[7]。 2.2.2 數(shù)字圖像處理的主要內容 從系統(tǒng)整體研究的角度來看,數(shù)字圖像處理的研究內容主要包括以下幾個方面:圖像的獲取、表示與表現(xiàn),圖像增強、圖像復原、圖像分割、圖像分析、圖像重建及圖像編碼壓縮等。其中,數(shù)字圖像處理包括:算術/邏輯操作和幾何運算、圖像增強、圖像分割、圖像形態(tài)學處理、模式識別、圖像復原、圖像壓縮等

21、內容。 (1)算術/邏輯操作 圖像中的算術/邏輯操作主要以像素對像素為基礎在兩幅或多幅圖像間進行(其中不包含邏輯非操作,它在單一影像中進行)。 對圖像的邏輯操作同樣也是基于像素的?!芭c或非”這三種邏輯算子完全是函數(shù)化的。當我們對灰度級圖像進行邏輯操作時,像素值作為一個二進制的字符串來處理。 在四種算術操作中,減法與加法在圖像處理中最有用。我們簡單的把兩幅圖像想除看成是用一副的取反圖像與另一幅圖像相乘。在四種代數(shù)運算操作中加法運算可用于降低圖像中加性隨機噪聲的污染;減法運算則可以檢測圖像中物體的運動變化;乘法運算可用于標記圖像中的感興趣區(qū)域;除法運算則經常用于多光譜遙感圖像的分析處理,以

22、擴大不同物體之間的差異。 (2)幾何變換 幾何運算用于改變圖像中像素與像素之間的空間位置關系,從而改變圖像的空間結構,達到處理圖像的目的。簡單而言,圖像幾何變換就是建立一種源圖像像素與變換后的圖像像素之間的映射關系。主要包括圖像的平移、縮放、旋轉、鏡像和轉置變換等。 (3)圖像增強 圖像增強是圖像處理最關鍵的研究問題之一,圖像增強按作用域可分為兩類,即空域處理和頻域處理??沼蛱幚硎侵苯訉D像進行處理,而頻域處理則是在圖像的某個變化域內,對圖像的變換系數(shù)進行運算,然后通過逆變換獲得圖像增強效果。圖像增強可以突出圖像中的某些“有用”信息,擴大圖像中不同物體特征之間的差別,改善圖像的視

23、覺效果。圖像增強的算法包括直方圖增強,空域濾波增強,頻域濾波增強和彩色增強等。 (4)圖像分割 圖像分割將圖像細分為構成它的子區(qū)域或對象。圖像分割算法一般基于亮度值的兩個基本特性之一:不連續(xù)性和相似性。第一類方法基于亮度的不連續(xù)變化分割圖像,比如圖像的邊緣。第二類方法依據(jù)事先制定的準則將圖像分割為相似的區(qū)域。圖像分割包括間斷檢測,邊緣檢測,門限處理等。 (5)圖像形態(tài)學處理 圖像形態(tài)學由一組形態(tài)學代數(shù)算子組成,最基本的形態(tài)學代數(shù)算子包括腐蝕、膨脹、開運算、閉運算等,通過組合應用這些算子,可以實現(xiàn)對圖像形狀、結構的分析和處理。數(shù)學形態(tài)學可以完成圖像分割、特征提取、邊界檢測、圖像濾波、圖像

24、增強和恢復等工作。 (6)模式識別 模式識別總是從大量信息和數(shù)據(jù)出發(fā),在一定的經驗和認識基礎上,利用計算機和數(shù)學的推理的方法對信息進行自動識別。模式識別系統(tǒng)一般包括4個部分,即數(shù)據(jù)獲取、預處理、特征提取和決策分類。 (7)圖像復原(恢復) 由于設備造成的掃描線漏失、錯位等各種原因不可避免造成圖像質量的下降(退化)。圖像的復原就是根據(jù)事先建立起來的系統(tǒng)退化模型,將降質了的圖像重建成接近于或完全無退化的原始理想圖像的過程。 (8)圖像壓縮 數(shù)字圖像的數(shù)據(jù)量是很巨大的,然而數(shù)字圖像實際上又具有很大的壓縮潛力。圖像壓縮所解決的問題是盡量減少表示數(shù)字圖像時所需的數(shù)據(jù)量。減少數(shù)據(jù)量的基本原理是

25、出去其中的冗余數(shù)據(jù)。這種變換在圖像存儲或傳輸之前進行。在以后的某個時候,再對壓縮圖像進行解壓縮,以重構原圖像或原圖像的近似圖像[8]。 2.3 數(shù)字圖像處理的特點和應用 2.3.1 數(shù)字圖像處理的特點 (1) 數(shù)字圖像處理的信息大多是二維信息,處理信息量很大。因此對計算機的計算速度、存儲容量等要求較高。 (2) 數(shù)字圖像處理占用的頻帶較寬。與語言信息相比,占用的頻帶要打幾個數(shù)量級。 (3) 數(shù)字圖像中各個像素是不獨立的,其相關性大。在圖像畫面上,經常有很多像素有相同或接近的灰度。 (4) 由于圖像是三維景物的二維投影,一幅圖像本身不具備復現(xiàn)三維景物的全部幾何信息的能力,很顯然三維景

26、物背后部分信息在二維圖像畫面上是反應不出來的。因此,要分析和理解三維景物必須做合適的假定或附加新的測量。 (5) 數(shù)字圖像處理后的圖像一般是給人觀察和評價的,因此受人的因素影響較大。 2.3.2 數(shù)字圖像處理的應用 計算機圖像處理和計算機、多媒體、智能機器人、專家系統(tǒng)等技術的發(fā)展緊密相關。近年來計算機識別、理解圖像的技術發(fā)展很快,也就是圖像處理的目的除了直接供人觀看(如醫(yī)學圖像是為醫(yī)生觀看作診斷)外,還進一步發(fā)展了與計算機視覺有關的應用,如郵件自動分檢,車輛自動駕駛等。下面僅羅列了一些典型應用實例,而實際應用更廣。 (1)在生物醫(yī)學中的應用 主要包括顯微圖像處理;DNA顯示分析;紅、

27、白血球分析計數(shù);蟲卵及組織切片的分析;癌細胞的識別;染色體分析等等。 (2)遙感航天中的應用 軍事偵察、定位、導航、指揮等應用;多光譜衛(wèi)星圖像分析;地形、地圖、國土普查;地質、礦藏勘探;天文、太空星體的探測及分析等。 (3)工業(yè)應用 CAD 和CAM技術用于模具、零件制造、服裝、印染業(yè);零件、產品無損檢測,焊縫及內部缺陷檢查;交通管制、機場監(jiān)控;火車車皮識別等。 (4)軍事公安領域中的應用 巡航導彈地形識別;指紋自動識別;警戒系統(tǒng)及自動火炮控制;反偽裝偵察;手跡、人像、印章的鑒定識別;過期檔案文字的復原;集裝箱的不開箱檢查等。 (5)遙感上的應用 在遙感的發(fā)展中,可以看到大量與

28、圖像處理密切相關的技術。如在20世紀70年代美國發(fā)射的第一顆陸地衛(wèi)星就是通過對獲取的遙感圖片進行處理后達到上述目的的。隨后美國發(fā)射了海洋衛(wèi)星、氣象衛(wèi)星和軍用衛(wèi)星,從而獲取了大量遙感資料。此圖像處理廣泛應用于土地測繪、資源調查、氣象監(jiān)測、環(huán)境污染監(jiān)測、森林防護等。 (6)其他應用 圖像的遠距離通信;多媒體計算機系統(tǒng)及應用;電視電話;服裝試穿顯示;理發(fā)發(fā)型預測顯示;電視會議;辦公自動化、現(xiàn)場視頻管理等[9]。 2.4 數(shù)字圖像類型 MATLAB中,一幅圖像可能包含一個數(shù)據(jù)矩陣,也可能包含一個顏色映射表矩陣。MATLAB中有四種基本的圖像類型: (1)二值圖像(二進制圖像) 二值圖像也叫

29、黑白圖像,就是圖像像素只存在0、1兩個值。一個二值圖像是純黑白的。每一個像素值將取0或者1中的一個值,通常0表示黑,1表示白。 二值圖像可以保存為雙精度或uint8類型的雙精度數(shù)組,顯然使用uint8類型更節(jié)省空間。在圖像處理工具箱中,任何一個返回二進制圖像的函數(shù)都是以uint8類型邏輯數(shù)組來返回的。 (2)灰度圖像 在MATLAB中,灰度圖像是保存在一個矩陣中的,矩陣中的每一個元素代表一個像素點。矩陣可以是雙精度類型,其值域為[0,1];也可以為uint8類型,其數(shù)據(jù)范圍為[0,255]。矩陣的每個元素代表不同的亮度或灰度級。 彩色圖像轉化為灰度圖像公式:

30、 (2-4) (3)索引圖像 索引圖像包括圖像矩陣與顏色圖數(shù)組,其中,顏色圖是按圖像中顏色值進行排序后的數(shù)組。對于每個像素,圖像矩陣包含一個值,這個值就是顏色圖中的索引。顏色圖為m*3雙精度值矩陣,各行分別指定紅綠藍(RGB)單色值。Colormap=[R,G, B],R,G,B為值域為[0,1]的實數(shù)值。 圖像矩陣與顏色圖的關系依賴于圖像矩陣是雙精度型還是uint8(無符號8位整型)類型。如果圖像矩陣為雙精度類型,第一點的值對應于顏色圖的第一行,第二點對應于顏色圖的第二行,依次類推。如果圖像矩陣是uint8,有一個偏移量,第0點值對應于顏色圖

31、的第一行,第一點對應于第二行,依次類推;uint8長用于圖形文件格式,它支持256色。 (4)RGB圖像 與索引圖像一樣,RGB圖像分別用紅,綠,藍三個亮度值為一組,代表每個像素的顏色。與索引圖像不同的是,這些亮度值直接存在圖像數(shù)組中,而不是存放在顏色圖中。圖像數(shù)組為M*N*3,M,N表示圖像像素的行列數(shù)[10]。 2.5 主要圖像文件格式 (1) JPEG(Joint Photographic Experts Group)格式,是一種成為聯(lián)合圖像專家組的圖像壓縮格式。文件后綴名為“.jpeg”或“.jpg”,是最常用的圖像文件格式。JPEG是一種有損壓縮格式,能夠將圖像壓縮在很小的存

32、儲空間內。 (2) TIFF(Tagged Image File Format)格式。它是目前圖像文件格式中最復雜的一種。處理1,4,8,24位非壓縮圖像,1,4,8,24位packbit壓縮圖像,一位CCITT壓縮圖像等。且它支持單色到32位真彩色模式的所有圖像。文件內容包括:文件頭,參數(shù)指針表與參數(shù)域,參數(shù)數(shù)據(jù)表和圖像數(shù)據(jù)四部分。 (3) BMP(Windows Bitmap)格式。它是一種與硬件設備無關的圖像文件格式,使用非常廣。有1,4,8,24位非壓縮圖像,8位RLE(Run-length Encoded )圖像。文件內容包括:文件頭(一個BITMAP FILEHEADER數(shù)據(jù)結

33、構),位圖信息數(shù)據(jù)塊(位圖信息頭BITMAP INFOHEADER和一個顏色表)和圖像數(shù)據(jù)。 (4) GIF(Graphics Interchange Format)格式。原義是“圖像互換格式”,是CompuServe公司在 1987年開發(fā)的圖像文件格式。GIF文件的數(shù)據(jù),是一種基于LZW算法的連續(xù)色調的無損壓縮格式。其壓縮率一般在50%左右,它不屬于任何應用程序。目前幾乎所有相關軟件都支持它,公共領域有大量的軟件在使用GIF圖像文件。GIF圖像文件的數(shù)據(jù)是經過壓縮的,而且是采用了可變長度等壓縮算法。GIF格式的另一個特點是其在一個GIF文件中可以存多幅彩色圖像,如果把存于一個文件中的多幅圖

34、像數(shù)據(jù)逐幅讀出并顯示到屏幕上,就可構成一種最簡單的動畫。 (5) PCX(Windows Paintbrush)格式。它是最早使用的圖像文件格式之一。PCX格式支持256種顏色,不如TIFF等格式功能強,但結構比較簡單,存取速度快,壓縮比適中,適用于一般軟件的使用??商幚?,4,8,16,24位等圖像數(shù)據(jù)。文件內容包括:文件頭(128字節(jié)),圖像數(shù)據(jù)、擴展顏色映射表數(shù)據(jù)。 (6) HDF(Hierarchical Data Format)格式。有8位、24位光柵數(shù)據(jù)集。 (7) PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度圖像,

35、8位和16位索引圖像,24位和48位真彩色圖像。 (8) RAS(Sun Raster image): 有1位bitmap、8位索引、24位真彩色和帶有透明度的32位真彩色。 (9) CO(Windows Icon resource): 有1位、4位、8位非壓縮圖像[11]。 第3章 MATLAB仿真軟件的簡介 3.1 MATLAB的歷史背景 在20世紀70年代中期,Cleve Moler博士和其同事在美國國家科學基金的資助下開發(fā)了調用EISPACK和LINPACK的FORTRAN子程序庫。EISPACK是特征值求解的FORTRAN程序庫,LINPACK是解線性方程的程序庫。在當

36、時,這兩個程序庫代表矩陣運算的最高水平。 到20世紀70年代后期,身為美國New Mexico大學計算機系系主任的Cleve Moler,在給學生講授線性代數(shù)課程時,想教學生使用EISPACK和LINPACK程序庫,但他發(fā)現(xiàn)學生用FORTRAN編寫接口程序很費時間,于是他開始自己動手,利用業(yè)余時間為學生編寫EISPACK和LINPACK的接口程序。Cleve Moler給這個接口程序取名為MATLAB,該名為矩陣(matrix)和實驗室(laboratory)兩個英文單詞的前三個字母的組合。在以后的數(shù)年里,MATLAB在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。 1

37、983年春天,Cleve Moler到Stanford大學講學,MATLAB深深地吸引了工程師John Little。John Little敏銳地覺察到MATLAB在工程領域的廣闊前景。同年,他和 Cleve Moler、Sieve Bangert一起,用C語言開發(fā)了第二代專業(yè)版。這一代的MATLAB語言同時具備了數(shù)值計算和數(shù)據(jù)圖示化的功能。 1984年,Cleve Moler和 John Lithe成立了MathWorks公司,正式把MATLAB推向市場,并繼續(xù)進行MATLAB的研究和開發(fā)。 在當今30多個數(shù)學類科技應用軟件中,就軟件數(shù)學處理的原始內核而言,可分為兩大類。一類是數(shù)值計算型

38、軟件,如 MATLAB、Xmath、Gauss等,這類軟件長于數(shù)值計算,對處理大批數(shù)據(jù)效率高;另一類是數(shù)學分析型軟件,如Mathematica、Maple等,這類軟件以符號計算見長,能給出解析解和任意精度解,其缺點是處理大量數(shù)據(jù)時效率較低。MathWorks公司順應多功能需求之潮流,在其卓越數(shù)值計算和圖示能力的基礎上,又率先在專業(yè)水平上開拓了其符號計算、 文字處理、可視化建模和實時控制能力,開發(fā)了適合多學科、多部門要求 的新一代科技應用軟件MATLAB。經過多年的國際競爭,MATLAB 已經占據(jù)了數(shù)值型軟件市場的主導地位。 在MATLAB進入市場前,國際上的許多應用軟件包都是直接以FOR

39、TRAN和C語言等編程語言開發(fā)的。這種軟件的缺點是使用面窄、接口簡陋、程序結構不開放以及沒有標準的基庫,很難適應各學科的最新發(fā)展,因而很難推廣。MATLAB的出現(xiàn),為各國科學家開發(fā)學科軟件提供了新的基礎。在MATLAB問世不久的20世紀80年代中期,原先控制領域里的一些軟件包紛紛被淘汰或在MATLAB上重建。 時至今日,經過Math Works公司的不斷完善,MATLAB已經發(fā)展成為適合多學科、多種工作平臺的功能強勁的大型軟件。在國外,MATLAB已經經受了多年考驗。在歐美等高校,MATLAB已經成為線性代數(shù)、自動控制理論、數(shù)理統(tǒng)計、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真等高級課程的基本教

40、學工具;成為攻讀學位的大學生、碩士生、博士生必須掌握的基本技能。在設計研究單位和工業(yè)部門,MATLAB被廣泛用于科學研究和解決各種具體問題[12]。 3.2 MATLAB簡介 MATLAB是由美國mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設計以及必須進行有效數(shù)值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水

41、平。 MATLAB 是MATrix LABoratory(“矩陣實驗室”)的縮寫,不僅具備完善的科學計算功能,而且能勝任眾多專業(yè)領域的仿真和設計任務,甚至能自動生成直接與硬件關聯(lián)的代碼,在圖像處理、系統(tǒng)仿真、數(shù)字信號處理、自動控制等領域都有著廣泛的應用。 MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完相同的事情簡捷得多。 MATLAB包括擁有數(shù)百個內部函數(shù)的主包和三十幾種工具包(Toolbox)。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充MATLAB的符號計算,可視化建模仿真

42、,文字處理及實時控制等功能。學科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。 MATLAB圖像處理工具箱包括: (1)圖像處理工具箱(Image Processing Toolbox) 它為工程師和科學家提供了一套完整的用于圖像處理和分析的函數(shù),總共超過了200個圖像處理函數(shù),用戶只需要花少量的時間在算法編程上,而可以把大量時間用于問題的分析處理上。 (2)圖像獲取工具箱(Image Acquisition Toolbox) 它擴展了MATLAB的強大科學計算能力,允許直接在MATLAB環(huán)境下通過工業(yè)標準硬件設備獲取圖像和視頻信號。 (3)地圖

43、工具箱(Mapping Toolbox) 它與MATLAB組合起來提供了一個完整的分析和顯示地理信息的環(huán)境,利用該工具箱提供的函數(shù),工程師可以用來分析地理數(shù)據(jù),進行地圖顯示,調用外部地圖數(shù)據(jù)源。 3.3 MATLAB的特點 MATLAB軟件具有如下特點: (1) 它的語言非常接近自然語言,因此,具有一定程序設計基礎的人學起來比較容易。運算符豐富,具有結構化的控制語句(如for循環(huán),while循環(huán),break語句和if語句),又有面向對象編程的特性。它的程序限制不嚴格,程序設計自由度大,而且具有源程序的開放性。 (2) 該軟件提供了大量的內部函數(shù),讓用戶在使用時非常方便,此外,日益

44、龐大的Toolbox更是讓該軟件的應用領域越來越廣泛。 (3) 該軟件語言以向量矩陣為著眼點,因此它比較適于進行數(shù)值分析。 (4) 它的繪圖功能強大,由于MATLAB在世界范圍內特別是在工程計算領域的流行,越來越多的人開始青睞并使用這套軟件。 (5) MATLAB的缺點是,它和其他高級程序相比,程序的執(zhí)行速度較慢。由于MATLAB的程序不用編譯等預處理,也不生成可執(zhí)行文件,程序為解釋執(zhí)行,所以速度較慢[13]。 3.4 MATLAB在數(shù)字圖像中的應用 圖像處理工具包是由一系列支持圖像處理操作的函數(shù)組成的。所支持的圖像處理操作有:圖像的幾何操作、鄰域和區(qū)域操作、圖像變換、圖像恢復與增

45、強、線性濾波和濾波器設計、變換(DCT變換等) 、圖像分析和統(tǒng)計、二值圖像操作等。下面就MATLAB 在圖像處理中各方面的應用分別進行介紹。 (1) 圖像文件格式的讀寫和顯示。MATLAB 提供了圖像文件讀入函數(shù) imread(),用來讀取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式圖像文;圖像寫出函數(shù) imwrite() ,還有圖像顯示函數(shù) image()、imshow()等等。 (2) 圖像處理的基本運算。MATLAB 提供了圖像的和、差等線性運算 ,以及卷積、相關、濾波等非線性算。例如,conv2(I,J)實現(xiàn)了I,J兩幅圖像的卷積。 (3) 圖

46、像變換。MATLAB 提供了一維和二維離散傅立葉變換(DFT) 、快速傅立葉變換(FFT) 、離散余弦變換 (DCT) 及其反變換函數(shù),以及連續(xù)小波變換(CWT)、離散小波變換(DWT)及其反變換。 (4) 圖像的分析和增強。針對圖像的統(tǒng)計計算MATLAB 提供了校正、直方圖均衡、中值濾波、對比度調整、自適應濾波等對圖像進行的處理。 (5) 圖像的數(shù)學形態(tài)學處理。針對二值圖像,MATLAB 提供了數(shù)學形態(tài)學運算函數(shù);腐蝕(Erode)、膨脹(Dilate)算子,以及在此基礎上的開 (Open)、閉(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等豐富的數(shù)學形態(tài)學運算

47、。 (6) 此外,還有一些重要的函數(shù)在MATLAB中的應用: ① 使用imnoise添加噪聲。 ② 使用imfinfo用于圖像文件信息查詢。 ③ 使用montage函數(shù)來顯示多幀圖像陣列。 ④ 使用immovie函數(shù)顯示多幀圖像陣列中創(chuàng)建MATLAB電影動畫。 ⑤ 使用zoom函數(shù)來實現(xiàn)圖像上任一區(qū)域的縮放。 ⑥ 使用warp函數(shù)將圖像作為紋理進行映射。 ⑦ 使用subimage函數(shù)在一個圖像窗口中顯示多幅圖像。 以上所提到的 MATLAB在圖像中的應用都是由相應的MATLAB函數(shù)來實現(xiàn)的,使用時,只需按照函數(shù)的調用語法正確輸入?yún)?shù)即可。具體的用法可參考MATL

48、AB豐富的幫助文檔。圖像邊緣對圖像識別和計算機分析十分有用,在MATLAB中,函數(shù) edge()用于灰度圖像邊緣的提取,它支持六種不同的邊緣提取方法,即Sobel方法、Prewitt 方法、Robert 方法,Laplacian2Gaussian方法、過零點方法和Canny方法[14]。 第4章 圖形用戶界面 4.1 圖形用戶界面簡介 用戶界面是指:實現(xiàn)人與機器(或程序)之間交互作用的工具和方法。如鍵盤、鼠標等都可成為與計算機交換信息的接口。 圖形用戶界面GUI(全稱Graphical User Interfaces )則是由窗口、光標、按鍵、菜單、文字說明等對象構成的一個用戶界面,

49、用戶圖形界面(GUI)是程序的圖形化界面。 GUI可以使用戶定制用與MATLAB的交互方式。把圖形界面加到MATLAB 的函數(shù)和M文件中。GUI可以在MATLAB 中生成非常有效的工具和應用程序,或是建立演示工作的交互式界面。 創(chuàng)建MATLAB 用戶圖形界面必須有三個基本元素: (1)組件:在matlab GUI 中的每一個項目如按鈕、標簽、編輯框等都是一個圖形化組件。組件又可分為三類:圖形化控件(按鈕,編輯框,列表,滾動條等)、靜態(tài)元素(窗口和文本字符串)、菜單和坐標系。圖形化控件和靜態(tài)元素由函數(shù)uicontrol創(chuàng)建,菜單由函數(shù)uimenu和uicontextmenu創(chuàng)建,坐標系經常

50、用于顯示圖形化數(shù)據(jù),由函數(shù)axes創(chuàng)建。 (2)圖象窗口(Figure):GUI的每一個組件都必須安排在圖象窗口中,可以用函figure來創(chuàng)建空圖象窗口,空圖象窗口經常用于放置各種類型的組件。 (3)回應:當用戶用鼠標單擊或用鍵盤鍵入一些信息,那么程序就要有相應的執(zhí)行動作。鼠標單擊或鍵入信息是一個事件,如果matlab程序運行相應的函數(shù),那么matlab函數(shù)肯定會有所反應。例如,如果用戶單擊一按鈕,這個事件必然引起相應的matlab語句執(zhí)行。這些相應的語句被稱為回應,在執(zhí)行GUI的單個圖形組件時,必須有一個回應。 4.2 MATLAB 常用圖像操作 圖像的讀寫與顯示操作: imrea

51、d( )讀取圖像; imwrite( )輸出圖像; imshow( ), image( )把圖像顯示于屏幕; imcomplement() 對圖像取反; imcrop( )對圖像進行裁剪; imresize( )函數(shù)實現(xiàn)對圖像的插值縮放; imrotate( )實現(xiàn)圖像轉用; imfeature功能:計算圖像區(qū)域的特征尺寸; imfinfo功能:返回圖形文件信息; imhist功能:顯示圖像數(shù)據(jù)的柱狀圖; immovie功能:創(chuàng)建多幀索引圖的電影動畫; impixel功能:確定像素顏色值; figure:強制生成一個新的繪圖窗口; medfilt2功能:進行二維中值過

52、濾; montage功能:在矩形框中同時顯示多幅圖像; nlfilter功能:進行邊沿操作; pixval功能:顯示圖像像素信息; truesize功能:調整圖像顯示尺寸; zoom功能:縮放圖像; isbw功能:判斷是否為二進制圖像; isgray功能:判斷是否為灰度圖像; isrgb功能:判讀是否為RGB真彩圖像; dither( )通過顏色抖動,把真彩圖像轉換成索引圖像或灰度圖象轉換成二值圖像 gray2ind( ) 將灰度圖像(或二值圖像)轉換成索引圖像 grayslice( ) 通過設定的閾值將灰度圖象轉換成索引圖像 im2bw( ) 通過設定亮度閾值將灰度、

53、真彩、索引圖象轉換成二值圖像 ind2gray( ) 將索引圖象轉換成灰度圖象 ind2rgb( ) 將索引圖象轉換成真彩色圖像 mat2gray( ) 將一個數(shù)據(jù)矩陣轉換成一幅灰度圖象 rgb2gray( ) 將真彩轉換成灰度圖象 rgb2ind( ) 將真彩轉換成索引圖象 4.3 GUI的創(chuàng)建 打開MATLAB,點擊File,然后New,再點擊GUI,彈出的對話框選擇Create New GUI即可創(chuàng)建一個用戶界面圖形。 菜單:在每一個窗口系統(tǒng)中使用菜單讓用戶選擇命令和選項。通常在顯示屏或窗口的頂部有一菜單條。移動鼠標指針到菜單標志上按下鼠標按鍵,頂層菜單就被選中,以列

54、菜單項就從菜單標志拉下來。這種款式菜單就叫下拉式菜單。一個菜單項還可以有自己的菜單項列表作為子菜單。子菜單項在子菜單的右邊顯示小三角或箭頭以表示菜單還有更多的子菜單項可供選擇。子菜單可以嵌套,但層次的數(shù)目受到窗口系統(tǒng)及有用資源的限制。 建立菜單和子菜單:我們采用函數(shù)uimenu建立菜單項 》Hm_1=uimenu(hx_parent,’propertyName’,propertyValue…) 其中Hm_1是由uimenu生成的菜單項的句柄。通過設定uimenu的屬性值就可以定義菜單特性。Uimenu對象中最重要的屬性是‘lable’和‘callback’。‘lable’屬性值是菜單條和

55、下拉菜單項上的文本字符串,以確認菜單項。‘callback’屬性值是MATLAB字符串。 控制框:系統(tǒng)窗口設置控制框,讓用戶進行某種操作或設置選項或屬性??刂瓶蚴菆D形對像,如圖標、文本框和滾動條。它和菜單一起使用以建立用戶圖形界面稱之為窗口系統(tǒng)和計算機窗口管理器。 MATLAB控制框又稱uicontrol,它是圖形對象,可以放置在MATLAB的圖形窗中的任何位置并用鼠標激活,MATLAB的uicontrol包括按鈕、滑標、文本框及彈出式菜單。 Uicontrol是由函數(shù)uicontrol生成的,常用句法: 》Hc_1=uicontrol(Hf_fig,’PropertyName’,Pr

56、opertyVaule…)通過設定不同的屬性值定義uicontrol的屬性。 建立不同的控制框:matlab共有八種不同的類型的或樣式的控制框,他們均由uicontrol建立,屬性‘style’決定了所建立的控制框的類型?!甤allback’屬性值是當控制框激活時,傳給eval在命令窗口空間執(zhí)行的matlab的字符串。 下面介紹八種uicontrol[15]: (1)按鍵鈕:又稱命令按鈕或按鈕,是小的長方形屏幕對象,常常在對象本身標有文本。將鼠標指針移動至對象,來選擇按鍵鈕uicontrol,單擊鼠標按鈕,執(zhí)行由回調字符串所定義的動作。按鍵鈕的‘style’屬性值是‘pushbutton

57、’.按鍵鈕是典型的用于執(zhí)行一個動作而不是改變狀態(tài)或設定屬性。 (2)無線按鈕:又稱選擇按鈕或切換按鈕,他由一個標志和標志文本的左端一個小圓圈或小菱形形成。當選擇時,圓圈被填充,且‘value’屬性值為1;若未被選擇時,‘value’的屬性值為0。無線按鈕的‘style’屬性值為‘radiobutton’。無線按鈕典型的用在一組互斥的選項中選擇一項。 (3) 檢查框:又稱切換按鈕,它由具有標志并在標志的左邊的一個小方框組成。激活時uicontrol在檢查和清除狀態(tài)之間切換。在檢查狀態(tài)時,根據(jù)平臺的不同,方框被填充,或在框內含x,‘value’的屬性值為1 ,若為清除狀態(tài),則方框為空,‘val

58、ue’的屬性值為0。檢查框的‘style’屬性為‘checkbox’。檢查框典型的用于表明選項的狀態(tài)或屬性。通常檢查框是獨立的對象,如需要檢查框可以與無線按鈕交換使用。 (4) 靜態(tài)文本框:顯示一個文本字符串的uicontrol,該字符串是由‘string’屬性值所確定的。靜態(tài)文本框的‘style’屬性值為‘text’。靜態(tài)文本框典型的用于顯示標志、用戶信息及當前值。靜態(tài)文本框之所以稱之為靜態(tài),是因為用戶不能動態(tài)的修改所顯示的文本,文本只能通過改變‘string’屬性來更改。 (5)可編輯文本框:可編輯文本框允許用戶動態(tài)的編輯或重新安排文本串。就像是使用文本編輯器或文字處理器一樣。在‘st

59、ring’屬性中有該屬性??删庉嬑谋究虻膗icontrol的‘style’屬性值為‘edit’。典型的用在讓用戶輸入文本串或特定值。 (6)滑標:或稱滾動條包括三個獨立的部分,分別是滾動槽或長方形區(qū)域,代表有效對象值范圍;滾動槽內的指示器,代表滑標當前值;以及在槽的兩端的箭頭?;瑯说摹畇tyle’的屬性值為‘slider‘?;瑯说湫偷挠糜趶膸讉€值域范圍內選定一個?;瑯酥涤腥N方式設定,方法一:鼠標指針指向指示器,移動指示器。拖動鼠標是,要按住鼠標按鈕,當指示器位于期望位置后,松開鼠標。方法二:當指針處于槽中但在指示器的一側時,單擊鼠標按鈕,指示器按該側方向移動距離約為整個值域范圍的10%;方

60、法三:在滑標無論哪端點擊鼠標箭頭,指示器沿著箭頭的方向移動大約為滑標范圍的1%,滑標通常與所用文本uicontrol對象一起顯示標志,當前滑標值及值域范圍。 (7)彈出式菜單:典型的用于向用戶提出互斥的一系列選項清單,讓用戶選擇。彈出式菜單不受菜單條的限制,可位于圖形窗口的任何位置,‘style‘屬性是’popupmenu‘。當關閉時彈出式菜單以矩形或按鈕的形式出現(xiàn),按鈕上含有當前選擇的標志,在標識的右側有一個向下的箭頭或凸起的小方塊來表明uicontrol對象是一個彈出式菜單,當指針處在彈出式uicontrol之上并按下鼠標時,出現(xiàn)其它選項。移動指針到不同的選項,松開鼠標就關閉彈出式菜單,

61、顯示新的選項。 (8)框架:框架uicontrol對象僅是帶色彩的矩形區(qū)域。框架提供了視覺的分隔性??蚣艿湫偷挠糜诮M成無線按鈕或其他uicontrol對象。在其他對象放入框架之前,框架應事先定義。否則,框架可能覆蓋控制框使他們不可見。 4.4 GUI的應用 編程和回調的考慮,在命令行通過輸入uimenu和uicontrol來建立效率不高,腳本或函數(shù)M文件使用更為簡便,假定想實現(xiàn)一個M文件,首先確定是否要編寫腳本或函數(shù)文件。 4.4.1 腳本與函數(shù) 腳本文件似乎成了當然的選擇。在腳本中,所有的命令都在工作窗口執(zhí)行,因此隨時可以隨時使用所有的MATLAB函數(shù)和對象。將信息傳給回調函數(shù)沒有

62、任何困難。在這里有幾點權衡,首先,當所有的變量都可以利用時,工作空間充斥了變量名和變量值,即使它們不再有用。其次,如果用戶使用clear命令,重要的對象句柄就可能丟失。另一個缺點是:用腳本文件定義回調字符串可能變得十分復雜。另一個問題是,腳本文件比函數(shù)文件運行的要慢,腳本文件在第一次運行時要編譯。最后一點,腳本文件沒有函數(shù)文件靈活。函數(shù)可以接受輸入?yún)⒘坎⒎祷刂?。因此,函?shù)可作為其他函數(shù)的參變量。 獨立的回調函數(shù),建立GUI函數(shù)的一個有效地方法是編寫獨立的回調函數(shù),專門執(zhí)行一個或者多個回調。函數(shù)使用的對象句柄和其他的變量可以作為參量傳遞,必要時回調函數(shù)可返回值。 4.4.2 遞歸函數(shù)調用

63、利用單獨的M文件并遞歸調用該文件,既可以避免多個M文件的復雜性,又可以利用函數(shù)的優(yōu)點。使用switches或if elseif 語句,可將回到函數(shù)裝入調用函數(shù)內,通常這樣一種調用的結構為function guifunc(switch)其中switch確定為執(zhí)行那個函數(shù)開關的參量,它可以是字符串,‘startup’,‘close’,‘seccolor’,也可以是代碼或數(shù)字。 全局變量global,可用在函數(shù)中,使某些變量對GUI 函數(shù)的所有部分都可用,全局變量是在函數(shù)的公共區(qū)說明,因此整個函數(shù)以及對函數(shù)的遞歸調用都可以利用全局變量。 4.4.3 調試GUI M文件 回調字符串在命令窗口工作

64、空間中計算并執(zhí)行的。這個情況對編寫和調用GUI函數(shù)和腳本文件有著隱含的意義,回調字符串可以很復雜,尤其是在腳本文件中,這為句法錯誤提供了很多機會,記錄單引號、逗號、括號是令人頭痛的事。如果出現(xiàn)了句法錯誤,MATLAB給出提示;只要對象的‘callback’屬性值是一個真正的文本串,MATLAB就認可了,只有當對象被激活并將回調字符串傳給eval時,才檢查回調字符串內部的句法錯誤。 這樣讓用戶定義回調字符串,它涉及未曾定義過的對象句柄和變量,這是編寫互相參照的程序更容易。但是每個回調函數(shù)必須分別測試,保證回調字符串是合法的MATLAB命令,并且回調字符串涉及的所有變量可在命令窗口工作空間中是可

65、利用的。將回調函數(shù)M文件一樣編程或像GUI函數(shù)本身內的開關一樣編程,就可以不運行整個GUI函數(shù)而對各個回調進行改變或測試。因此,回調字符串是在命令窗口工作空間中而不是在函數(shù)本身內計算,在函數(shù)和各回調函數(shù)之間傳遞數(shù)據(jù)就變得十分復雜。 第5章 基于MATLAB的圖像跟蹤算法 5.1 100幀視頻圖像的讀取 由于視頻是由100幀圖像通過連續(xù)播放從而達到視頻的效果的,所以要達到視頻放映的效果,應首先對100幀圖像序列進行順序讀取。100幀圖像存儲在MATLAB的默認路徑中,文件名為00000xxx.bmp。要達到讀取它們的目的,需要使用循環(huán)算法。算法由一個名為read_seqim(i)的函數(shù)實

66、現(xiàn),以下是函數(shù)的源程序: function I=read_seqim(i) if nargin==0 i=1;min=00000001; end name=num2str(i); if i<=9 min=strcat(0000000,name,.bmp); elseif i<=99 min=strcat(000000,name,.bmp); else min=strcat(00000,name,.bmp); end I=imread(min); 其中i為讀取圖像的序號,通過以上的函數(shù)可以很方便的實現(xiàn)對100幀圖像中任意一幀的讀取,從而為后面的處理提供方便。 5.2 圖像的閾值處理(圖像分割) 閾值(Threshold),也叫門限。閾值化(Thresholding),即按給定閾值進行圖像的二值化處理。閾值分割法可分為以下幾種: (1)簡單閾值分割法; (2)多閾值分割法; (3)最大類間方差法; (4)最佳閾值法。 許多情況,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!