數(shù)字圖像處理-Matlab圖像處理工具箱_第1頁
數(shù)字圖像處理-Matlab圖像處理工具箱_第2頁
數(shù)字圖像處理-Matlab圖像處理工具箱_第3頁
數(shù)字圖像處理-Matlab圖像處理工具箱_第4頁
數(shù)字圖像處理-Matlab圖像處理工具箱_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Matlab圖像處理工具箱一、Matlab簡介Matlab是MatrixLaboratory的縮寫,是當今很流行的科學計算軟件。信息技術、計算機技術發(fā)展到今天,科學計算在各個領域得到了廣泛的應用,在諸如控制論、時間序列分析、系統(tǒng)仿真、圖像信號處理等方面產(chǎn)生了大量的矩陣及其他計算問題,,Matlab軟件適時推出,為人們提供了一個方便的數(shù)值計算平臺。Matlab軟件主要由主包、Simulink和工具箱3部分組成。1.1Matlab主包(1)Matlab語言Matlab語言是一種基于矩陣/數(shù)組的高級語言,它具有流程控制語句、函數(shù)、數(shù)據(jù)結構、輸入輸出,以及面向對象的程序設計特性。(2)Matlab工作環(huán)境Maltlab工作環(huán)境集成了許多工具和程序,用戶用工作環(huán)境中提供的功能完成他們的工作。(3)句柄圖形句柄圖形是Matlab的圖形系統(tǒng),它包括一些高級命令,用于實現(xiàn)二維和三維數(shù)據(jù)可視化、圖像處理、動畫等功能;還有一些低級命令,用來定制圖形的顯示,以及建立Matlab應用程序的圖形用戶界面。(4)Matlab數(shù)學函數(shù)庫Matlab數(shù)學函數(shù)庫是數(shù)學運算的一個巨大集合,該函數(shù)庫既包含了各類簡單函數(shù),也包含了矩陣轉置、特征值、貝塞爾函數(shù)、快速傅里葉變換等復雜函數(shù)。(5)Matlab應用程序接口(API)Matlab應用程序接口是一個Matlab語言向C和Fortran等其他高級語言進行交互的庫,包括讀寫Matlab數(shù)據(jù)文件(MAT文件)。1.2Simulink

Simulink是用于動態(tài)系統(tǒng)仿真的交互式系統(tǒng)。Simulink允許用戶在屏幕上繪制框圖模擬一個系統(tǒng),并能夠動態(tài)地控制該系統(tǒng)。Simulink采用鼠標驅動方式,能夠處理線性、非線性、連續(xù)、離散、多變量以及多級系統(tǒng)。此外,Simulink還為用戶提供了SimulinkExtensions(擴展)和Blocksets3(模塊集)2個附加項。1.3Matlab工具箱

Matlab工具箱是Matlab用來解決各個領域特定問題的函數(shù)庫,它是開放式的,可以應用,也可以根據(jù)需要進行擴展。Matlab提供的工具箱為用戶提供了豐富而實用的資源,工具箱的內容非常廣泛,涵蓋了科學研究的很多門類。目前,已有涉及數(shù)學、控制、通信、信號處理、圖像處理、經(jīng)濟、地理等多種學科的20多種Matlab工具箱投入應用。

二、Matlab常用的基本命令1.常用矩陣的生成

(1)全0矩陣

A=zeros(n):生成n×n的全0矩陣。A=zeros(m,n):生成m×n的全0矩陣。A=zeros(a1,a2,a3,…):生成a1×a2×a3×…的全0矩陣。A=zeros(size(B)):生成與矩陣B大小相同的全0矩陣。(2)全1矩陣A=ones(n):生成n×n的全1矩陣。A=ones(m,n):生成m×n的全1矩陣。A=ones([m,n]):生成m×n的全1矩陣。A=ones(a1,a2,a3,…):生成a1×a2×a3×…的全1矩陣。A=onse(size(B)):生成與矩陣B大小相同的全1矩陣。(3)單位矩陣

A=eye(n):生成n×n的單位矩陣。A=eye(m,n):生成m×n的單位矩陣。A=eye([m,n]):生成m×n的單位矩陣。A=eye(size(B)):生成與矩陣B大小相同的單位矩陣。

