版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章MATLAB圖像的顯示與運(yùn)算
2.1數(shù)字圖像 2.2MATLAB圖像文件格式2.3圖像的讀寫2.4圖像的顯示2.5特殊圖像顯示技術(shù)2.6圖像類型轉(zhuǎn)換2.7圖像的直方圖2.8圖像的點(diǎn)運(yùn)算2.9圖像的代數(shù)運(yùn)算習(xí)題
2.1數(shù)字圖像
2.1.1圖像數(shù)字化當(dāng)用數(shù)學(xué)方法描述一幅圖像時(shí),圖像可以表達(dá)成二維連續(xù)函數(shù)的形式。例如,一幅圖像可以被看成是空間各個(gè)坐標(biāo)點(diǎn)上光強(qiáng)度的集合。其最普遍的數(shù)學(xué)表達(dá)式為
(2.1)其中,x、y、z是空間坐標(biāo),
是波長(zhǎng),t是時(shí)間,I是圖像點(diǎn)的光強(qiáng)度。圖2.1圖像數(shù)字化采樣就是把在時(shí)間上和空間上連續(xù)的圖像變換成為離散的采樣點(diǎn)(即像素)集的一種操作。由于圖像是一種呈二維分布的信息,為了對(duì)它完成采樣操作,就需要先將二維信號(hào)變?yōu)橐痪S信號(hào),再對(duì)一維信號(hào)進(jìn)行采樣。具體做法是:先沿垂直方向,以一定間隔由上到下順序地沿水平方向按直線掃描的方式,取出各水平行上的灰度值形成一維掃描線,之后再對(duì)該一維掃描線信號(hào)按一定間隔采樣得到離散信號(hào)。也就是先沿垂直方向采樣,再沿水平方向采樣以完成采樣操作。對(duì)于運(yùn)動(dòng)圖像(時(shí)間域的連續(xù)圖像),還需先在時(shí)間軸上采樣,即先在時(shí)間軸上采樣,再沿畫面垂直方向采樣,最后再沿畫面水平方向進(jìn)行采樣,從而完成采樣操作。若采樣結(jié)果每行(橫向)像素為M個(gè),每列(縱向)像素為N個(gè),則整幅圖像大小為M×N個(gè)像素。在進(jìn)行采樣時(shí),采樣間隔的選取是一個(gè)非常重要的問題,它決定了采樣后的圖像真實(shí)地反映原圖像的程度。或者說,采樣間隔大小的選取要根據(jù)原圖像中包含的濃淡變化的程度來確定。一般來說,圖像中細(xì)節(jié)越多,則采樣間隔越小。根據(jù)一維采樣定理,若一維信號(hào)g(t)的最大頻率為ω,且以T≤1/2ω為間隔進(jìn)行采樣后,則根據(jù)采樣結(jié)果g(iT),i?=?…,-1,0,1,…能完全恢復(fù)g(t)。經(jīng)過采樣,模擬圖像已在時(shí)間、空間上離散化為像素。但采樣結(jié)果所得的像素值(濃淡值或灰度值)仍是連續(xù)量。把采樣后所得的這些連續(xù)量表示的像素值離散化為整數(shù)值的操作叫量化。即若連續(xù)濃淡(灰度)值用I表示,則對(duì)于滿足I0<I<I0?+?1的I值都量化為整數(shù)值I0,I0稱為像素的灰度值。I與I0的差稱為量化誤差。量化后灰度值存儲(chǔ)的位數(shù)(Bit)稱為圖像的灰度級(jí)。一幅數(shù)字化后的圖像,其總數(shù)據(jù)量是:每行像素?cái)?shù)(M)?×?每列像素?cái)?shù)(N)?×?灰度量所占用的位數(shù)(Bit)。2.1.2MATLAB中的數(shù)字圖像
MATLAB中圖像的基本數(shù)據(jù)結(jié)構(gòu)是矩陣,圖像矩陣的元素值為圖像的強(qiáng)度值或者顏色值。MATLAB中的圖像大多數(shù)為二維矩陣,矩陣中的每一個(gè)元素對(duì)應(yīng)圖像中的單個(gè)像素點(diǎn)。如分辨率為200×300的灰度圖像在MATLAB中的對(duì)應(yīng)用200×300的矩陣存儲(chǔ)而彩色圖像則需要用200×300×3的三維矩陣表示,其中第三維的第一個(gè)分量代表紅色,第二個(gè)分量代表綠色,第三個(gè)分量代表藍(lán)色。MATLAB中灰度圖像的矩陣表示法為f?(x,y)?=(2.3)圖像的坐標(biāo)是描述圖像中點(diǎn)的位置的方法。MATLAB中最為常用的方法是利用像素點(diǎn)坐標(biāo)來指定圖像中點(diǎn)的位置。在像素點(diǎn)坐標(biāo)系中,圖像被看做離散元素網(wǎng)格,如圖2.2所示,從上向下、從左到右編號(hào)。像素點(diǎn)坐標(biāo)系中的坐標(biāo)值為整數(shù),且大于1,小于矩陣的行數(shù)和列數(shù)。行從上向下遞增,列從左向右遞增。圖2.2圖像的像素點(diǎn)坐標(biāo)系像素點(diǎn)坐標(biāo)系與MATLAB中矩陣索引之間存在著一一對(duì)應(yīng)的關(guān)系。這種對(duì)應(yīng)關(guān)系使得圖像存儲(chǔ)矩陣和圖像顯示之間的關(guān)系易于理解。如位于第五行、第二列的像素在矩陣中的存儲(chǔ)位置索引為(5,2),且可以用此索引獲取該像素點(diǎn)的灰度值。在圖像的空間坐標(biāo)系中,任意像素點(diǎn)被看做一個(gè)離散的單元,由對(duì)應(yīng)的坐標(biāo)對(duì)表示。從這個(gè)角度看,諸如(5.3,2.2)的位置就是沒有意義了。也可以將像素看成一個(gè)方格,從這個(gè)角度看,諸如(5.3,2.2)的位置就是有意義的,且與(5,2)的意義不同。圖像的空間坐標(biāo)系與平面的直角坐標(biāo)系類似,可以用x和y來表示。但如圖2.3所示,不同的是在圖像的空間坐標(biāo)系中y坐標(biāo)是從上向下遞增的。圖2.3圖像的空間坐標(biāo)系2.2MATLAB圖像文件格式
MATLAB支持以下幾種圖像文件格式(可以調(diào)用imformats函數(shù)查詢MATLAB支持的所有圖像文件格式),具體如表2.1所示。表2.1MATLAB支持的圖像文件格式續(xù)表2.3圖?像?的?讀?寫2.3.1文件信息查詢?cè)贛ATLAB中,要查詢一個(gè)圖像文件的信息,只要用imfinfo指令加上文件名及其完整路徑名即可。函數(shù)調(diào)用格式如下:
info=imfinfo(filename,fmt)
info=imfinfo(filename)
info=imfinfo(URL,…)參數(shù)fmt對(duì)應(yīng)于圖像處理工具箱支持的所有圖像文件格式,參見表2.1。第三種調(diào)用方式為對(duì)網(wǎng)絡(luò)圖像的支持形式,如“http://”等。文件的具體信息與文件格式緊密相關(guān),但不管哪種格式,imfinfo函數(shù)返回的前九項(xiàng)內(nèi)容如表2.2所示。表2.2文件的具體信息域說明例如,查詢MATLAB安裝路徑下,\R2008a\toolbox\images\imdemos目錄中的圖像文件concordaerial.png的信息,可以用如下的調(diào)用格式:
Width:3060Height:2036BitDepth:24ColorType:'truecolor'FormatSignature:[13780787113102610]Colormap:[]Histogram:[]InterlaceType:'none'Transparency:'none'SimpleTransparencyData:[]BackgroundColor:[]RenderingIntent:[]Chromaticities:[]Gamma:[]XResolution:[]YResolution:[]ResolutionUnit:[]XOffset:[]YOffset:[]OffsetUnit:[]SignificantBits:[]ImageModTime:'12Feb200117:16:53+0000'Title:[]Author:[]Description:'TruecoloraerialphotographcourtesyofmPower3/Emerge.'Copyright:[]CreationTime:[]Software:[]Disclaimer:[]Warning:[]Source:[]Comment:[]OtherText:[]2.3.2圖像文件讀取
MATLAB用imread函數(shù)從圖像文件中讀取數(shù)據(jù)。imread的常見調(diào)用格式如下:A=imread(filename,fmt)
imread函數(shù)的作用是將文件名為filename且擴(kuò)展名為fmt圖像文件中的數(shù)據(jù)讀到矩陣A中。如果filename所指的為灰度級(jí)圖像,則A為一個(gè)二維矩陣;如果filename所指的為RGB圖像,則A為一個(gè)m?×?n?×?3的三維矩陣。filename表示的文件名必須在MATLAB的搜索路徑范圍內(nèi),否則需指出其完整路徑。
imread的其它幾種重要的調(diào)用格式如下:
[X,map]=imread(filename,fmt) %讀入圖像filename并將與它相關(guān)的圖像色彩信
%息寫入map
[…]=imread(filename)
[…]=imread(URL,…)
%從URL處讀取圖像,URL
必須包含協(xié)議(即"http://")
[…]=imread(…,idx)
%僅適用于cur、ico和tiff格式的圖像
[…]=imread(…,‘frames’,idx)
%僅適用于gif格式的圖像
[…]=imread(…,ref)
%僅適用于hdf格式的圖像
[…]=imread(…,‘BackgroundColor’,BG)
%僅適用于
png格式的圖像
[…]=imread(…,‘PixelRegion’,{ROWS,COLS})%僅適用于tiff格式的圖像
[A,map,alpha]=imread(…)
%僅適用于ico、cur和
png格式的圖像上面一些參數(shù)的含義如下:“idx”是指讀取圖像格式為cur、ico、tiff、gif的文件中第idx個(gè)圖像,默認(rèn)值為1?!?frame,idx'”是指讀取gif文件中的圖像幀,“idx”值可以是數(shù)量、向量或'all'?!皉ef”是一個(gè)整數(shù)值,默認(rèn)值為1,用于讀取多幅hdf圖像的第ref幅圖像?!?BackgroundColor,BG'”為背景色?!?PixelRegion',{ROWS,COLS}”為讀取tif文件中由ROWS和COLS包含的標(biāo)簽所組成的子圖像。alpha是透明度。大多數(shù)圖像的灰度級(jí)為8位或更多,當(dāng)把這些圖像數(shù)據(jù)加載到內(nèi)存中時(shí),MATLAB會(huì)根據(jù)不同的文件類型將其保存為不同的數(shù)據(jù)類型,具體如表2.3所示。表2.3文件讀入后的存儲(chǔ)格式2.3.3圖像文件寫入在MATLAB中可調(diào)用imwrite函數(shù)來存儲(chǔ)圖像文件,調(diào)用格式如下:
imwrite(A,filename,fmt)%將圖像A寫入圖像文件
filename
imwrite(X,map,filename,fmt)%將X和它的相關(guān)色彩信息
map寫入filenameimwrite(...,filename)
%將圖像寫入圖像文件filename,并推測(cè)可能的格
%式用來作為filename的擴(kuò)展名。擴(kuò)展名必須是
%fmt中一合法名imwrite(...,param1,val1,param2,val2,...)%不同的參數(shù)控制輸出文件的各種不同特征。
%參數(shù)要是當(dāng)前所支持的hdf、jpeg、tiff、png、
%pbm、pgm和ppm文件,具體的輸出特性參
%見MATLAB用戶手冊(cè)在MATLAB中,默認(rèn)的存儲(chǔ)類型是uint8。由于png和tiff格式支持16位的圖像,所以保存這類圖像時(shí),存儲(chǔ)類型就是uint16。2.3.4圖像文件格式轉(zhuǎn)換
MATLAB中,可以通過讀寫文件的方式改變圖像文件的存儲(chǔ)格式。方法是首先用函數(shù)imread讀取圖像文件,然后再用函數(shù)imwrite以適當(dāng)?shù)母袷奖4嫖募酝瓿蓤D像文件格式的轉(zhuǎn)換。例如,將png格式的文件轉(zhuǎn)換成bmp文件:
pngmap=imread('concordaerial.png');
imwrite(pngmap,'bmpmap.bmp','bmp');另外,可運(yùn)用cat指令將灰度圖像I轉(zhuǎn)換成RGB圖像。cat函數(shù)可以把一些單一的圖像合并成圖像序列。在圖像序列中每個(gè)圖像需有相同的大小,如果是索引圖像,色圖也要一致。2.4圖?像?的?顯?示圖像處理工具箱包含兩個(gè)圖像顯示函數(shù),分別為imshow和imtool。這兩個(gè)函數(shù)都在圖形句柄體系中工作,也就是說它們創(chuàng)建的句柄圖形圖像對(duì)象包含在figure圖像中的一個(gè)軸對(duì)象內(nèi)。imshow是工具箱中圖像顯示的基礎(chǔ)函數(shù)。可以調(diào)用imshow函數(shù)來顯示工具箱所支持的任意圖像,如二值、灰度、真彩或者索引圖像。函數(shù)imshow的調(diào)用方法有如下幾種:
imshow(I)
imshow(I,[lowhigh])
imshow(RGB)
imshow(BW)
imshow(X,map)
imshow(filename)
himage=imshow(...)
imshow(...,param1,val1,param2,val2,...)上述的調(diào)用方法的詳細(xì)使用方法將在以下小節(jié)進(jìn)行說明。另外,用戶可以調(diào)用iptsetpref函數(shù)修改工具箱參數(shù)以控制圖像的顯示效果,可以設(shè)定的參數(shù)如表2.4所示。表2.4iptsetpref函數(shù)參數(shù)和值
imtool函數(shù)是一個(gè)顯示圖像和執(zhí)行某些常用圖像處理任務(wù)的繼承工作環(huán)境。這個(gè)工具不僅提供了圖像imshow具有的處理功能,同時(shí)也提供了對(duì)圖像進(jìn)行導(dǎo)航顯示和瀏覽的功能,如scrollbar、像素區(qū)域工具、圖像信息工具、調(diào)整對(duì)比度工具等。函數(shù)imshow的調(diào)用方法有如下幾種:
imtool
imtool(I)
imtool(I,[lowhigh])imtool(RGB)imtool(BW)imtool(X,map)imtool(filename)hfigure=imtool(...)imtoolcloseallimtool(...,param1,val1,param2,val2,...)2.4.1二值圖像的顯示二值圖像是指每個(gè)像素點(diǎn)的值僅能為0或1,且灰度值僅取0或255的圖像。它一般用來描述文字或者圖形,其優(yōu)點(diǎn)是占用空間少;缺點(diǎn)是當(dāng)表示人物、風(fēng)景的圖像時(shí),二值圖像只能描述其輪廓,不能描述細(xì)節(jié),這時(shí)就要用更高的灰度級(jí)。二值圖像經(jīng)常作為圖像掩碼出現(xiàn)在數(shù)字圖像處理或圖像分割、二值化和抖動(dòng)的結(jié)果中。一些輸入/輸出設(shè)備,如激光打印機(jī)、傳真機(jī)、單色計(jì)算機(jī)顯示器等都可以處理二值圖像。對(duì)于普通圖像,可以先合并其所有可見圖層,然后確定某一閾值,將高于閾值的像素點(diǎn)轉(zhuǎn)為黑,低于閾值的像素點(diǎn)轉(zhuǎn)為白,即可將此圖像轉(zhuǎn)換成二值圖像。圖2.4中的左圖為一二值圖像,右圖給出了其某個(gè)局部的像素點(diǎn)值。圖2.4二值圖像結(jié)構(gòu)在MATLAB中,調(diào)用函數(shù)imshow顯示二值圖像的格式如下:
imshow(BW)
imshow(BW,map)其中,BW為待顯示的二值圖像數(shù)據(jù)矩陣,通過調(diào)用imread函數(shù)或其它方法獲得。色圖map為一個(gè)2?×?3的矩陣,每行矩陣為RGB顏色向量,第一行對(duì)應(yīng)二值圖像中“0”值的色彩,第二行對(duì)應(yīng)“1”值的色彩。另外,數(shù)據(jù)的邏輯性決定了可以用“~”操作符對(duì)二值圖像進(jìn)行色度反轉(zhuǎn)。在下面的例子中,首先顯示一個(gè)二值圖像,然后用“~”操作符反轉(zhuǎn)二值圖像色度的方法改變顏色,最后用色圖map將原圖中的黑色改變成紅色,白色改變成藍(lán)色。見圖2.5。具體的代碼如下:BW=imread('circles.png');%讀入圖像Imshow(BW);%顯示原始二值圖像figure(2)imshow(~BW);%反轉(zhuǎn)二值圖像并顯示figure(3)imshow(BW,[1,0,0;0,0,1]);%調(diào)整二值圖像的色圖并顯示圖2.5imshow函數(shù)顯示二值圖像2.4.2灰度圖像的顯示灰度圖像是每個(gè)像素只有一個(gè)采樣顏色的圖像,這類圖像通常顯示出從純黑色到純白色的任何過渡色,理論上,這個(gè)采樣顏色可以是任何顏色的不同深淺色,甚至可以是不同亮度上的不同顏色。灰度圖像與二值圖像不同,在計(jì)算機(jī)圖像領(lǐng)域,二值圖像只有純黑與純白兩種顏色,但是灰度圖像在黑色與白色之間還有許多級(jí)的顏色深度。在MATLAB中,一幅灰度圖像可用一個(gè)數(shù)據(jù)矩陣I表示,數(shù)據(jù)矩陣中的每個(gè)元素分別代表圖像中的像素,其元素值對(duì)應(yīng)像素點(diǎn)的灰度值。矩陣中的元素值可以是雙精度浮點(diǎn)型、8位(具有256灰度級(jí))或16位無符號(hào)整型(具有65536灰度級(jí))?;叶葓D一般不與色圖一起存儲(chǔ),MATLAB用一個(gè)預(yù)定義的色圖來顯示它。圖2.6給出了一個(gè)灰度圖像的結(jié)構(gòu)。圖2.6灰度圖像的結(jié)構(gòu)調(diào)用imshow函數(shù)顯示灰度圖像的格式如下:
imshow(I)
imshow(I,n)
imshow(I,[low,high])其中,I為待顯示的灰度圖像;n為整數(shù),缺省值為256,代表所要顯示圖像的灰度等級(jí)數(shù);[low,high]為圖像數(shù)據(jù)的值域。例如,用指定灰度范圍和灰度級(jí)的方法顯示一個(gè)灰度圖像,如圖2.7所示。具體的代碼如下:
g=imread('rice.png'); %讀入圖像
imshow(g,[100,200]); %在灰度范圍[100,200]內(nèi)顯示圖像
figure(2) imshow(g,20); %以灰度等級(jí)20顯示圖像圖2.7imshow函數(shù)顯示灰度圖像示例2.4.3索引圖像的顯示索引圖像是一種把像素值作為RGB色圖下標(biāo)的圖像。索引圖像可將像素值映射為色圖數(shù)值。通常將色圖與索引圖像存儲(chǔ)在一起,裝載圖像時(shí),色圖將和索引圖像一同被自動(dòng)裝載。索引模式和灰度模式比較類似,它的每個(gè)像素點(diǎn)也可以有256種顏色,但它可以為彩色。索引模式的圖像最多只能有256種顏色。當(dāng)圖像轉(zhuǎn)換成索引模式時(shí),系統(tǒng)會(huì)根據(jù)圖像上的顏色自動(dòng)歸納出能代表大多數(shù)的256種顏色,就像一張顏色表,然后用這256種顏色代替整個(gè)圖像上的顏色信息。
MATLAB中,索引圖像包括一個(gè)圖像矩陣X和一個(gè)色圖矩陣MAP。其中,X可以是無符號(hào)8位整型、無符號(hào)16位整型或者雙精度浮點(diǎn)型數(shù)據(jù);MAP是一個(gè)包含三列、若干行的陣列,其每一個(gè)元素的值均為[0,1]中的雙精度浮點(diǎn)數(shù)據(jù)。MAP矩陣的每一行分別表示紅、綠和藍(lán)的單色值。另外,圖像矩陣與色圖矩陣之間的關(guān)系取決于圖像矩陣的類型。如果圖像矩陣是雙精度型,則值“1”指向色圖MAP矩陣的第一行,值“2”指向第二行,以此類推;如果圖像矩陣是8位或者16位無符號(hào)整型,則由于存在偏移量,使得值“0”指向色圖MAP矩陣的第一行,值“1”指向第二行,以此類推。圖2.8給出的索引圖像結(jié)構(gòu)中圖像矩陣為雙精度類型的,從而值“5”指向色圖MAP矩陣的第五行。圖2.8索引圖像結(jié)構(gòu)調(diào)用imshow函數(shù)顯示索引圖像的格式如下:
imshow(X,MAP)其中,X為索引圖像的數(shù)據(jù)矩陣,MAP為色圖(也稱調(diào)色板)。以下代碼調(diào)用imshow函數(shù)顯示索引圖像,見圖2.9,然后設(shè)定圖像的色圖。
[X,Map]=imread('canoe.tif'); %讀取圖像
imshow(X); %顯示圖像數(shù)據(jù)矩陣X Colormap(Map); %設(shè)置圖像的色圖圖2.9索引圖像的顯示2.4.4真彩圖像的顯示在MATLAB中,一幅真彩圖像(RGB圖像)由一個(gè)RGB數(shù)組來描述。數(shù)組中第三維中的各分量分別定義了圖像中每一個(gè)像素的紅、綠、藍(lán)三種顏色值,而不使用Windows色圖。MATLAB的RGB數(shù)組可以是雙精度浮點(diǎn)型、8位或者16位無符號(hào)整型。在RGB雙精度型數(shù)組中,顏色采用彩色的RGB模型,每一種顏色用0和1之間的數(shù)值來表示。每一個(gè)像素的三個(gè)顏色值保存在數(shù)組的第三維中。圖2.10給出了雙精度型RGB圖像結(jié)構(gòu)。圖2.10RGB圖像結(jié)構(gòu)在MATLAB中調(diào)用imshow函數(shù)來顯示RGB圖像(結(jié)果見圖2.11),調(diào)用格式為
RGB=imread('peppers.png');
imshow(RGB);圖2.11RGB圖像的顯示2.5特殊圖像顯示技術(shù)
2.5.1同一窗口中顯示多幅圖像
subplot函數(shù)將圖形窗口figure劃分成多個(gè)顯示區(qū)域,具體調(diào)用方式為
subplot(m,n,p)上述調(diào)用方式將figure劃分成一個(gè)大小為m?×?n的顯示區(qū)域矩陣,且令第p個(gè)區(qū)域?yàn)楫?dāng)前顯示區(qū)域。注意:調(diào)用subplot和imshow顯示多幅圖像的時(shí)候,圖像總是共享最后一個(gè)顯示圖像的colormap矩陣。如果每幅圖像的colormap矩陣不一致則會(huì)出現(xiàn)問題。此時(shí),可以調(diào)用subimage函數(shù)解決這個(gè)問題,或者在載入圖像時(shí)設(shè)定所有圖像的colormap相同。例如,在同一figure中顯示兩幅圖像:
[X1,map1]=imread('forest.tif');
[X2,map2]=imread('trees.tif');
subplot(1,2,1),imshow(X1,map1)
subplot(1,2,2),imshow(X2,map2)由于共享最后一個(gè)顯示圖像的colormap矩陣,則在顯示第二個(gè)圖像后,第一個(gè)圖像的colormap矩陣改變成第二個(gè)的,所以圖像變黑了,如圖2.12所示。圖2.12subplot顯示結(jié)果可以利用subplot和subimage函數(shù)顯示多幅圖像。subimage函數(shù)在顯示圖像之前將其轉(zhuǎn)化成真彩色圖像,從而解決了因多幅圖像共享colormap矩陣而引起的問題,如圖2.13所示。具體代碼如下:
[X1,map1]=imread('forest.tif');
[X2,map2]=imread('trees.tif');
subplot(1,2,1),subimage(X1,map1)
subplot(1,2,2),subimage(X2,map2)圖2.13subimage顯示結(jié)果2.5.2顯示多幀圖像
montage函數(shù)可以一次顯示多幀圖像。它能對(duì)圖形窗口進(jìn)行劃分,然后將每一幀分別顯示在不同的顯示區(qū)域,所有子區(qū)域的圖像都用同一個(gè)色彩條。調(diào)用方法如下:
montage(I)
montage(BW)
montage(X,map)
montage(RGB)
h=montage(…)前四種調(diào)用方法分別顯示灰度圖像、二值圖像、索引圖像以及真彩色圖像的k幀圖像,其中I、BW和X都是m×n×1×k階的矩陣,RGB為m×n×3×k階的矩陣。第五種調(diào)用方法返回圖像句柄。例如,裝載一幅多幀索引圖像并顯示,結(jié)果如圖2.14所示。
loadmri
montage(D,map)圖2.14montage函數(shù)顯示結(jié)果2.6圖像類型轉(zhuǎn)換
MATLAB中有四種基本的圖像格式,分別為二值圖像、灰度圖像、索引圖像和真彩色圖像。在圖像處理過程中,有時(shí)需要知道待處理圖像的類型,或需要對(duì)圖像的類型作適當(dāng)?shù)霓D(zhuǎn)換。MATLAB圖像處理工具箱中提供了圖像類型判斷和轉(zhuǎn)換的工具。在MATLAB中要判斷一個(gè)圖像文件的類型,可使用表2.5中的指令。表2.5MATLAB圖像處理工具箱中的圖像類型判斷函數(shù)這些函數(shù)具有統(tǒng)一的調(diào)用格式,其表示形式如下:Image_Type_YN=Is_Image_Type_Command(Image_Type_Array)其中,Is_Image_Type_Command為圖像類型判斷函數(shù)。Image_Type_Array為待判斷圖像的數(shù)據(jù)矩陣,如果Image_Type_Array為所判斷的類型,則Image_Type_YN返回值為1,否則為0。需要注意的是,以后的MATLAB版本可能不再支持這些函數(shù)。對(duì)于某些操作來說,圖像類型轉(zhuǎn)換有時(shí)非常有用,以下將詳細(xì)介紹一些圖像類型轉(zhuǎn)換函數(shù)。2.6.1dither函數(shù)
dither函數(shù)用抖動(dòng)法(dithering)轉(zhuǎn)換圖像。該函數(shù)通過顏色抖動(dòng)(顏色抖動(dòng)即改變邊沿像素的顏色,使像素周圍的顏色近似于原始圖像的顏色,以空間分辨率換取顏色分辨率)來增強(qiáng)輸出圖像的顏色分辨率。該函數(shù)可以把RGB圖像轉(zhuǎn)換成索引圖像,基本的調(diào)用格式為X=dither(RGB,map)這種調(diào)用方法將真彩色圖像RGB按指定的色圖map抖動(dòng)成索引圖像X,此處要求色圖不能夠超過65536種顏色。相比于上述簡(jiǎn)單的調(diào)用方法,dither還有一種通過指定變換參數(shù)來將真彩色圖像轉(zhuǎn)換成索引圖像的調(diào)用方法:
X=dither(RGB,map,Qm,Qe)其中,參數(shù)Qm定義了從轉(zhuǎn)換色圖map的每個(gè)顏色軸量化的比特位,參數(shù)Qe定義了從顏色空誤差計(jì)算的量化比特位。Qm、Qe的值分別為5、8。如果Qe<Qm,則不能完成返回X的轉(zhuǎn)換。此外,調(diào)用函數(shù)dither還可將灰度圖像I轉(zhuǎn)換成二值圖像BW:
BW=dither(I)例如,調(diào)用函數(shù)dither將灰度圖像轉(zhuǎn)換成二值圖像,如圖2.15所示。具體代碼如下:
I=imread('cameraman.tif');
BW=dither(I);
imshow(I),figure,imshow(BW)圖2.15灰度圖像轉(zhuǎn)換成二值圖像2.6.2gray2ind函數(shù)
gray2ind函數(shù)的功能是將灰度圖像或二值圖像轉(zhuǎn)換成索引圖像,其基本的調(diào)用格式如下:
[X,map]=gray2ind(I,n)
[X,map]=gray2ind(BW,n)其中,第一種調(diào)用方法按照指定的灰度級(jí)數(shù)n將灰度圖像I轉(zhuǎn)換成索引圖像X,n的缺省值為64。第二種調(diào)用方法按指定的灰度級(jí)數(shù)n將二值圖像BW轉(zhuǎn)換成索引圖像X,n的缺省值為2。例如,調(diào)用gray2ind函數(shù)將灰度圖像轉(zhuǎn)換成索引圖像,其中n的取值為7,如圖2.16所示。具體代碼如下:
I=imread('cameraman.tif');
[X,map]=gray2ind(I,16);
imshow(I),figure,imshow(X,map)圖2.16灰度圖像轉(zhuǎn)換成二值圖像2.6.3grayslice函數(shù)
grayslice函數(shù)的功能是通過設(shè)定閾值將灰度圖像轉(zhuǎn)換為索引圖像,具體的調(diào)用格式如下:
X=grayslice(I,n)
X=grayslice(I,v)
第一種調(diào)用方法將灰度圖像I均勻量化成n個(gè)等級(jí),然后轉(zhuǎn)換成索引圖像X;第二種調(diào)用方法按指定的閾值向量v(每個(gè)元素都在0和1之間)對(duì)圖像I的值域進(jìn)行劃分,而后將I轉(zhuǎn)換成索引圖像X,具體代碼如下:
I=imread('snowflakes.png');
X=grayslice(I,16);
imshow(I)
figureimshow(X,jet(16))圖2.17為運(yùn)行結(jié)果。圖2.17灰度圖像轉(zhuǎn)化索引圖像2.6.4im2bw函數(shù)
im2bw函數(shù)的功能是通過設(shè)定閾值將灰度、索引、RGB圖像轉(zhuǎn)換為二值圖像,調(diào)用格式如下:
BW=im2bw(I,level)
BW=im2bw(X,map,level)
BW=im2bw(RGB,level)其中,參數(shù)level是歸一化閾值,取值為[01]。level可以由函數(shù)grayslice(I)計(jì)算得到。輸入圖像必須為非稀疏矩陣。Loadtrees;BW=im2bw(X,map,0.4);imshow(X,map)figure,imshow(BW)運(yùn)行結(jié)果如圖2.18所示。圖2.18索引圖像轉(zhuǎn)換為二值圖像2.6.5ind2gray函數(shù)
ind2gray函數(shù)的功能是將索引圖像轉(zhuǎn)換成灰度圖像,調(diào)用格式如下:
I=ind2gray(X,map)該函數(shù)實(shí)際上就是從輸入圖像中刪除色彩和位置信息,只保留亮度信息,以下代碼實(shí)現(xiàn)了函數(shù)ind2gray將索引圖像轉(zhuǎn)換成灰度圖像(結(jié)果如圖2.19所示):
Loadtrees;
I=ind2gray(X,map);
imshow(X,map)
figureimshow(I)圖2.19索引圖像轉(zhuǎn)換成灰度圖像2.6.6ind2rgb函數(shù)
ind2rgb函數(shù)的功能是將索引圖像轉(zhuǎn)換成RGB圖像,調(diào)用的格式如下:
RGB=ind2rgb(X,map)2.6.7rgb2gray函數(shù)
rgb2gray函數(shù)的功能是將RGB圖像轉(zhuǎn)換成灰度圖像或?qū)⒉噬珗D轉(zhuǎn)換成灰度色圖。調(diào)用格式如下:
I=rgb2gray(RGB)
Newmap=rgb2gray(map)第一種調(diào)用方法將真彩色圖像RGB轉(zhuǎn)換成灰度圖像I,第二種調(diào)用方法將彩色色圖map轉(zhuǎn)換成灰度色圖newmap。以下代碼利用第一種調(diào)用方法將RGR圖像轉(zhuǎn)換成灰度圖像:
I=imread('board.tif');
J=rgb2gray(I);
figure,imshow(I),
figure,imshow(J);運(yùn)行結(jié)果如圖2.20所示。圖2.20調(diào)用rgb2gray將真彩色圖像轉(zhuǎn)換成灰度圖像以下代碼調(diào)用rgb2gray將彩色色圖轉(zhuǎn)換成灰度色圖:[X,map]=imread('trees.tif');gmap=rgb2gray(map);figure,imshow(X,map),figure,imshow(X,gmap);運(yùn)行結(jié)果如圖2.21所示圖2.21調(diào)用rgb2gray將彩色色圖轉(zhuǎn)換成灰度色圖2.6.8rgb2ind函數(shù)
rgb2ind函數(shù)的功能是將真彩色圖像轉(zhuǎn)換成索引圖像,其基本調(diào)用格式如下:
[X,map]=rgb2ind(RGB,n)
X=rgb2ind(RGB,map)
[X,map]=rgb2ind(RGB,tol)
[...]=rgb2ind(...,dither_option)
將真彩色圖像轉(zhuǎn)換成索引圖像有三種方法:均衡量化、最小值量化和色圖映射。第一種方法以最小量化將真彩色圖像轉(zhuǎn)換成索引圖像,n必須不大于65536,map至多有n種顏色;第二種方法將真彩色圖像的色圖映射成索引圖像最近似匹配的色圖以達(dá)到轉(zhuǎn)換的目的,向量(map,1)的大小不大于65536;第三種方法以均勻量化將真彩色圖像轉(zhuǎn)換成索引圖像,tol的取值范圍為[01],map至多(floor(1/tol)+1)^3種顏色。以下代碼實(shí)現(xiàn)了將真彩色圖像轉(zhuǎn)化成彩色的索引圖像:
RGB=imread('peppers.png');
[X,map]=rgb2ind(RGB,128);
imshow(X,map)運(yùn)行結(jié)果如圖2.22所示。圖2.22真彩色圖像轉(zhuǎn)換成彩色的索引圖像2.6.9mat2gray函數(shù)
mat2gray函數(shù)的功能是將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換為灰度圖像,其調(diào)用格式如下:
I=mat2gray(A,[amin,amax]);
I=mat2gray(A)第一種調(diào)用方法按指定的取值區(qū)間[aminamax]將數(shù)據(jù)矩陣A轉(zhuǎn)換為灰度圖像I,amin是灰度最暗的值,amax是灰度最亮的值;第二種調(diào)用方法自動(dòng)將矩陣A中的最小值設(shè)定為amin,最大值設(shè)定為amax。以下代碼用sobel算子對(duì)圖像進(jìn)行濾波,并將濾波后的數(shù)據(jù)轉(zhuǎn)換成灰度圖像:
I=imread('rice.png')
J=filter2(fspecial('Sobel'),I)
K=mat2gray(J)
imshow(I)
figureimshow(K)運(yùn)行結(jié)果如圖2.23所示。2.7圖像的直方圖2.7.1直方圖的基本概念一幅數(shù)字圖像,若對(duì)應(yīng)于每一灰度值,統(tǒng)計(jì)出具有該灰度值的像素?cái)?shù),并據(jù)此繪出像素?cái)?shù)—灰度值圖形,則稱其為該圖像的灰度直方圖,簡(jiǎn)稱直方圖。直方圖是以灰度值作為橫坐標(biāo),像素?cái)?shù)作為縱坐標(biāo)。從概率的角度看,如果將圖像中像素亮度(灰度級(jí)別)看成是一個(gè)隨機(jī)變量,則某一灰度值的像素?cái)?shù)占全圖總像素?cái)?shù)的百分比(即某一灰度值出現(xiàn)的頻數(shù))反映了圖像的統(tǒng)計(jì)特性,可用概率密度函數(shù)(ProbabilityDensityFunction,PDF)來描述,也就表現(xiàn)為灰度直方圖(Histogram)?;叶戎狈綀D是灰度級(jí)的函數(shù),它表示圖像中具有某種灰度級(jí)的像素的個(gè)數(shù),反映了圖像中每種灰度出現(xiàn)的頻率。如圖2.24所示?;叶戎狈綀D的橫坐標(biāo)是灰度級(jí),縱坐標(biāo)是該灰度級(jí)出現(xiàn)的頻度,它是圖像最基本的統(tǒng)計(jì)特征。圖2.24圖像灰度直方圖設(shè)變量r代表圖像中像素灰度級(jí),對(duì)圖像中像素的灰度級(jí)作歸一化處理,這樣r的值將限定在范圍[0,1]之間,r?=?0代表黑,r?=?1代表白。對(duì)于一幅給定的圖像來說,每一個(gè)像素取[0,1]之間的灰度級(jí)是隨機(jī)的,也就是說,灰度級(jí)是一個(gè)隨機(jī)變量。在離散的形式下,用rk代表離散灰度級(jí),用Pr(rk)代表概率密度函數(shù),且有下式成立:0≤rk≤1k?=?0,1,2,…,l?-?1(2.4)式中,nk為圖像中出現(xiàn)rk這種灰度的像素?cái)?shù),n是圖像中的像素總數(shù),nk/n就是該灰度出現(xiàn)的頻數(shù),l是灰度級(jí)的總數(shù)目。在直角坐標(biāo)系中做出rk與P(rk)的關(guān)系圖,就得到直方圖。設(shè)連續(xù)圖像具有從中心的高灰度級(jí)平滑變化到邊緣的低灰度級(jí)。選擇某一灰度級(jí)D1,然后定義一條輪廓線,該輪廓線連接了圖像上所有具有灰度級(jí)D1的點(diǎn)。所得到的輪廓線形成了包圍灰度級(jí)大于等于D1的區(qū)域的封閉曲線。在更高灰度級(jí)D2處畫出第二條輪廓線。A1為曲線D1包圍的面積,A2為曲線D2包圍的面積,如圖2.25所示。A(D)為閾值面積函數(shù),表示一幅連續(xù)圖像中被具有灰度級(jí)D的所有輪廓線所包圍的面積。則該圖像的直方圖可定義為因此,一幅連續(xù)圖像的直方圖是其面積函數(shù)導(dǎo)數(shù)的負(fù)值。符號(hào)的出現(xiàn)是由于隨著D的增加閾值面積A(D)在減少。對(duì)于離散函數(shù),固定ΔD為1,則(2.5)
(2.6)對(duì)于數(shù)字圖像,任一灰度級(jí)D的面積就是大于或等于具有該灰度級(jí)D的像素的個(gè)數(shù)圖2.25連續(xù)圖像的直方圖定義示意圖圖2.26是兩個(gè)直方圖的例子,從圖像灰度級(jí)的分布可以看出一幅圖像的灰度分布特性。例如,從圖2.26中的(a)和(b)兩個(gè)灰度密度分布函數(shù)中可以以看出:(a)圖像的大多數(shù)像素灰度值取在較暗的區(qū)域,所以這幅圖像肯定較暗,一般在攝影過程中曝光過強(qiáng)就會(huì)造成這種結(jié)果;而(b)圖像的像素灰度值集中在亮區(qū),因此,該圖像的特性將偏亮,一般在攝影中曝光太弱將導(dǎo)致這種結(jié)果。當(dāng)然,從兩幅圖像的灰度分布來看,圖像的質(zhì)量均不理想。圖2.26圖像的特性與直方圖的關(guān)系2.7.2直方圖的性質(zhì)直方圖的性質(zhì)有如下幾點(diǎn):
(1)直方圖是一幅圖像中各像素灰度值出現(xiàn)次數(shù)或頻數(shù)的統(tǒng)計(jì)結(jié)果,它只反映該圖像中不同灰度值出現(xiàn)的次數(shù)或頻數(shù),而未反映某一灰度值像素所在的位置。也就是說,它只包含了該圖像中某一灰度值的像素出現(xiàn)的概率,而丟失了其所在位置的信息。
(2)任一幅圖像,都能唯一地確定出一幅與它對(duì)應(yīng)的直方圖,但不同的圖像可能有相同的直方圖。也就是說,圖像與直方圖之間是一種多對(duì)一的映射關(guān)系。例如,圖2.27(a)和(b)就是兩幅不同的圖像,但對(duì)應(yīng)著相同的直方圖。圖2.27圖像與直方圖間的多對(duì)一關(guān)系
(3)由于直方圖是對(duì)具有相同灰度值的像素統(tǒng)計(jì)計(jì)數(shù)得到的,因此,一幅圖像各子區(qū)的直方圖之和就等于該圖像全圖的直方圖,如圖2.28所示。
(4)歸一化灰度直方圖和面積函數(shù)可得到圖像的概率密度函數(shù)和累積分布函數(shù)(CumulativeDistributionFuntion,CDF)。直方圖,用p替換D,并對(duì)等式兩端從D到進(jìn)行積分,即,因?yàn)?,從而。若令D?=?0,則為圖像的面積。對(duì)于離散圖像,。若一幅圖像包含一個(gè)灰度均勻一致,且背景與物體對(duì)比度很強(qiáng),且物體的邊界由灰度級(jí)D1定義的輪廓線,則即為物體的面積。圖2.28直方圖的分解如圖2.29所示,原始圖像(a)的大小為500×546像素,則其總像素點(diǎn)數(shù)為500×546=273000個(gè),圖2.29(b)所示的直方圖峰值表明,凸顯主體鴨子所對(duì)應(yīng)的像素點(diǎn)灰度值是從54到255級(jí),根據(jù)面積計(jì)算方法可以計(jì)算出圖像中鴨子的面積為個(gè)像素,約占圖像總面積的60%。圖2.29直方圖用于面積計(jì)算演示2.7.3直方圖的計(jì)算和MATLAB實(shí)現(xiàn)若圖像具有L級(jí)灰度(通常L?=?256,即8位灰度級(jí)),則大小為M×N的灰度圖像f(x,y)的灰度直方圖pBuffer[0,…,L?-?1]可用如下算法得到:
(1)初始化:pBuffer[k]?=?0k?=?0,…,L?-?1。
(2)統(tǒng)計(jì):pBuffer[f(x,y)]++x=0,…,M?-?1;y=?0,…,N?-?1。
(3)歸一化:pBuffer[f(x,y)]/?=?M?×?N。其中直方圖的歸一化是一個(gè)可選項(xiàng),若不需要特殊處理可不進(jìn)行此項(xiàng)操作。在MATLAB中調(diào)用函數(shù)imhist來繪制圖像的直方圖,調(diào)用格式為
imhist(I)
imhist(I,n)
imhist(X,map)
[counts,x]=imhist(...)第一種調(diào)用方法顯示灰度圖像的直方圖?;叶燃?jí)由圖像的類型決定,如果輸入圖像I是灰度圖像,則默認(rèn)使用256個(gè)灰度級(jí);如果是二值圖像,則為兩個(gè)灰度級(jí)。當(dāng)然灰度級(jí)n也可以由用戶指定,第二種調(diào)用方法即為此情況;第三種調(diào)用方法顯示索引圖像的直方圖;第四種調(diào)用方法返回參數(shù)counts和x,其中counts為相對(duì)應(yīng)位置上灰度級(jí)的像素點(diǎn)統(tǒng)計(jì)數(shù),x為灰度級(jí)位置。例如,調(diào)用imhist函數(shù)繪制指定圖像的直方圖,具體代碼如下:
I=imread('rice.png')
imhist(I)運(yùn)行結(jié)果如圖2.30所示。圖2.30imhist函數(shù)直方圖計(jì)算與顯示2.8圖像的點(diǎn)運(yùn)算
對(duì)于一幅輸入圖像,經(jīng)過點(diǎn)運(yùn)算將產(chǎn)生一幅輸出圖像,輸出圖像上每個(gè)像素點(diǎn)的灰度值由輸入像素點(diǎn)決定。點(diǎn)運(yùn)算由灰度變換函數(shù)(GrayScaleTransformation,GST)確定,設(shè)輸入圖像為A(x,y),輸出圖像為B(x,y),則點(diǎn)運(yùn)算可表示為
B(x,y)?=?f?[A(x,y)]
(2.7)與局部(鄰域)運(yùn)算不同,點(diǎn)運(yùn)算中輸入像素與輸出像素一一對(duì)應(yīng),而局部運(yùn)算輸出像素的灰度值由對(duì)應(yīng)輸入像素的一個(gè)鄰域內(nèi)幾個(gè)像素的灰度共同決定;與幾何運(yùn)算不同,點(diǎn)運(yùn)算不改變圖像的空間關(guān)系。對(duì)比度增強(qiáng)、對(duì)比度拉伸或灰度變換都屬于點(diǎn)運(yùn)算。2.8.1點(diǎn)運(yùn)算的種類
1.線性點(diǎn)運(yùn)算線性點(diǎn)運(yùn)算是指輸出灰度為輸入像素的線性函數(shù),即DB=f(DA)=aDA+b
(2.8)當(dāng)a>1時(shí),輸出圖像的對(duì)比度將增大;0<a<1時(shí),對(duì)比度減??;a<0時(shí),暗區(qū)域?qū)⒆兞?,亮區(qū)域?qū)⒆儼担布辞笱a(bǔ)(圖像反轉(zhuǎn));當(dāng)a?=?1而?b?≠?0時(shí),灰度值將上移或者下移,使整個(gè)圖像變亮或者變暗。圖2.31是原始圖像在不同情況下的線性點(diǎn)運(yùn)算結(jié)果。圖2.31線性點(diǎn)運(yùn)算
2.非線性點(diǎn)運(yùn)算當(dāng)在整個(gè)灰度域中輸出圖像的灰度不能用輸入圖像的灰度值線性表示時(shí),此時(shí)的灰度變換為非線性變換,對(duì)應(yīng)的運(yùn)算為非線性點(diǎn)運(yùn)算。非線性點(diǎn)運(yùn)算種類很多,主要包括分段線性變換、對(duì)數(shù)變換、反對(duì)數(shù)變換、n次冪變換、n次方根變換等。本節(jié)對(duì)其中分段線性變換和冪次變換作簡(jiǎn)要的介紹。圖2.32分段線性變換
1)分段線性變換分段線性變換簡(jiǎn)單而靈活,這類變換將輸入圖像的灰度區(qū)間劃分成幾個(gè)區(qū)間,每個(gè)區(qū)間內(nèi)的變換對(duì)應(yīng)一線性變換函數(shù),在整個(gè)灰度域內(nèi)變換則為分段線性的。從而突出感興趣的目標(biāo)所在的灰度區(qū)間,相對(duì)抑制那些不感興趣的灰度區(qū)間,圖2.32為一個(gè)分段線性變換函數(shù)。常用的是三段線性變換灰度變換函數(shù),如圖2.33所示。圖2.33分段線性變換示例
2)冪次變換冪次變換中輸出圖像與輸入圖像灰度之間的函數(shù)關(guān)系為其中,參數(shù)c和γ為正常數(shù)。隨著冪函指數(shù)γ的不同,冪次變換的變換曲線也呈現(xiàn)出不同的形式,圖2.34給出了這些曲線。(2.9)圖2.34灰度γ冪次變換函數(shù)曲線圖2.35顯示了圖像在不同的γ值下經(jīng)冪次變換的效果。圖2.35冪次變換結(jié)果2.8.2MATLAB實(shí)現(xiàn)
MATLAB數(shù)字圖像處理工具箱中的imadjust函數(shù)用來對(duì)圖像實(shí)現(xiàn)點(diǎn)運(yùn)算,通過調(diào)節(jié)圖像灰度值或調(diào)色板,以達(dá)到相應(yīng)的處理效果。其調(diào)用方法如下:
J=imadjust(I)
J=imadjust(I,[low_in;high_in],[low_out;high_out])
J=imadjust(...,gamma)
newmap=imadjust(map,[low_inhigh_in],[low_outhigh_out],gamma)
RGB2=imadjust(RGB1,...)調(diào)用方法一調(diào)整灰度圖像I的強(qiáng)度值,截?cái)嗷叶鹊牡投撕透叨?%的數(shù)據(jù)以提高圖像的對(duì)比度,等效于imadjust(I,stretchlim(I));調(diào)用方法二指定灰度變換的范圍,將圖像I在[low_in;high_in]內(nèi)的灰度值變換到[low_out;high_out]內(nèi),圖像低于low_in的灰度值變換成low_out,高于high_in的灰度值變換成high_out,這兩個(gè)范圍的缺省值為[01];調(diào)用方法三指定圖像指數(shù)變換的gamma參數(shù)值,如果gamma值大于1,則提高輸出圖像的對(duì)比度,反之則降低圖像的對(duì)比度,gamma參數(shù)的缺省值為1;調(diào)用方法四對(duì)顏色表進(jìn)行相應(yīng)的灰度變換;調(diào)用方法五對(duì)真彩色圖像進(jìn)行灰度變換,具體的操作方法是對(duì)真彩色的紅色、綠色和藍(lán)色進(jìn)行所指定的灰度變換。例如,以下的代碼利用imadjust函數(shù)提高圖像的對(duì)比度,以提高圖像的清晰度,運(yùn)行結(jié)果如圖2.36所示。
I=imread('pout.tif');
J=imadjust(I);
imshow(I),
figure,imshow(J)
K=imadjust(I,[0.30.7],[]);
figure,imshow(K)圖2.36灰度圖像的對(duì)比度調(diào)整例如,對(duì)真彩色圖像進(jìn)行灰度變換,例程代碼如下:
RGB1=imread('football.jpg');
RGB2=imadjust(RGB1,[.2.30;.6.71],[]);
imshow(RGB1),
figure,imshow(RGB2)運(yùn)行結(jié)果如圖2.37所示。圖2.37真彩色圖像灰度變換2.9圖像的代數(shù)運(yùn)算
2.9.1代數(shù)運(yùn)算定義圖像的代數(shù)運(yùn)算是指兩幅輸入圖像對(duì)應(yīng)像素點(diǎn)的灰度值的一對(duì)一的加、減、乘、除運(yùn)算。設(shè)輸入圖像A(x,y)和B(x,y)的大小都為M?×?N,則圖像的代數(shù)運(yùn)算可以表達(dá)為(2.10)其中,對(duì)于加法和乘法運(yùn)算,參與運(yùn)算的可能不止兩幅圖像。一般情況下輸入圖像之一可能為常數(shù),這種情況下,代數(shù)運(yùn)算歸結(jié)為點(diǎn)運(yùn)算;對(duì)于兩幅互不相關(guān)的圖像,其相加所得圖像的直方圖為兩幅輸入圖像直方圖的卷積。圖像相加可以將一幅圖像內(nèi)容加到另一幅圖像上以達(dá)到二次曝光的要求(doubleexposure),可以對(duì)同一場(chǎng)景的多幅圖像求平均值,以降低加性(additive)隨機(jī)噪聲,圖像相減可去除圖像中不需要的加性圖案,也可用于運(yùn)動(dòng)檢測(cè),如圖2.38所示;乘法運(yùn)算可以用于掩膜圖像;除法運(yùn)算可產(chǎn)生對(duì)顏色和多光譜圖像分析十分重要的比率圖像。圖2.38圖像相減去除圖像背景2.9.2MATLAB實(shí)現(xiàn)
1.圖像加減法
MATLAB數(shù)字圖像處理工具箱中的imadd函數(shù)可以實(shí)現(xiàn)圖像與圖像或常數(shù)相加的功能。調(diào)用方法如下:Z=imadd(X,Y)其中,輸入圖像X和Y大小必須相同,輸入圖像Y可以為一常數(shù),輸出圖像Z的大小與輸入圖像一致。例如,調(diào)用imadd函數(shù)將兩個(gè)圖像相加,具體代碼為
I=imread('rice.png');
J=imread('cameraman.tif');
K=imadd(I,J,'uint16');
Figure,imshow(I,[])
Figure,imshow(J,[])
Figure,imshow(K,[])圖2.39(a)、(b)中的輸入圖像相加后得到圖2.39(c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法蘭內(nèi)齒輪課程設(shè)計(jì)
- 木工產(chǎn)業(yè)人才培養(yǎng)與產(chǎn)業(yè)競(jìng)爭(zhēng)力提升考核試卷
- 電感器在電機(jī)啟動(dòng)中的應(yīng)用考核試卷
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 玻璃制品計(jì)算機(jī)輔助設(shè)計(jì)(CAD)考核試卷
- 電子專用材料實(shí)驗(yàn)室安全管理考核試卷
- 電機(jī)在洗衣機(jī)的洗滌動(dòng)力考核試卷
- 白酒釀造過程中的清潔生產(chǎn)技術(shù)考核試卷
- 進(jìn)出口結(jié)算崗位述職報(bào)告
- 職工大講堂活動(dòng)心得體會(huì)范文
- 欣旺達(dá)質(zhì)量體系+社會(huì)責(zé)任+安規(guī)體系審核(QSA)
- 小學(xué)六年級(jí)數(shù)學(xué)100道題解分?jǐn)?shù)方程
- 設(shè)備工程行業(yè)年終述職報(bào)告總結(jié)
- 如何在職場(chǎng)中保持工作與生活的平衡
- 《軍事理論》教案第五章
- 團(tuán)隊(duì)能力建設(shè)分析報(bào)告
- 數(shù)字化轉(zhuǎn)型工作手冊(cè)(圖文版)
- 江蘇南京鼓樓區(qū)2023-2024九年級(jí)上學(xué)期期末化學(xué)試卷及答案
- 數(shù)據(jù)中心容災(zāi)備份方案
- 四川省成都市雙流區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 2024年1月浙江首考高考選考?xì)v史試卷試題真題(含答案)
評(píng)論
0/150
提交評(píng)論