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

下載本文檔

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

文檔簡介

1、第4章 圖像的運(yùn)算 圖像的代數(shù)運(yùn)算是指多幅圖像的加減乘圖像的代數(shù)運(yùn)算是指多幅圖像的加減乘除運(yùn)算和一般的線性運(yùn)算。除運(yùn)算和一般的線性運(yùn)算。 圖像運(yùn)算要求所有信息都是圖像且其灰圖像運(yùn)算要求所有信息都是圖像且其灰度值都是非負(fù)整數(shù)值。度值都是非負(fù)整數(shù)值。主要內(nèi)容主要內(nèi)容4.1 點(diǎn)運(yùn)算點(diǎn)運(yùn)算4.2圖像的代數(shù)運(yùn)算圖像的代數(shù)運(yùn)算4.3圖像的邏輯運(yùn)算圖像的邏輯運(yùn)算4.4圖像的塊和鄰域處理圖像的塊和鄰域處理4.5圖像的幾何運(yùn)算圖像的幾何運(yùn)算4.1點(diǎn)運(yùn)算點(diǎn)運(yùn)算n用于改變圖像的灰度范圍分布。用于改變圖像的灰度范圍分布。n在對(duì)圖像各像素進(jìn)行處理時(shí),是輸入該在對(duì)圖像各像素進(jìn)行處理時(shí),是輸入該圖像本身會(huì)讀的運(yùn)算方式。圖像

2、本身會(huì)讀的運(yùn)算方式。n對(duì)圖像進(jìn)行點(diǎn)運(yùn)算時(shí)各像素間不發(fā)生關(guān)對(duì)圖像進(jìn)行點(diǎn)運(yùn)算時(shí)各像素間不發(fā)生關(guān)系,各像素的處理是獨(dú)立進(jìn)行的。系,各像素的處理是獨(dú)立進(jìn)行的。典型的點(diǎn)運(yùn)算包括:典型的點(diǎn)運(yùn)算包括:光度學(xué)標(biāo)定:通過對(duì)圖像傳感器的非線性特性作出補(bǔ)償光度學(xué)標(biāo)定:通過對(duì)圖像傳感器的非線性特性作出補(bǔ)償來反映某些物理特性,如光照度和光密度等。來反映某些物理特性,如光照度和光密度等。對(duì)比度增強(qiáng):調(diào)整圖像的亮度和對(duì)比度,以便觀察。對(duì)比度增強(qiáng):調(diào)整圖像的亮度和對(duì)比度,以便觀察。顯示標(biāo)定:利用點(diǎn)運(yùn)算使圖像能夠突出顯示出所有用戶顯示標(biāo)定:利用點(diǎn)運(yùn)算使圖像能夠突出顯示出所有用戶感興趣的特征。感興趣的特征。圖像分割:為圖像添加輪

3、廓線,通常作為后續(xù)運(yùn)算中的圖像分割:為圖像添加輪廓線,通常作為后續(xù)運(yùn)算中的邊界檢測。邊界檢測。圖像裁剪:將輸出圖像的灰度級(jí)限制在可用范圍內(nèi)。圖像裁剪:將輸出圖像的灰度級(jí)限制在可用范圍內(nèi)。例例1:使用灰度變換函數(shù)將一個(gè)灰度圖像進(jìn)行線性點(diǎn)運(yùn)算:使用灰度變換函數(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)原始圖像原始圖像);subplot(122);imshow(rice2);xlabel(b)點(diǎn)運(yùn)算后的圖像點(diǎn)運(yùn)算

4、后的圖像);4.1圖像的代數(shù)運(yùn)算圖像的代數(shù)運(yùn)算4.1.1圖像的加運(yùn)算圖像的加運(yùn)算計(jì)算兩幅圖像矩陣對(duì)應(yīng)像素值的和。計(jì)算兩幅圖像矩陣對(duì)應(yīng)像素值的和。前提是兩幅圖像矩陣的大小和類型相同,前提是兩幅圖像矩陣的大小和類型相同,維數(shù)要相同。維數(shù)要相同。調(diào)用格式:調(diào)用格式:Z=imadd(X,Y)X、Y中的一個(gè)可以是常數(shù)。中的一個(gè)可以是常數(shù)。4.1.2圖像的減法運(yùn)算圖像的減法運(yùn)算 圖像減法稱為差分方法,是一種常用于檢測圖像變化圖像減法稱為差分方法,是一種常用于檢測圖像變化及運(yùn)動(dòng)物體的圖像處理方法??梢允褂脠D像減法來檢及運(yùn)動(dòng)物體的圖像處理方法??梢允褂脠D像減法來檢測一系列相同場景圖像的差異。測一系列相同場景圖