(4)均勻分布的隨機矩陣A=rand(n):生成n×n的隨機矩陣。A=rand(m,n):生成m×n的隨機矩陣。A=rand([m,n]):生成m×n的隨機矩陣。A=rand(a1,a2,a3,…):生成a1×a2×a3×…的隨機矩陣。A=rand(size(B)):生成與矩陣B大小相同的隨機矩陣。(5)正態(tài)分布的隨機矩陣A=randn(n):生成n×n的隨機矩陣。A=randn(m,n):生成m×n的隨機矩陣。A=randn([m,n]):生成m×n的隨機矩陣。A=randn(a1,a2,a3,…):生成a1×a2×a3×…的隨機矩陣。A=randn(size(B)):生成與矩陣B大小相同的隨機矩陣。2.簡單矩陣的生成在Matlab中,可以采用多種不同的方式生成矩陣。(1)直接輸入矩陣元素對于較小的簡單矩陣,從鍵盤上直接輸入矩陣是最常用的數(shù)值矩陣創(chuàng)建方法。需要遵循以下幾個基本原則。①矩陣每行的元素必須用空格或逗號分開;②在矩陣中,采用分號或回車表明每行的結束;③整個輸入矩陣必須包含在方括號中。

(2)從外部數(shù)據(jù)文件調入矩陣元素用Matlab生成的矩陣存儲成二進制文件或包含數(shù)值數(shù)據(jù)的文本文件可以生成矩陣。文本文件中,數(shù)據(jù)必須排成一個數(shù)據(jù)表,數(shù)據(jù)之間用空格分隔,文件的每行包含矩陣的一行,并且每行的元素個數(shù)必須相等。(3)利用用戶文件創(chuàng)建的M文件矩陣用戶可以使用M文件生成自己的矩陣。M文件是一種包含Matlab代碼的文本文件,這種文件的擴展名為.m,所包含的內容就是把在Matlab的命令行上輸入的矩陣生成命令存入一個文件。3.向量的生成Matlab可以采用多種不同的方式生成向量。(1)利用冒號“:”生成向量冒號“:”是Matlab中常用算子之一,不僅可以作數(shù)組下標,對數(shù)組元素進行引用、增加和刪除,還可以用來生成向量。

冒號“:”使用下列格式生成均勻等分向量:x=j:k如果j<k,則生成向量x=[j,j+1,j+2,…,k];如果j>k,則生成空向量x=[];x=j:i:k如果i>0且j<k或i<0且j>k,則生成向量x=[j,j+i,j+2i,…,k];如果i>0且j>k或i<0且j<k,則生成空向量x=[];三、圖像處理工具箱簡介

Matlab是一種基于向量(數(shù)組)而不是標量的高級程序語言,因而Matlab從本質上就提供了對圖像的支持。從圖像的數(shù)字化過程可以知道,數(shù)字圖像實際上就是一組有序離散的數(shù)據(jù),使用Matlab可以對這些離散數(shù)據(jù)形成的矩陣進行一次性的處理。1.圖像采集與導出

圖像采集工具箱提供了大量的函數(shù)用于采集圖像和視頻信號。該工具箱支持的硬件設備包括工業(yè)標準的PC圖像采集卡和相應的設備。Matlab的ImageProcessingToolbox支持多種圖像數(shù)據(jù)格式,這些圖像文件格式主要有JPEG、TIFF、HDF、HDF.EOS和DICOM。同時,Matlab中還可以導入/導出AVI格式的數(shù)據(jù)文件,支持其他工業(yè)標準的數(shù)據(jù)文件格式。2.圖像分析與增強

