第4章 圖像的運(yùn)算_第1頁(yè)
第4章 圖像的運(yùn)算_第2頁(yè)
第4章 圖像的運(yùn)算_第3頁(yè)
第4章 圖像的運(yùn)算_第4頁(yè)
第4章 圖像的運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章圖像的運(yùn)算圖像的代數(shù)運(yùn)算是指多幅圖像的加減乘除運(yùn)算和一般的線性運(yùn)算。圖像運(yùn)算要求所有信息都是圖像且其灰度值都是非負(fù)整數(shù)值。主要內(nèi)容4.1點(diǎn)運(yùn)算4.2圖像的代數(shù)運(yùn)算4.3圖像的邏輯運(yùn)算4.4圖像的塊和鄰域處理4.5圖像的幾何運(yùn)算4.1點(diǎn)運(yùn)算用于改變圖像的灰度范圍分布。在對(duì)圖像各像素進(jìn)行處理時(shí),是輸入該圖像本身會(huì)讀的運(yùn)算方式。對(duì)圖像進(jìn)行點(diǎn)運(yùn)算時(shí)各像素間不發(fā)生關(guān)系,各像素的處理是獨(dú)立進(jìn)行的。典型的點(diǎn)運(yùn)算包括:光度學(xué)標(biāo)定:通過(guò)對(duì)圖像傳感器的非線性特性作出補(bǔ)償來(lái)反映某些物理特性,如光照度和光密度等。對(duì)比度增強(qiáng):調(diào)整圖像的亮度和對(duì)比度,以便觀察。顯示標(biāo)定:利用點(diǎn)運(yùn)算使圖像能夠突出顯示出所有用戶感興趣的特征。圖像分割:為圖像添加輪廓線,通常作為后續(xù)運(yùn)算中的邊界檢測(cè)。圖像裁剪:將輸出圖像的灰度級(jí)限制在可用范圍內(nèi)。例1:使用灰度變換函數(shù)將一個(gè)灰度圖像進(jìn)行線性點(diǎn)運(yùn)算clcrice=imread('rice.png');J=double(rice);I=J*0.45+55;rice2=uint8(I);subplot(121);imshow(rice);xlabel(‘a(chǎn))原始圖像');subplot(122);imshow(rice2);xlabel(‘b)點(diǎn)運(yùn)算后的圖像');4.1圖像的代數(shù)運(yùn)算4.1.1圖像的加運(yùn)算計(jì)算兩幅圖像矩陣對(duì)應(yīng)像素值的和。前提是兩幅圖像矩陣的大小和類型相同,維數(shù)要相同。調(diào)用格式:Z=imadd(X,Y)X、Y中的一個(gè)可以是常數(shù)。4.1.2圖像的減法運(yùn)算圖像減法稱為差分方法,是一種常用于檢測(cè)圖像變化及運(yùn)動(dòng)物體的圖像處理方法。可以使用圖像減法來(lái)檢測(cè)一系列相同場(chǎng)景圖像的差異。調(diào)用格式:

Z=imsubtract(X,Y)Z為輸入圖像X與輸入圖像Y相減的結(jié)果。減法操作有時(shí)會(huì)導(dǎo)致某些像素值變?yōu)橐粋€(gè)負(fù)數(shù),此時(shí),該函數(shù)自動(dòng)將這些負(fù)數(shù)截取為0,可以調(diào)用imabsdiff函數(shù),將兩幅圖像相應(yīng)像素差值的絕對(duì)值。例1:原始圖像減去背景圖像I=imread('rice.png');subplot(121);imshow(I);xlabel(‘a(chǎn))原始圖像');background=imopen(I,strel('disk',15));Ip=imsubtract(I,background);subplot(122);imshow(Ip,[]);xlabel(‘b)去背景效果');4.1.3圖像乘法運(yùn)算乘法運(yùn)算可以實(shí)現(xiàn)掩膜操作,即屏蔽掉圖像的某些部分。一幅圖乘以一個(gè)常數(shù)通常被稱為縮放。如果縮放因數(shù)大于1,那么增強(qiáng)圖像的亮度,如果縮放因數(shù)小于1則會(huì)使圖像變暗。調(diào)用格式:

Z=immultiply(X,Y)

對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。

4.1.4圖像除法運(yùn)算除法運(yùn)算可用于校正成像設(shè)備的非線性影響,可以用來(lái)檢測(cè)兩幅圖像的區(qū)別,但除法操作得出的是相應(yīng)像素值的變換比例。調(diào)用格式:

Z=imdivide(X,Y)

對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。

4.1.5圖像差的絕對(duì)值運(yùn)算除法運(yùn)算可用于校正成像設(shè)備的非線性影響,可以用來(lái)檢測(cè)兩幅圖像的區(qū)別,但除法操作得出的是相應(yīng)像素值的變換比例。調(diào)用格式:

Z=imabsdiff(X,Y)

對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。

4.1.6圖像的補(bǔ)運(yùn)算適用于各種圖像格式,如果是二進(jìn)制圖像,將對(duì)圖像的每一位求補(bǔ);如果是RGB格式的圖像,用像素值的最大值減去圖像的原始值,得到輸出圖像相應(yīng)位置的像素值。調(diào)用格式:

IM2=imcomplement(IM)4.1.7圖像的線性運(yùn)算調(diào)用格式:Z=imlincomb(K1,A1,K2,A2,…,Kn,An)Z=imlincomb(K1,A1,K2,A2,…,Kn,An,K)Z=imlincomb(K1,A1,K2,A2,…,Kn,An,K,output_class)output_class用來(lái)設(shè)定輸出結(jié)果Z的數(shù)據(jù)類型,如uint16或double。4.1.8圖像的非線性運(yùn)算在線性運(yùn)算中,像素點(diǎn)間值的變化是一種比例關(guān)系。在實(shí)際中需要對(duì)某個(gè)圖像特性進(jìn)行放大(縮?。?,特別是在進(jìn)行圖像增強(qiáng)的過(guò)程中,為了消除圖像失真,非線性運(yùn)算就顯得格外有用。冪運(yùn)算、指數(shù)運(yùn)算、對(duì)數(shù)運(yùn)算、根運(yùn)算等都是為簡(jiǎn)單的非線性映射算法。4.1.9圖像的邏輯運(yùn)算圖像的邏輯運(yùn)算在圖像增強(qiáng)、圖像識(shí)別、圖像復(fù)原和區(qū)域分割等領(lǐng)域有著廣泛的應(yīng)用,邏輯運(yùn)算不僅關(guān)注圖像像素點(diǎn)的數(shù)值變換,而且重點(diǎn)在于位變換的情況。I=imread('cameraman.tif');J=imread('rice.png');I1=im2bw(I);%轉(zhuǎn)化為二值圖像J1=im2bw(J);K1=I1&J1;%邏輯與運(yùn)算K2=I1|J1;%邏輯或運(yùn)算K3=~I1;%邏輯非運(yùn)算K4=xor(I1,J1);%異或運(yùn)算figure;%依次顯示四幅圖像subplot(221);imshow(I);subplot(222);imshow(J);subplot(223);imshow(I1);subplot(224);imshow(J1);figure;%依次顯示四幅圖像subplot(221);imshow(K1);subplot(222);imshow(K2);subplot(223);imshow(K3);subplot(224);imshow(K4);例104.2.1圖像調(diào)整大小在保持原有圖像形狀的基礎(chǔ)上對(duì)圖像大小進(jìn)行擴(kuò)大或縮小。imresize調(diào)用格式:B=imresiz(A,scale)B=imresiz(A,[mrows

ncols])B=imresiz(A,scale,method)scale:縮放比例,<1縮小,>1放大。method:指定插值運(yùn)算方法[mrows

ncols]指定縮放后圖像的行數(shù)和列數(shù)。exa3114.2圖像幾何運(yùn)算4.2.2圖像旋轉(zhuǎn)

數(shù)字圖像旋轉(zhuǎn)時(shí),各像素的坐標(biāo)將會(huì)發(fā)生變化,是的旋轉(zhuǎn)后不能正常落在整數(shù)坐標(biāo)處,需要插值。imrotate調(diào)用格式:B=imresiz(A,angle)B=imresiz(A,angle,method)B=imresiz(A,angle,method,bbox)angle:旋轉(zhuǎn)角度;method:指定插值運(yùn)算方法bbox:有兩個(gè)值crop,loose.crop表示旋轉(zhuǎn)后的圖像都對(duì)剪切中間的部分進(jìn)行增大,放回和原圖大小一致的圖像.loose表示返回旋轉(zhuǎn)后完整大小的圖像,默認(rèn)值。exa3144.2.3圖像的裁剪

取圖像的一部分imcrop調(diào)用格式:I=imcrop:對(duì)當(dāng)前窗體中的圖片顯示剪切操作狀態(tài),交互式操作,用鼠標(biāo)在圖像中選中感興趣的區(qū)域,然后這個(gè)感興趣的區(qū)域就會(huì)存儲(chǔ)在矩陣I中。I2=imcrop(I)或X2=imcrop(X,map)灰度圖像索引圖像剪切I2=imcrop(I,rect)或X2=imcrop(X,map,rect)指定矩形區(qū)域rect進(jìn)行剪切操作,rect規(guī)定了裁剪后的圖像區(qū)域,為一個(gè)四元素向量[xmin,ymin,width,height],四個(gè)分量表示矩形的長(zhǎng)度及寬度。exa313例13:裁剪I=imread('circuit.tif');figure,imshow(I)I0=imcrop;figure,imshow(I0);4.2.4圖像插值圖像幾何運(yùn)算在圖像處理領(lǐng)域的應(yīng)用主要是二維插值。Matlab提供了三種插值方法:最近鄰插值(Nearestneighborinterpolation)雙線性插值(Bilinearinterpolation)雙三次插值(Bicubicinterpolation)1、最近鄰插值只考慮最近像素的值,算法最快,但插值后容易出現(xiàn)馬賽克和鋸齒。對(duì)于索引圖像來(lái)說(shuō),它是唯一可行的方法。2、雙線性插值在該方法中輸出像素的值是它在輸入圖像中2X2的領(lǐng)域內(nèi)像素的加權(quán)平均值,它根據(jù)某像素周圍4個(gè)像素的灰度值在水平和垂直兩個(gè)方向上對(duì)其插值。3、雙三次插值該插值的領(lǐng)域大小為4X4,它的插值效果比較好,但相應(yīng)的計(jì)算量較大。這三種插值方法的運(yùn)算方式基本類似。對(duì)于每一種來(lái)說(shuō),為了確定插值像素點(diǎn)的數(shù)值,必須在輸入圖像中查找到與輸出像素對(duì)應(yīng)的點(diǎn)。這三種插值方法的區(qū)別在于其對(duì)象像素點(diǎn)賦值的不同。(1)最近鄰插值輸出像素的賦值為當(dāng)前點(diǎn)的像素點(diǎn)。(2)雙線性插值輸出像素的賦值為2X2矩陣所包含的有效點(diǎn)的加權(quán)平均值。(3)雙三次插值輸出像素的賦值為4X4矩陣所包含的有效點(diǎn)的加權(quán)平均值。在matlab圖像工具箱中提供了interp2函數(shù)來(lái)實(shí)現(xiàn)插值運(yùn)算。調(diào)用格式:ZI=interp2(X,Y,Z,XI,YI,method)X,Y是圖像Z的橫坐標(biāo)和縱坐標(biāo)向量;XI,YI是插值后的橫坐標(biāo)和縱坐標(biāo)向量;method是插值方法,可以為:(1)nearest:最近鄰插值。(2)liner:雙線性插值(默認(rèn)項(xiàng))。(3)spline:三次樣條插值。(4)cubic:立方插值。I=imread('tire.tif');[m,n]=size(I);x=1:n;y=1:m;[x,y]=meshgrid(x,y);%生成網(wǎng)格矩陣x1=1:4:n;y1=1:4:m;[x1,y1]=meshgrid(x1,y1);%生成網(wǎng)格矩陣I1=interp2(x,y,I,x1,y1,'nearest');%對(duì)圖像進(jìn)行最近鄰插值subplot(121);imshow(I);subplot(122);imshow(I1);4.2.5鄰域與塊處理鄰域運(yùn)算:在對(duì)圖像進(jìn)行處理時(shí),不但要輸入該像素本身的灰度,還要以運(yùn)算的方式輸入以該像素為中心的某局部區(qū)域(即鄰域)中的一些像素的灰度,這種圖像運(yùn)算稱為鄰域運(yùn)算。由于鄰域運(yùn)算能將像素周圍鄰域內(nèi)的像素狀態(tài)反映在處理結(jié)果中,因而便于實(shí)現(xiàn)多種復(fù)雜圖像的處理。1、滑動(dòng)鄰域操作滑動(dòng)鄰域操作每次在一個(gè)像素上進(jìn)行。輸出圖像的每個(gè)像素值都是輸入圖像在這個(gè)像素的鄰域內(nèi)進(jìn)行指定的運(yùn)算得到的像素值。鄰域是一個(gè)矩形塊,在圖像矩陣中從一個(gè)像素移到另一個(gè)像素的時(shí)候,鄰域塊向同一個(gè)方向滑動(dòng)。通常鄰域是指一個(gè)形狀遠(yuǎn)遠(yuǎn)小于圖像尺寸的規(guī)則的像素塊,例如2X2、3X3、4X4的正方形,或用近似表示圓及橢圓等形狀的多邊形?!?/p>

如圖顯示了一個(gè)2X3的鄰域塊在一個(gè)6X5的矩陣中滑動(dòng)的情況,其中心像素用黑點(diǎn)標(biāo)出。中心像素是輸入圖像中要處理的像素。如果鄰域的行數(shù)和列數(shù)都為奇數(shù),則中心像素位于鄰域的中心。如果鄰域的行數(shù)和列數(shù)中有一個(gè)不為奇數(shù),則中心像素為鄰域中心偏左或偏上的像素。對(duì)于任何一個(gè)鄰域矩陣,其中心像素的坐標(biāo)是:Floor(([mn]+1)/2),如對(duì)于一個(gè)2X2的鄰域,其中心像素為左上角的像素。滑動(dòng)鄰域操作的一般算法如下:(1)選擇一個(gè)像素;(2)確定這個(gè)像素的鄰域(3)對(duì)鄰域的像素值應(yīng)用指定的函數(shù)進(jìn)行計(jì)算,該函數(shù)要返回標(biāo)量(4)返回輸出圖像的像素值,其位置為輸入圖像鄰域中的中心位置;(5)對(duì)圖像中的每個(gè)像素重復(fù)上面4個(gè)操作。其中指定的函數(shù)可以是求取像素平均值的操作,首先將鄰域內(nèi)的像素值加起來(lái),然后除以鄰域內(nèi)像素的個(gè)數(shù),最后將返回的值作為輸出圖像的值。當(dāng)中心像素位于圖像邊緣時(shí),則對(duì)應(yīng)鄰域有可能包含部分不屬于圖像的像素,這時(shí)通常用多個(gè)0來(lái)填充圖形邊界。在matlab中,可以用nlfilter函數(shù)來(lái)進(jìn)行滑動(dòng)鄰域操作調(diào)用格式:B=nlfilter(A,[m

n],fun)其中,A是要處理的圖像[mn]規(guī)定了鄰域塊的大??;fun是指定的函數(shù)。例17:滑動(dòng)鄰域操作實(shí)例I=imread('tire.tif');f=@(x)max(x(:));%求最大值函數(shù)I2=nlfilter(I,[33],f);%滑動(dòng)鄰域操作求鄰域內(nèi)的最大值subplot(121);imshow(I);subplot(122);imshow(I2);在這個(gè)程序中,首先生成一個(gè)求最大值的內(nèi)斂函數(shù),然后調(diào)用滑動(dòng)領(lǐng)域操作函數(shù)求鄰域內(nèi)最大值,這樣每個(gè)像素的值都為3X3鄰域內(nèi)的最大值。2、colfilt函數(shù)實(shí)現(xiàn)快速的鄰域操作。當(dāng)需要對(duì)圖像的局部實(shí)現(xiàn)運(yùn)算時(shí),可以使用該函數(shù)。常用調(diào)用格式:(1)B=colfilt(A,[m

n],block_type,fun)

mXn:圖像塊的尺寸

block_type為指定塊的移動(dòng)方式

distinct:表示圖像不重疊

sliding:表示圖像塊滑動(dòng)。

fun為運(yùn)算函數(shù),其形式為y=fun(x)(2)B=colfilt(A,’indexed’,…)將A作為索引圖像處理colfit函數(shù)為圖像中每個(gè)像素建立一個(gè)列向量,向量的各元素對(duì)應(yīng)該像素的鄰域,如一個(gè)大小為6X5的圖像,對(duì)其按塊大小為2X3進(jìn)行鄰域處理。colfit函數(shù)為圖像建立一個(gè)30列的矩陣,每列有6個(gè)元素。例18:clcclearallI=imread('tire.tif');I1=uint8(colfilt(I,[55],‘sliding’,@mean));%用列處理進(jìn)行滑動(dòng)鄰域操作f=@(x)ones(25,1)*mean(x);%進(jìn)行分塊處理操作的函數(shù)I2=imread('cameraman.tif');I3=uint8(colfilt(double(I2),[55],'distinct',f));%用列處理進(jìn)行滑動(dòng)鄰域操作subplot(221);imshow(I);subplot(222);imshow(I1);subplot(223);imshow(I2);subplot(224);imshow(I3)3、分離塊操作在分離塊操作中,把一個(gè)圖像矩陣分成mXn塊,這些分離塊從圖像的左上角無(wú)重疊地開始覆蓋圖像矩陣。如果這些分離塊不能精確地匹配圖像,那么圖像矩陣將補(bǔ)0填充。blkproc函數(shù)實(shí)現(xiàn)。常用調(diào)用格式:(1)B=blkproc(A,[m

n],fun)[mn]:要處理的分離塊的大小

fun為運(yùn)算函數(shù),其形式為y=fun(x)(2)B=blkproc(A,[m

n],[morder,norder],fun)[morder,norder]重疊的區(qū)域大小例19:I=imread('tire.tif');%該函數(shù)先求矩陣x均值,然后乘以全1矩陣,再取整f=@(x)uint8(round(mean2(x)*ones(size(x))));I2=blkproc(I,[22],f);subplot(121);imshow(I);subplot(122);imshow(I2);分離塊操作例題4.3區(qū)域處理在進(jìn)行圖像處理時(shí),有時(shí)只需對(duì)圖像中的某個(gè)特定區(qū)域進(jìn)行處理,并不需要對(duì)整個(gè)圖像進(jìn)行處理,比如要對(duì)用戶選定的一個(gè)區(qū)域作均值濾波或?qū)Ρ榷仍鰪?qiáng)的操作。