5、像的差異。 調(diào)用格式:調(diào)用格式: Z=imsubtract(X,Y) Z為輸入圖像為輸入圖像X與輸入圖像與輸入圖像Y相減的結(jié)果。減法操作有相減的結(jié)果。減法操作有時(shí)會(huì)導(dǎo)致某些像素值變?yōu)橐粋€(gè)負(fù)數(shù),此時(shí),該函數(shù)自時(shí)會(huì)導(dǎo)致某些像素值變?yōu)橐粋€(gè)負(fù)數(shù),此時(shí),該函數(shù)自動(dòng)將這些負(fù)數(shù)截取為動(dòng)將這些負(fù)數(shù)截取為0,可以調(diào)用,可以調(diào)用imabsdiff函數(shù),將函數(shù),將兩幅圖像相應(yīng)像素差值的絕對(duì)值。兩幅圖像相應(yīng)像素差值的絕對(duì)值。例例1:原始圖像減去背景圖像:原始圖像減去背景圖像I=imread(rice.png);subplot(121);imshow(I);xlabel(a)原始圖像原始圖像);background=i

6、mopen(I,strel(disk,15);Ip=imsubtract(I,background);subplot(122);imshow(Ip,);xlabel(b)去背景效果去背景效果);4.1.3圖像乘法運(yùn)算圖像乘法運(yùn)算 乘法運(yùn)算可以實(shí)現(xiàn)掩膜操作,即屏蔽掉圖像的乘法運(yùn)算可以實(shí)現(xiàn)掩膜操作,即屏蔽掉圖像的某些部分。一幅圖乘以一個(gè)常數(shù)通常被稱為縮某些部分。一幅圖乘以一個(gè)常數(shù)通常被稱為縮放。如果縮放因數(shù)大于放。如果縮放因數(shù)大于1,那么增強(qiáng)圖像的亮,那么增強(qiáng)圖像的亮度,如果縮放因數(shù)小于度,如果縮放因數(shù)小于1則會(huì)使圖像變暗。則會(huì)使圖像變暗。 調(diào)用格式:調(diào)用格式: Z=immultiply(X,Y)

7、 對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。 4.1.4圖像除法運(yùn)算圖像除法運(yùn)算 除法運(yùn)算可用于校正成像設(shè)備的非線性影響,除法運(yùn)算可用于校正成像設(shè)備的非線性影響,可以用來檢測兩幅圖像的區(qū)別,但除法操作得可以用來檢測兩幅圖像的區(qū)別,但除法操作得出的是相應(yīng)像素值的變換比例。出的是相應(yīng)像素值的變換比例。 調(diào)用格式:調(diào)用格式: Z=imdivide(X,Y) 對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。 4.1.5圖像差的絕對(duì)值運(yùn)算圖像差的絕對(duì)值運(yùn)算 除法運(yùn)算可用于校正成像設(shè)備的非線性影響,除法運(yùn)算可用于校正成像設(shè)備的非線性影響,可以用來檢測兩

8、幅圖像的區(qū)別,但除法操作得可以用來檢測兩幅圖像的區(qū)別,但除法操作得出的是相應(yīng)像素值的變換比例。出的是相應(yīng)像素值的變換比例。 調(diào)用格式:調(diào)用格式: Z=imabsdiff(X,Y) 對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。對(duì)兩幅輸入圖像矩陣對(duì)應(yīng)元素進(jìn)行點(diǎn)乘。 4.1.6圖像的補(bǔ)運(yùn)算圖像的補(bǔ)運(yùn)算 適用于各種圖像格式,如果是二進(jìn)制圖像,將適用于各種圖像格式,如果是二進(jìn)制圖像,將對(duì)圖像的每一位求補(bǔ);如果是對(duì)圖像的每一位求補(bǔ);如果是RGB格式的圖像,格式的圖像,用像素值的最大值減去圖像的原始值,得到輸用像素值的最大值減去圖像的原始值,得到輸出圖像相應(yīng)位置的像素值。出圖像相應(yīng)位置的像素值。 調(diào)用格式:調(diào)用格式