Matlab的ImageProcessingToolbox提供了大量的用于圖像處理的函數(shù),利用這些函數(shù),可以分析圖像數(shù)據(jù),獲取圖像細節(jié)信息,并且設計相應的濾波算子,濾除圖像數(shù)據(jù)所包含的噪聲。圖像處理工具箱還提供了Radon變換(來重構圖像,而離散余弦變換(JPEG圖像壓縮核心算法)可以作為實現(xiàn)新的壓縮算法的核心。在圖像處理工具箱中還包含了眾多數(shù)學形態(tài)學函數(shù),這些函數(shù)可以用于處理灰度圖像或者二值圖像,可以快速實現(xiàn)邊緣檢測、圖像去噪、骨架提取和粒度測定等算法。此外還包含一些專用的數(shù)學形態(tài)學函數(shù),例如填充處理、峰值檢測、分水嶺分割等,且所有的數(shù)學形態(tài)學函數(shù)都可以處理多維圖像數(shù)據(jù)。3.圖像處理

圖像處理工具箱提供了很多高層次的圖像處理函數(shù),這些函數(shù)包括排列、變換和銳化等操作。同樣,利用這些函數(shù)能夠完成裁減圖像和尺寸變換等操作。4.數(shù)據(jù)可視化

Matlab本身就是功能強大的數(shù)據(jù)可視化工具,可以通過各種形式顯示分析數(shù)據(jù),例如灰度直方圖、等高線、蒙太奇混合、像素分析、圖層變換及材質貼圖等。利用可視化的圖形,不僅能夠評估圖形圖像的特性,還能夠分析圖像中的色彩分布情況。5.算法開發(fā)與發(fā)布

Matlab允許用戶自己開發(fā)算法,并且將其封裝起來,不斷擴展到工具箱函數(shù)中。此外,也可以在支持Matlab的平臺上共享用戶所開發(fā)的算法,并將算法同已有的C代碼結合在一起,完成算法的發(fā)布工作。除此之外,Matlab還可以將用戶開發(fā)的GUI、圖像處理算法等應用程序發(fā)布為C或者C++源代碼,進而編譯生產(chǎn)COM組件或者Java接口,將Matlab開發(fā)的算法同其他開發(fā)工具結合起來。四、Matlab中的圖像類型及類型轉換1.圖像和圖像數(shù)據(jù)

Matlab中的數(shù)字圖像是由一個或多個矩陣表示的。這意味著Matlab強大的矩陣運算功能完全可以應用于圖像,那些適用于矩陣運算的語法對Matlab中的數(shù)字圖像同樣適用。在缺省的情況下,Matlab將圖像中的數(shù)據(jù)存儲為雙精度類型(double),即64bit浮點數(shù)。這種存儲方法的優(yōu)點在于,使用中不需要數(shù)據(jù)類型的轉換,因為幾乎所有的Matlab及其工具箱函數(shù)都可以使用double作為參數(shù)類型。然而對于圖像存儲來說,用64bit表示圖像數(shù)據(jù)會導致巨大的存儲量,所以Matlab還支持圖像數(shù)據(jù)的另一種類型無符號整型(uint8),即圖像矩陣中的每個數(shù)據(jù)占用1個字節(jié)。Matlab及工具箱中的大多數(shù)操作及函數(shù)(比如最基本的矩陣相加)都不支持uint8類型。uint8的優(yōu)勢僅在于節(jié)省存儲空間,在涉及運算時將其轉換成double型。2.圖像處理工具箱所支持的圖像類型

圖像處理工具箱支持4種圖像類型,它們是:真彩色圖像(RGBimages)索引色圖像(indeximages)灰度圖像(intensityimages)二值圖像(binaryimages)此外,Matlab還支持由多幀圖像組成的圖像序列。3.真彩色圖像

真彩色圖像用R、G、B3個分量表示1個像素的顏色,所以對1個尺寸為m×n的真彩色圖像來說,其數(shù)據(jù)結構就是一個m×n×3的多維數(shù)組。如果要讀取圖像中(100,50)處的像素值,可以查看三元組(100,50,1∶3).真彩色圖像可用雙精度存儲,此時亮度值的范圍是[0,1]。比較符合習慣的存儲方法是用無符號整型存儲,亮度值的范圍為[0,255]。圖1真彩色圖像的結構4.索引色圖像

Matlab中的索引色圖像包含2個結構,一個是調色板;另外一個是圖像數(shù)據(jù)矩陣。調色板是一個有3列和若干行的色彩映像矩陣,矩陣的每行都代表一種色彩,通過3個分別代表紅、綠、藍顏色強度的雙精度數(shù),形成一種特定的顏色。需要注意的是Matlab中的調色板的色彩強度是[0,1]中的浮點數(shù),0代表最暗,1代表最亮。圖2索引色圖像的結構5.灰度圖像

存儲灰度圖像只需要一個數(shù)據(jù)矩陣,數(shù)據(jù)類型可以是double,值域為[0,1],也可以是uint8,值域[0,255]。6.二值圖像與灰度圖像相同,二值圖像只需一個數(shù)據(jù)矩陣,每個像素只有2個灰度值。二值圖像可以采用uint8或double類型存儲,工具箱中以二值圖像作為返回結果的函數(shù)都使用uint8類型。圖4是一幅二值圖像的結構圖4二值圖像的結構7.圖像序列

圖像處理工具箱支持將多幀圖像連接成圖像序列。圖像序列是一個四維的數(shù)組,圖像幀的序號在圖像的長、寬、顏色深度之后構成第四維。比如一個包含了5幅400×300真彩色圖像的序列,其大小為400×300×5。要將分散的圖像合并成圖像序列可以使用Matlab的cat函數(shù),前提是各圖像的尺寸必須相同,如果是索引色圖像,調色板也必須是一樣的。

比如要將A1、A2、A3、A4、A5五幅圖像合并成一個圖像序列A,Matlab語句為A=cat(4,A1,A2,A3,A4,A5)也可以從圖像序列中抽出1幀,比如語句FRM3=MULTI(:、:、:、3)是將序列MULTI中的第3幀抽出來賦給矩陣FRM3。8.Matlab圖像類型轉換

工具箱中提供了許多圖像類型轉換的函數(shù),從這些函數(shù)的名稱就可以看出它們的功能。(1)dither函數(shù)

功能:圖像抖動。格式:X=dither(I1,map)bw=dither(I2)(2)gray2ind函數(shù)功能:將灰度圖像轉換成索引圖像。格式:[X,map]=gray2ind(I,n)

(3)grayslice函數(shù)功能:通過設定閾值將灰度圖像轉換成索引色圖像。格式:X=grayslice(I,n)X=grayslice(I,v)(4)imb2bw函數(shù)

功能:將灰度圖像、索引色圖像和真彩色圖像轉化成二值圖像。格式:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)(5)ind2gray函數(shù)功能:將索引圖像轉換成灰度圖像。格式:I=Ind2gray(X,map)(6)ind2rgb函數(shù)