4.3.1指定目標(biāo)區(qū)域

4.3.2區(qū)域?yàn)V波

4.3.3區(qū)域填充處理4.3.1指定目標(biāo)區(qū)域區(qū)域(ROI)處理:只對(duì)部分區(qū)域進(jìn)行濾波處理或其它的操作。可以通過(guò)生成一個(gè)二值掩膜,也就是一個(gè)二值圖像來(lái)實(shí)現(xiàn)區(qū)域選擇,該二值圖像和需要處理的圖像尺寸必須相同,將需要處理的圖像像素設(shè)定為1,其余像素設(shè)定為0.

可以設(shè)定多個(gè)ROI,區(qū)域可以是自然的形狀,比如包含連續(xù)像素的多邊形,也可以是某一個(gè)灰度范圍的所有像素。1、多邊形選擇函數(shù)roipoly該函數(shù)輸出與輸入圖像大小一致的二值圖像BW,選中區(qū)域值為1,其余部分為0.調(diào)用格式:(1)手動(dòng)選擇BW=roipoly或BW=roipoly(I):通過(guò)鼠標(biāo)操作來(lái)設(shè)定多邊形區(qū)域的角度,可以用<Space><Esc><Del>鍵撤銷選擇,<Enter>鍵確認(rèn)選擇。[BW,xi,yi]=roipoly(…):手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)的坐標(biāo)。[x,y,BW,xi,yi]=roipoly(…)手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)在指定坐標(biāo)系下的坐標(biāo)。(2)非手動(dòng)BW=roipoly(I,c,r):用向量c和r指定多邊形各頂點(diǎn)的坐標(biāo)。BW=roipoly(x,y,I,xi,yi):用矢量x和y建立非默認(rèn)的坐標(biāo)系,然后在指定的坐標(biāo)系下選擇向量xi、yi指定的多邊形區(qū)域。手動(dòng)方式選擇區(qū)域例22:clearallI=imread('123.tif');imshow(I);BW=roipoly;imshow(BW)根據(jù)指定的坐標(biāo)選擇區(qū)域例23clearallI=imread('123.tif');subplot(121);imshow(I);c=[222272300270221194];r=[21217512112175];BW=roipoly(I,c,r);subplot(122);imshow(BW)2、roicolor函數(shù)該函數(shù)用于按灰度選擇區(qū)域調(diào)用格式:BW=roicolor(A,low,high)按指定的灰度范圍low,high分割圖像,返回代表掩膜圖像的數(shù)據(jù)矩陣BW。BW=roicolor(A,v):按指定矢量v中的灰度值來(lái)選擇區(qū)域clearallclcloadtreesBW=roicolor(X,10,20);subplot(121);imshow(X,map);subplot(122);imshow(BW)3、poly2mask函數(shù)使用roipoly生成指定圖像的二值圖像掩膜。在沒(méi)有指定圖像的情況下生成掩模,可以使用poly2mask函數(shù)。poly2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論