9、: IM2=imcomplement(IM)4.1.7圖像的線性運(yùn)算圖像的線性運(yùn)算 調(diào)用格式:調(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用來設(shè)定輸出結(jié)果用來設(shè)定輸出結(jié)果Z的數(shù)據(jù)類型,如的數(shù)據(jù)類型,如uint16或或double。4.1.8圖像的非線性運(yùn)算圖像的非線性運(yùn)算 在線性運(yùn)算中,像素點(diǎn)間值的變化是一種比例關(guān)系。在線性運(yùn)算中,像素點(diǎn)間值的變化是一種比例關(guān)系。在實(shí)際中需要對(duì)某個(gè)圖像特

10、性進(jìn)行放大(縮?。?,在實(shí)際中需要對(duì)某個(gè)圖像特性進(jìn)行放大(縮?。?,特別是在進(jìn)行圖像增強(qiáng)的過程中,為了消除圖像失特別是在進(jìn)行圖像增強(qiáng)的過程中,為了消除圖像失真,非線性運(yùn)算就顯得格外有用。冪運(yùn)算、指數(shù)運(yùn)真,非線性運(yùn)算就顯得格外有用。冪運(yùn)算、指數(shù)運(yùn)算、對(duì)數(shù)運(yùn)算、根運(yùn)算等都是為簡單的非線性映射算、對(duì)數(shù)運(yùn)算、根運(yùn)算等都是為簡單的非線性映射算法。算法。4.1.9圖像的邏輯運(yùn)算圖像的邏輯運(yùn)算 圖像的邏輯運(yùn)算在圖像增強(qiáng)、圖像識(shí)別、圖像圖像的邏輯運(yùn)算在圖像增強(qiáng)、圖像識(shí)別、圖像復(fù)原和區(qū)域分割等領(lǐng)域有著廣泛的應(yīng)用,邏輯復(fù)原和區(qū)域分割等領(lǐng)域有著廣泛的應(yīng)用,邏輯運(yùn)算不僅關(guān)注圖像像素點(diǎn)的數(shù)值變換,而且重運(yùn)算不僅關(guān)注圖像像素

11、點(diǎn)的數(shù)值變換,而且重點(diǎn)在于位變換的情況。點(diǎn)在于位變換的情況。 I = imread(cameraman.tif);J=imread(rice.png);I1=im2bw(I); %轉(zhuǎn)化為二值圖像轉(zhuǎn)化為二值圖像J1=im2bw(J);K1=I1 & J1;%邏輯與運(yùn)算邏輯與運(yùn)算K2=I1 | J1;%邏輯或運(yùn)算邏輯或運(yùn)算K3=I1;%邏輯非運(yùn)算邏輯非運(yùn)算K4=xor(I1,J1);%異或運(yùn)算異或運(yùn)算figure;%依次顯示四幅圖像依次顯示四幅圖像subplot(221);imshow(I); subplot(222);imshow(J);subplot(223);imshow(I1); subp

12、lot(224);imshow(J1);figure;%依次顯示四幅圖像依次顯示四幅圖像subplot(221);imshow(K1); subplot(222);imshow(K2);subplot(223);imshow(K3); subplot(224);imshow(K4);例10 4.2.1圖像調(diào)整大小圖像調(diào)整大小在保持原有圖像形狀的基礎(chǔ)上對(duì)圖像大小進(jìn)行擴(kuò)大或縮小。在保持原有圖像形狀的基礎(chǔ)上對(duì)圖像大小進(jìn)行擴(kuò)大或縮小。 imresize調(diào)用格式:調(diào)用格式:B=imresiz(A,scale) B=imresiz(A,mrows ncols)B=imresiz(A,scale,metho

13、d)scale:縮放比例,縮放比例,1放大。放大。method:指定插值運(yùn)算方法指定插值運(yùn)算方法mrows ncols指定縮放后圖像的行數(shù)和列數(shù)。指定縮放后圖像的行數(shù)和列數(shù)。exa3114.2圖像幾何運(yùn)算圖像幾何運(yùn)算4.2.2圖像旋轉(zhuǎn)圖像旋轉(zhuǎn) 數(shù)字圖像旋轉(zhuǎn)時(shí),各像素的坐標(biāo)將會(huì)發(fā)生變化,是的旋轉(zhuǎn)后不能正常落在數(shù)字圖像旋轉(zhuǎn)時(shí),各像素的坐標(biāo)將會(huì)發(fā)生變化,是的旋轉(zhuǎn)后不能正常落在整數(shù)坐標(biāo)處,需要插值。整數(shù)坐標(biāo)處,需要插值。 imrotate調(diào)用格式:調(diào)用格式:B=imresiz(A,angle) B=imresiz(A,angle,method)B=imresiz(A, angle,method,bbo

14、x)angle:旋轉(zhuǎn)角度;旋轉(zhuǎn)角度;method:指定插值運(yùn)算方法指定插值運(yùn)算方法bbox:有兩個(gè)值有兩個(gè)值crop,loose.crop表示旋轉(zhuǎn)后的圖像都對(duì)剪切中間的部分進(jìn)行增大,放回和原圖大小一致的表示旋轉(zhuǎn)后的圖像都對(duì)剪切中間的部分進(jìn)行增大,放回和原圖大小一致的圖像圖像.loose表示返回旋轉(zhuǎn)后完整大小的圖像,默認(rèn)值。表示返回旋轉(zhuǎn)后完整大小的圖像,默認(rèn)值。exa3144.2.3圖像的裁剪圖像的裁剪 取圖像的一部分取圖像的一部分 imcrop調(diào)用格式:調(diào)用格式:I=imcrop:對(duì)當(dāng)前窗體中的圖片顯示剪切操作狀態(tài),交互式操作,用鼠標(biāo)在圖對(duì)當(dāng)前窗體中的圖片顯示剪切操作狀態(tài),交互式操作,用鼠標(biāo)在

15、圖像中選中感興趣的區(qū)域,然后這個(gè)感興趣的區(qū)域就會(huì)存儲(chǔ)在矩陣像中選中感興趣的區(qū)域,然后這個(gè)感興趣的區(qū)域就會(huì)存儲(chǔ)在矩陣I中。中。 I2=imcrop(I)或或X2=imcrop(X,map)灰度圖像索引圖像剪切灰度圖像索引圖像剪切I2=imcrop(I,rect)或或X2=imcrop(X,map,rect)指定矩形區(qū)域指定矩形區(qū)域rect進(jìn)行剪切操作,進(jìn)行剪切操作,rect規(guī)定了裁剪后的圖像區(qū)域,為一個(gè)四元規(guī)定了裁剪后的圖像區(qū)域,為一個(gè)四元素向量素向量xmin,ymin,width,height,四個(gè)分量表示矩形的長度及寬度。四個(gè)分量表示矩形的長度及寬度。exa313例例13:裁剪:裁剪I =

16、imread(circuit.tif);figure,imshow(I)I0=imcrop;figure,imshow(I0);4.2.4圖像插值圖像插值圖像幾何運(yùn)算在圖像處理領(lǐng)域的應(yīng)用主要是二維插值。圖像幾何運(yùn)算在圖像處理領(lǐng)域的應(yīng)用主要是二維插值。Matlab提供了三種插值方法:提供了三種插值方法:最近鄰插值最近鄰插值(Nearest neighbor interpolation)雙線性插值雙線性插值(Bilinear interpolation)雙三次插值雙三次插值(Bicubic interpolation)1、最近鄰插值、最近鄰插值 只考慮最近像素的值,算法最快,但插值后容易出現(xiàn)馬賽克

17、只考慮最近像素的值,算法最快,但插值后容易出現(xiàn)馬賽克和鋸齒。對(duì)于索引圖像來說,它是唯一可行的方法。和鋸齒。對(duì)于索引圖像來說,它是唯一可行的方法。2、雙線性插值、雙線性插值 在該方法中輸出像素的值是它在輸入圖像中在該方法中輸出像素的值是它在輸入圖像中2X2的領(lǐng)域內(nèi)像的領(lǐng)域內(nèi)像素的加權(quán)平均值,它根據(jù)某像素周圍素的加權(quán)平均值,它根據(jù)某像素周圍4個(gè)像素的灰度值在水平和個(gè)像素的灰度值在水平和垂直兩個(gè)方向上對(duì)其插值。垂直兩個(gè)方向上對(duì)其插值。3、雙三次插值、雙三次插值 該插值的領(lǐng)域大小為該插值的領(lǐng)域大小為4X4,它的插值效果比較好,但相應(yīng)的它的插值效果比較好,但相應(yīng)的計(jì)算量較大。計(jì)算量較大。 這三種插值方法

18、的運(yùn)算方式基本類似。對(duì)于每一種來說,為了確定這三種插值方法的運(yùn)算方式基本類似。對(duì)于每一種來說,為了確定插值像素點(diǎn)的數(shù)值,必須在輸入圖像中查找到與輸出像素對(duì)應(yīng)的點(diǎn)。這插值像素點(diǎn)的數(shù)值,必須在輸入圖像中查找到與輸出像素對(duì)應(yīng)的點(diǎn)。這三種插值方法的區(qū)別在于其三種插值方法的區(qū)別在于其對(duì)象像素點(diǎn)賦值對(duì)象像素點(diǎn)賦值的不同。的不同。(1)最近鄰插值輸出像素的賦值為當(dāng)前點(diǎn)的像素點(diǎn)。最近鄰插值輸出像素的賦值為當(dāng)前點(diǎn)的像素點(diǎn)。(2)雙線性插值輸出像素的賦值為雙線性插值輸出像素的賦值為2X2矩陣所包含的有效點(diǎn)的加權(quán)平均值。矩陣所包含的有效點(diǎn)的加權(quán)平均值。(3)雙三次插值輸出像素的賦值為雙三次插值輸出像素的賦值為4X4

19、矩陣所包含的有效點(diǎn)的加權(quán)平均值。矩陣所包含的有效點(diǎn)的加權(quán)平均值。在在matlab圖像工具箱中提供了圖像工具箱中提供了interp2函數(shù)來實(shí)現(xiàn)插值運(yùn)算。函數(shù)來實(shí)現(xiàn)插值運(yùn)算。調(diào)用格式:調(diào)用格式:ZI=interp2(X,Y,Z,XI,YI,method)X,Y是圖像是圖像Z的橫坐標(biāo)和縱坐標(biāo)向量;的橫坐標(biāo)和縱坐標(biāo)向量;XI,YI是插值后的橫坐標(biāo)和縱坐標(biāo)向量;是插值后的橫坐標(biāo)和縱坐標(biāo)向量;method是插值方法,可以為:是插值方法,可以為:(1)nearest:最近鄰插值。:最近鄰插值。(2)liner:雙線性插值(默認(rèn)項(xiàng))。雙線性插值(默認(rèn)項(xiàng))。(3)spline:三次樣條插值。三次樣條插值。(4)

20、cubic:立方插值。立方插值。I=imread(tire.tif);m,n=size(I);x=1:n;y=1:m;x,y=meshgrid(x,y);%生成網(wǎng)格矩陣生成網(wǎng)格矩陣x1=1:4:n;y1=1:4:m;x1,y1=meshgrid(x1,y1);%生成網(wǎng)格矩陣生成網(wǎng)格矩陣I1=interp2(x,y,I,x1,y1,nearest);%對(duì)圖像進(jìn)行最近鄰插值對(duì)圖像進(jìn)行最近鄰插值subplot(121);imshow(I);subplot(122);imshow(I1);4.2.5鄰域與塊處理鄰域與塊處理鄰域運(yùn)算:鄰域運(yùn)算:在對(duì)圖像進(jìn)行處理時(shí),不但要輸入該像素本身的灰度,還要以運(yùn)算在

21、對(duì)圖像進(jìn)行處理時(shí),不但要輸入該像素本身的灰度,還要以運(yùn)算的方式輸入以該像素為中心的某局部區(qū)域(即鄰域)中的一些像素的方式輸入以該像素為中心的某局部區(qū)域(即鄰域)中的一些像素的灰度,這種圖像運(yùn)算稱為鄰域運(yùn)算。由于鄰域運(yùn)算能將像素周圍的灰度,這種圖像運(yùn)算稱為鄰域運(yùn)算。由于鄰域運(yùn)算能將像素周圍鄰域內(nèi)的像素狀態(tài)反映在處理結(jié)果中,因而便于實(shí)現(xiàn)多種復(fù)雜圖像鄰域內(nèi)的像素狀態(tài)反映在處理結(jié)果中,因而便于實(shí)現(xiàn)多種復(fù)雜圖像的處理。的處理。1、滑動(dòng)鄰域操作、滑動(dòng)鄰域操作滑動(dòng)鄰域操作每次在一個(gè)像素上進(jìn)行。輸出圖像的每個(gè)像素值都是滑動(dòng)鄰域操作每次在一個(gè)像素上進(jìn)行。輸出圖像的每個(gè)像素值都是輸入圖像在這個(gè)像素的鄰域內(nèi)進(jìn)行指定

22、的運(yùn)算得到的像素值。鄰域輸入圖像在這個(gè)像素的鄰域內(nèi)進(jìn)行指定的運(yùn)算得到的像素值。鄰域是一個(gè)矩形塊,在圖像矩陣中從一個(gè)像素移到另一個(gè)像素的時(shí)候,是一個(gè)矩形塊,在圖像矩陣中從一個(gè)像素移到另一個(gè)像素的時(shí)候,鄰域塊向同一個(gè)方向滑動(dòng)。鄰域塊向同一個(gè)方向滑動(dòng)。通常鄰域是指一個(gè)形狀遠(yuǎn)遠(yuǎn)小于圖像尺寸的規(guī)則的像素塊,例如通常鄰域是指一個(gè)形狀遠(yuǎn)遠(yuǎn)小于圖像尺寸的規(guī)則的像素塊,例如2X2、3X3、4X4的正方形,或用近似表示圓及橢圓等形狀的多邊形。的正方形,或用近似表示圓及橢圓等形狀的多邊形。 如圖顯示了一個(gè)如圖顯示了一個(gè)2X3的鄰的鄰域塊在一個(gè)域塊在一個(gè)6X5的矩陣中的矩陣中滑動(dòng)的情況,其中心像素滑動(dòng)的情況,其中心像

23、素用黑點(diǎn)標(biāo)出。用黑點(diǎn)標(biāo)出。中心像素是輸入圖像中要中心像素是輸入圖像中要處理的像素。如果鄰域的處理的像素。如果鄰域的行數(shù)和列數(shù)都為奇數(shù),則行數(shù)和列數(shù)都為奇數(shù),則中心像素位于鄰域的中心。中心像素位于鄰域的中心。如果鄰域的行數(shù)和列數(shù)中如果鄰域的行數(shù)和列數(shù)中有一個(gè)不為奇數(shù),則中心有一個(gè)不為奇數(shù),則中心像素為鄰域中心偏左或偏像素為鄰域中心偏左或偏上的像素。上的像素。 對(duì)于任何一個(gè)鄰域矩陣,其中心像素的坐標(biāo)是:對(duì)于任何一個(gè)鄰域矩陣,其中心像素的坐標(biāo)是:Floor(m n+1)/2),如對(duì)于一個(gè)如對(duì)于一個(gè)2X2的鄰域,其中心像素為左上角的像素。的鄰域,其中心像素為左上角的像素。滑動(dòng)鄰域操作的一般算法如下:滑

24、動(dòng)鄰域操作的一般算法如下:(1)選擇一個(gè)像素;選擇一個(gè)像素;(2)確定這個(gè)像素的鄰域確定這個(gè)像素的鄰域(3)對(duì)鄰域的像素值應(yīng)用指定的函數(shù)進(jìn)行計(jì)算,該函數(shù)要返回標(biāo)量對(duì)鄰域的像素值應(yīng)用指定的函數(shù)進(jìn)行計(jì)算,該函數(shù)要返回標(biāo)量(4)返回輸出圖像的像素值,其位置為輸入圖像鄰域中的中心位置;返回輸出圖像的像素值,其位置為輸入圖像鄰域中的中心位置;(5)對(duì)圖像中的每個(gè)像素重復(fù)上面對(duì)圖像中的每個(gè)像素重復(fù)上面4個(gè)操作。個(gè)操作。 其中指定的函數(shù)可以是求取像素平均值的操作,首先將鄰域內(nèi)的像素其中指定的函數(shù)可以是求取像素平均值的操作,首先將鄰域內(nèi)的像素值加起來,然后除以鄰域內(nèi)像素的個(gè)數(shù),最后將返回的值作為輸出圖像的值加

25、起來,然后除以鄰域內(nèi)像素的個(gè)數(shù),最后將返回的值作為輸出圖像的值。值。 當(dāng)中心像素位于圖像邊緣時(shí),則對(duì)應(yīng)鄰域有可能包含部分不屬于圖像當(dāng)中心像素位于圖像邊緣時(shí),則對(duì)應(yīng)鄰域有可能包含部分不屬于圖像的像素,這時(shí)通常用多個(gè)的像素,這時(shí)通常用多個(gè)0來填充圖形邊界。來填充圖形邊界。在在matlab中,可以用中,可以用nlfilter函數(shù)來進(jìn)行滑動(dòng)鄰域操作函數(shù)來進(jìn)行滑動(dòng)鄰域操作調(diào)用格式:調(diào)用格式:B=nlfilter(A,m n,fun)其中,其中,A是要處理的圖像是要處理的圖像m n規(guī)定了鄰域塊的大??;規(guī)定了鄰域塊的大??;fun是指定的函數(shù)。是指定的函數(shù)。例例17:滑動(dòng)鄰域操作實(shí)例:滑動(dòng)鄰域操作實(shí)例I=im

26、read(tire.tif);f=(x)max(x(:);%求最大值函數(shù)求最大值函數(shù)I2=nlfilter(I,3 3,f);%滑動(dòng)鄰域操作求鄰域內(nèi)的最大值滑動(dòng)鄰域操作求鄰域內(nèi)的最大值subplot(121);imshow(I);subplot(122);imshow(I2);在這個(gè)程序中,首先生成一個(gè)求最大值的內(nèi)斂函數(shù),然后調(diào)用滑動(dòng)領(lǐng)域在這個(gè)程序中,首先生成一個(gè)求最大值的內(nèi)斂函數(shù),然后調(diào)用滑動(dòng)領(lǐng)域操作函數(shù)求鄰域內(nèi)最大值,這樣每個(gè)像素的值都為操作函數(shù)求鄰域內(nèi)最大值,這樣每個(gè)像素的值都為3X3鄰域內(nèi)的最大值。鄰域內(nèi)的最大值。2、colfilt函數(shù)函數(shù)實(shí)現(xiàn)快速的鄰域操作。當(dāng)需要對(duì)圖像的局部實(shí)現(xiàn)運(yùn)算

27、時(shí),可以使用該函數(shù)。實(shí)現(xiàn)快速的鄰域操作。當(dāng)需要對(duì)圖像的局部實(shí)現(xiàn)運(yùn)算時(shí),可以使用該函數(shù)。常用調(diào)用格式:常用調(diào)用格式:(1)B=colfilt(A,m n,block_type,fun) mXn:圖像塊的尺寸圖像塊的尺寸 block_ type為指定塊的移動(dòng)方式為指定塊的移動(dòng)方式 distinct:表示圖像不重疊表示圖像不重疊 sliding:表示圖像塊滑動(dòng)。表示圖像塊滑動(dòng)。 fun為運(yùn)算函數(shù),其形式為為運(yùn)算函數(shù),其形式為y=fun(x)(2)B=colfilt(A,indexed,)將將A作為索引圖像處理作為索引圖像處理colfit函數(shù)為圖像中每個(gè)像素建立一個(gè)列向量,向量的各元素對(duì)應(yīng)該函數(shù)為圖像

28、中每個(gè)像素建立一個(gè)列向量,向量的各元素對(duì)應(yīng)該像素的鄰域,如一個(gè)大小為像素的鄰域,如一個(gè)大小為6X5的圖像,對(duì)其按塊大小為的圖像,對(duì)其按塊大小為2X3進(jìn)行鄰進(jìn)行鄰域處理。域處理。 colfit函數(shù)為圖像建立一個(gè)函數(shù)為圖像建立一個(gè)30列的矩陣,每列有列的矩陣,每列有6個(gè)元素。個(gè)元素。例例18:clcclear allI=imread(tire.tif);I1=uint8(colfilt(I,5 5,sliding,mean);%用列處理進(jìn)行滑動(dòng)鄰用列處理進(jìn)行滑動(dòng)鄰域操作域操作f=(x)ones(25,1)*mean(x);%進(jìn)行分塊處理操作的函數(shù)進(jìn)行分塊處理操作的函數(shù)I2=imread(camer

29、aman.tif);I3=uint8(colfilt(double(I2),5 5,distinct,f);%用列處理進(jìn)行滑動(dòng)用列處理進(jìn)行滑動(dòng)鄰域操作鄰域操作subplot(221);imshow(I);subplot(222);imshow(I1);subplot(223);imshow(I2);subplot(224);imshow(I3)3、分離塊操作、分離塊操作 在分離塊操作中,把一個(gè)圖像矩陣分成在分離塊操作中,把一個(gè)圖像矩陣分成mXn塊,這些分離塊從圖像的塊,這些分離塊從圖像的左上角無重疊地開始覆蓋圖像矩陣。如果這些分離塊不能精確地匹配圖像,左上角無重疊地開始覆蓋圖像矩陣。如果這些分

30、離塊不能精確地匹配圖像,那么圖像矩陣將補(bǔ)那么圖像矩陣將補(bǔ)0填充。填充。blkproc函數(shù)實(shí)現(xiàn)。函數(shù)實(shí)現(xiàn)。常用調(diào)用格式:常用調(diào)用格式:(1)B=blkproc(A,m n,fun) m n:要處理的分離塊的大小要處理的分離塊的大小 fun為運(yùn)算函數(shù),其形式為為運(yùn)算函數(shù),其形式為y=fun(x)(2)B=blkproc(A,m n,morder,norder,fun)morder,norder重疊的區(qū)域大小重疊的區(qū)域大小例例19:I=imread(tire.tif);%該函數(shù)先求矩陣該函數(shù)先求矩陣x均值,然后乘以全均值,然后乘以全1矩陣,再取整矩陣,再取整f=(x)uint8(round(mean

31、2(x)*ones(size(x);I2=blkproc(I,2 2,f);subplot(121);imshow(I);subplot(122);imshow(I2);分離塊操作例題分離塊操作例題4.3區(qū)域處理區(qū)域處理 在進(jìn)行圖像處理時(shí),有時(shí)只需對(duì)圖像中的在進(jìn)行圖像處理時(shí),有時(shí)只需對(duì)圖像中的某個(gè)特定區(qū)域進(jìn)行處理,并不需要對(duì)整個(gè)圖像某個(gè)特定區(qū)域進(jìn)行處理,并不需要對(duì)整個(gè)圖像進(jìn)行處理,比如要對(duì)用戶選定的一個(gè)區(qū)域作均進(jìn)行處理,比如要對(duì)用戶選定的一個(gè)區(qū)域作均值濾波或?qū)Ρ榷仍鰪?qiáng)的操作。值濾波或?qū)Ρ榷仍鰪?qiáng)的操作。 4.3.1 指定目標(biāo)區(qū)域指定目標(biāo)區(qū)域 4.3.2區(qū)域?yàn)V波區(qū)域?yàn)V波 4.3.3區(qū)域填充處理區(qū)域

32、填充處理4.3.1 指定目標(biāo)區(qū)域指定目標(biāo)區(qū)域 區(qū)域區(qū)域(ROI)處理:只對(duì)部分區(qū)域進(jìn)行濾波處理或其它的操作。可以處理:只對(duì)部分區(qū)域進(jìn)行濾波處理或其它的操作。可以通過生成一個(gè)二值掩膜,也就是一個(gè)二值圖像來實(shí)現(xiàn)區(qū)域選擇,該二值通過生成一個(gè)二值掩膜,也就是一個(gè)二值圖像來實(shí)現(xiàn)區(qū)域選擇,該二值圖像和需要處理的圖像尺寸必須相同,將需要處理的圖像像素設(shè)定為圖像和需要處理的圖像尺寸必須相同,將需要處理的圖像像素設(shè)定為1,其余像素設(shè)定為其余像素設(shè)定為0. 可以設(shè)定多個(gè)可以設(shè)定多個(gè)ROI,區(qū)域可以是自然的形狀,比如包含連續(xù)像素的,區(qū)域可以是自然的形狀,比如包含連續(xù)像素的多邊形,也可以是某一個(gè)灰度范圍的所有像素。多

33、邊形,也可以是某一個(gè)灰度范圍的所有像素。1、多邊形選擇函數(shù)、多邊形選擇函數(shù)roipoly該函數(shù)輸出與輸入圖像大小一致的二值圖像該函數(shù)輸出與輸入圖像大小一致的二值圖像BW,選中區(qū)域值為,選中區(qū)域值為1,其余部分為其余部分為0.調(diào)用格式:調(diào)用格式:(1)手動(dòng)選擇手動(dòng)選擇BW=roipoly或或BW=roipoly(I):通過鼠標(biāo)操作來設(shè)定多邊形區(qū)域的角度,通過鼠標(biāo)操作來設(shè)定多邊形區(qū)域的角度,可以用可以用鍵撤銷選擇,鍵撤銷選擇,鍵確認(rèn)選擇。鍵確認(rèn)選擇。BW,xi,yi=roipoly():手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)的坐標(biāo)。手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)的坐標(biāo)。x,y,BW,xi,yi=r