功能:將索引色圖像轉換成真彩色圖像。格式:RGB=ind2rgb(X,map)(7)mat2gray函數(shù)

功能:將一個數(shù)據(jù)矩陣轉換成一幅灰度圖像。格式:I=mat2gray(A,[aminamax])I=mat2gray(A)(8)rgb2gray函數(shù)功能:將一幅真彩色圖像轉換成灰度圖像。格式:I=rgb2gray(RGB)newmap=rgb2gray(map)(9)rgb2ind函數(shù)功能:將真彩色圖像轉換成索引色圖像。格式:RGB=rgb2ind(X,map)

9.圖像文件的讀寫和查詢

Matlab為用戶提供了特殊的函數(shù),用于從圖像格式的文件中讀寫圖像數(shù)據(jù)。其中,讀取圖形文件格式的圖像需要用imread函數(shù),寫入一個圖形文件格式的圖像需要調用imwrite函數(shù);而獲取圖形文件格式的圖像的信息需要調用imfinfo\ind2rgb函數(shù),以Mat文件加載或保存矩陣數(shù)據(jù)用load\save函數(shù),顯示加載到Matlab中的圖像用image\imagesc。

(1)圖形圖像文件的讀取利用函數(shù)imread可以完成圖形圖像文件的讀取操作,其語法如下:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[…]=imread(filename)[…]=imread(filename,idx)(只對TIF格式的文件)[…]=imread(filename,ref)(只對HDF格式的文件)

imread函數(shù)可以從任何Matlab支持的圖形文件中以特定的位寬讀取圖像。通常情況下,讀取的大多數(shù)圖像均為8bit。當這些圖像加載到內存中時,Matlab就將其存儲在類uint8中。此外,Matlab還支持16bit的PNG和TIF圖像,所以,當讀取這類文件時,Matlab就將其存儲在類uint16中。需要注意的是,對于索引圖像來說,即使圖像陣列的本身為類uint8或類uint16,imread函數(shù)仍然將顏色映像表讀取并存儲到一個雙精度的浮點類型的陣列中。(2)圖形圖像文件的寫入(保存)

利用imwrite函數(shù)可以完成圖形圖像文件的讀取操作,其語法如下imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(...,filename)imwrite(...,parameter,value)當利用imwrite函數(shù)保存圖像時,Matlab缺省的保存方式就是將其簡化到uint8的數(shù)據(jù)格式。在Matlab中使用的許多圖像都是8bit,并且大多數(shù)的圖像文件并不需要雙精度的浮點數(shù)據(jù)。與讀取圖形圖像文件類似,Matlab就將其存儲在16bit的數(shù)據(jù)中。(3)圖形圖像文件信息的查詢

Matlab提供了imfinfo函數(shù)用于從圖像文件中查詢其信息。所獲取的信息依文件類型的不同而不同。但是不管哪種類型的圖像文件,至少包含下面的內容。文件名。(如果該文件不在當前路徑下,還包含該文件的完整路徑。)文件格式;文件格式的版本號;文件修改時間;文件的字節(jié)大小;圖像的寬度(像素);圖像的長度(像素);每個像素的位數(shù);圖像類型。即該圖像是RGB(真彩)

溫馨提示

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

評論

0/150

提交評論