34、oipoly()手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)在指手動(dòng)選擇多邊形區(qū)域,返回多邊形頂點(diǎn)在指定坐標(biāo)系下的坐標(biāo)。定坐標(biāo)系下的坐標(biāo)。(2)非手動(dòng)非手動(dòng)BW=roipoly(I,c,r):用向量用向量c和和r指定多邊形各頂點(diǎn)的坐標(biāo)。指定多邊形各頂點(diǎn)的坐標(biāo)。BW=roipoly(x,y,I,xi,yi):用矢量用矢量x和和y建立非默認(rèn)的坐標(biāo)系,然后在指定建立非默認(rèn)的坐標(biāo)系,然后在指定的坐標(biāo)系下選擇向量的坐標(biāo)系下選擇向量xi、yi指定的多邊形區(qū)域。指定的多邊形區(qū)域。手動(dòng)方式選擇區(qū)域手動(dòng)方式選擇區(qū)域例例22:clear allI=imread(123.tif);imshow(I);BW=roipoly;i

35、mshow(BW)根據(jù)指定的坐標(biāo)選擇區(qū)域根據(jù)指定的坐標(biāo)選擇區(qū)域例例23clear allI=imread(123.tif);subplot(121);imshow(I);c=222 272 300 270 221 194;r=21 21 75 121 121 75;BW=roipoly(I,c,r);subplot(122);imshow(BW)2、roicolor函數(shù)函數(shù)該函數(shù)用于按灰度選擇區(qū)域該函數(shù)用于按灰度選擇區(qū)域調(diào)用格式:調(diào)用格式:BW=roicolor(A,low,high)按指定的灰度范圍按指定的灰度范圍low,high分割圖像,返回代表掩膜圖像的數(shù)據(jù)矩陣分割圖像,返回代表掩膜圖像的數(shù)據(jù)矩陣BW。BW=roicolor(A,v):按指定矢量按指定矢量v中的灰度值來選擇區(qū)域中的灰度值來選擇區(qū)域clear allclcload treesBW=roicolor(X,10,20);subplot(121);imshow(X,map);subplot(122);imshow(BW)3、poly2mask函數(shù)函數(shù)使用使用roipoly生成指定圖像的二

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論