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

下載本文檔

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

文檔簡介

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

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

3、征。感興趣的特征。 圖像分割:為圖像添加輪廓線,通常作為后續(xù)運算中的圖像分割:為圖像添加輪廓線,通常作為后續(xù)運算中的 邊界檢測。邊界檢測。 圖像裁剪:將輸出圖像的灰度級限制在可用范圍內(nèi)。圖像裁剪:將輸出圖像的灰度級限制在可用范圍內(nèi)。 例例1:使用灰度變換函數(shù)將一個灰度圖像進行線性點運算:使用灰度變換函數(shù)將一個灰度圖像進行線性點運算 clc rice=imread(rice.png); J=double(rice); I=J*0.45+55; rice2=uint8(I); subplot(121);imshow(rice); xlabel(a)原始圖像原始圖像); subplot(122);i

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

5、物體的圖像處理方法??梢允褂脠D像減法來檢 測一系列相同場景圖像的差異。測一系列相同場景圖像的差異。 調(diào)用格式:調(diào)用格式: Z=imsubtract(X,Y) Z為輸入圖像為輸入圖像X與輸入圖像與輸入圖像Y相減的結(jié)果。減法操作有相減的結(jié)果。減法操作有 時會導(dǎo)致某些像素值變?yōu)橐粋€負數(shù),此時,該函數(shù)自時會導(dǎo)致某些像素值變?yōu)橐粋€負數(shù),此時,該函數(shù)自 動將這些負數(shù)截取為動將這些負數(shù)截取為0,可以調(diào)用,可以調(diào)用imabsdiff函數(shù),將函數(shù),將 兩幅圖像相應(yīng)像素差值的絕對值。兩幅圖像相應(yīng)像素差值的絕對值。 例例1:原始圖像減去背景圖像:原始圖像減去背景圖像 I=imread(rice.png); subp

6、lot(121);imshow(I); xlabel(a)原始圖像原始圖像); background=imopen(I,strel(disk,15); Ip=imsubtract(I,background); subplot(122);imshow(Ip,); xlabel(b)去背景效果去背景效果); 4.1.3圖像乘法運算圖像乘法運算 乘法運算可以實現(xiàn)掩膜操作,即屏蔽掉圖像的乘法運算可以實現(xiàn)掩膜操作,即屏蔽掉圖像的 某些部分。一幅圖乘以一個常數(shù)通常被稱為縮某些部分。一幅圖乘以一個常數(shù)通常被稱為縮 放。如果縮放因數(shù)大于放。如果縮放因數(shù)大于1,那么增強圖像的亮,那么增強圖像的亮 度,如果縮放因

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

8、對值運算圖像差的絕對值運算 除法運算可用于校正成像設(shè)備的非線性影響,除法運算可用于校正成像設(shè)備的非線性影響, 可以用來檢測兩幅圖像的區(qū)別,但除法操作得可以用來檢測兩幅圖像的區(qū)別,但除法操作得 出的是相應(yīng)像素值的變換比例。出的是相應(yīng)像素值的變換比例。 調(diào)用格式:調(diào)用格式: Z=imabsdiff(X,Y) 對兩幅輸入圖像矩陣對應(yīng)元素進行點乘。對兩幅輸入圖像矩陣對應(yīng)元素進行點乘。 4.1.6圖像的補運算圖像的補運算 適用于各種圖像格式,如果是二進制圖像,將適用于各種圖像格式,如果是二進制圖像,將 對圖像的每一位求補;如果是對圖像的每一位求補;如果是RGB格式的圖像,格式的圖像, 用像素值的最大值減

9、去圖像的原始值,得到輸用像素值的最大值減去圖像的原始值,得到輸 出圖像相應(yīng)位置的像素值。出圖像相應(yīng)位置的像素值。 調(diào)用格式:調(diào)用格式: IM2=imcomplement(IM) 4.1.7圖像的線性運算圖像的線性運算 調(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圖像

10、的非線性運算圖像的非線性運算 在線性運算中,像素點間值的變化是一種比例關(guān)系。在線性運算中,像素點間值的變化是一種比例關(guān)系。 在實際中需要對某個圖像特性進行放大(縮?。?,在實際中需要對某個圖像特性進行放大(縮?。?, 特別是在進行圖像增強的過程中,為了消除圖像失特別是在進行圖像增強的過程中,為了消除圖像失 真,非線性運算就顯得格外有用。冪運算、指數(shù)運真,非線性運算就顯得格外有用。冪運算、指數(shù)運 算、對數(shù)運算、根運算等都是為簡單的非線性映射算、對數(shù)運算、根運算等都是為簡單的非線性映射 算法。算法。 4.1.9圖像的邏輯運算圖像的邏輯運算 圖像的邏輯運算在圖像增強、圖像識別、圖像圖像的邏輯運算在圖像增

11、強、圖像識別、圖像 復(fù)原和區(qū)域分割等領(lǐng)域有著廣泛的應(yīng)用,邏輯復(fù)原和區(qū)域分割等領(lǐng)域有著廣泛的應(yīng)用,邏輯 運算不僅關(guān)注圖像像素點的數(shù)值變換,而且重運算不僅關(guān)注圖像像素點的數(shù)值變換,而且重 點在于位變換的情況。點在于位變換的情況。 I = imread(cameraman.tif); J=imread(rice.png); I1=im2bw(I); %轉(zhuǎn)化為二值圖像轉(zhuǎn)化為二值圖像 J1=im2bw(J); K1=I1 %邏輯與運算邏輯與運算 K2=I1 | J1;%邏輯或運算邏輯或運算 K3=I1;%邏輯非運算邏輯非運算 K4=xor(I1,J1);%異或運算異或運算 figure;%依次顯示四幅圖

12、像依次顯示四幅圖像 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); 例10 4.2.1圖像調(diào)整大小圖像調(diào)整大小 在保持原有圖像形狀的基礎(chǔ)上對圖像大小進行擴大或縮小。在保持原有圖像形狀的基礎(chǔ)上對圖像大小進行擴大

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

14、,需要插值。 imrotate 調(diào)用格式:調(diào)用格式: B=imresiz(A,angle) B=imresiz(A,angle,method) B=imresiz(A, angle,method,bbox) angle:旋轉(zhuǎn)角度;旋轉(zhuǎn)角度; method:指定插值運算方法指定插值運算方法 bbox:有兩個值有兩個值crop,loose. crop表示旋轉(zhuǎn)后的圖像都對剪切中間的部分進行增大,放回和原圖大小一致的表示旋轉(zhuǎn)后的圖像都對剪切中間的部分進行增大,放回和原圖大小一致的 圖像圖像. loose表示返回旋轉(zhuǎn)后完整大小的圖像,默認值。表示返回旋轉(zhuǎn)后完整大小的圖像,默認值。exa314 4.2.3

15、圖像的裁剪圖像的裁剪 取圖像的一部分取圖像的一部分 imcrop 調(diào)用格式:調(diào)用格式: I=imcrop:對當前窗體中的圖片顯示剪切操作狀態(tài),交互式操作,用鼠標在圖對當前窗體中的圖片顯示剪切操作狀態(tài),交互式操作,用鼠標在圖 像中選中感興趣的區(qū)域,然后這個感興趣的區(qū)域就會存儲在矩陣像中選中感興趣的區(qū)域,然后這個感興趣的區(qū)域就會存儲在矩陣I中。中。 I2=imcrop(I)或或X2=imcrop(X,map)灰度圖像索引圖像剪切灰度圖像索引圖像剪切 I2=imcrop(I,rect)或或X2=imcrop(X,map,rect) 指定矩形區(qū)域指定矩形區(qū)域rect進行剪切操作,進行剪切操作,rect

16、規(guī)定了裁剪后的圖像區(qū)域,為一個四元規(guī)定了裁剪后的圖像區(qū)域,為一個四元 素向量素向量xmin,ymin,width,height,四個分量表示矩形的長度及寬度。四個分量表示矩形的長度及寬度。 exa313 例例13:裁剪:裁剪 I = imread(circuit.tif); figure,imshow(I) I0=imcrop; figure,imshow(I0); 4.2.4圖像插值圖像插值 圖像幾何運算在圖像處理領(lǐng)域的應(yīng)用主要是二維插值。圖像幾何運算在圖像處理領(lǐng)域的應(yīng)用主要是二維插值。 Matlab提供了三種插值方法:提供了三種插值方法: 最近鄰插值最近鄰插值(Nearest neighb

17、or interpolation) 雙線性插值雙線性插值(Bilinear interpolation) 雙三次插值雙三次插值(Bicubic interpolation) 1、最近鄰插值、最近鄰插值 只考慮最近像素的值,算法最快,但插值后容易出現(xiàn)馬賽克只考慮最近像素的值,算法最快,但插值后容易出現(xiàn)馬賽克 和鋸齒。對于索引圖像來說,它是唯一可行的方法。和鋸齒。對于索引圖像來說,它是唯一可行的方法。 2、雙線性插值、雙線性插值 在該方法中輸出像素的值是它在輸入圖像中在該方法中輸出像素的值是它在輸入圖像中2X2的領(lǐng)域內(nèi)像的領(lǐng)域內(nèi)像 素的加權(quán)平均值,它根據(jù)某像素周圍素的加權(quán)平均值,它根據(jù)某像素周圍4

18、個像素的灰度值在水平和個像素的灰度值在水平和 垂直兩個方向上對其插值。垂直兩個方向上對其插值。 3、雙三次插值、雙三次插值 該插值的領(lǐng)域大小為該插值的領(lǐng)域大小為4X4,它的插值效果比較好,但相應(yīng)的它的插值效果比較好,但相應(yīng)的 計算量較大。計算量較大。 這三種插值方法的運算方式基本類似。對于每一種來說,為了確定這三種插值方法的運算方式基本類似。對于每一種來說,為了確定 插值像素點的數(shù)值,必須在輸入圖像中查找到與輸出像素對應(yīng)的點。這插值像素點的數(shù)值,必須在輸入圖像中查找到與輸出像素對應(yīng)的點。這 三種插值方法的區(qū)別在于其三種插值方法的區(qū)別在于其對象像素點賦值對象像素點賦值的不同。的不同。 (1)最近

19、鄰插值輸出像素的賦值為當前點的像素點。最近鄰插值輸出像素的賦值為當前點的像素點。 (2)雙線性插值輸出像素的賦值為雙線性插值輸出像素的賦值為2X2矩陣所包含的有效點的加權(quán)平均值。矩陣所包含的有效點的加權(quán)平均值。 (3)雙三次插值輸出像素的賦值為雙三次插值輸出像素的賦值為4X4矩陣所包含的有效點的加權(quán)平均值。矩陣所包含的有效點的加權(quán)平均值。 在在matlab圖像工具箱中提供了圖像工具箱中提供了interp2函數(shù)來實現(xiàn)插值運算。函數(shù)來實現(xiàn)插值運算。 調(diào)用格式:調(diào)用格式: ZI=interp2(X,Y,Z,XI,YI,method) X,Y是圖像是圖像Z的橫坐標和縱坐標向量;的橫坐標和縱坐標向量;

20、XI,YI是插值后的橫坐標和縱坐標向量;是插值后的橫坐標和縱坐標向量; method是插值方法,可以為:是插值方法,可以為: (1)nearest:最近鄰插值。:最近鄰插值。 (2)liner:雙線性插值(默認項)。雙線性插值(默認項)。 (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)格矩陣生成網(wǎng)格矩陣 x1=1:4:n;y1=1:4:m; x1,y1=meshgrid(x1,y1);%生成網(wǎng)格矩陣生成網(wǎng)格矩陣 I1

21、=interp2(x,y,I,x1,y1,nearest);%對圖像進行最近鄰插值對圖像進行最近鄰插值 subplot(121);imshow(I); subplot(122);imshow(I1); 4.2.5鄰域與塊處理鄰域與塊處理 鄰域運算:鄰域運算: 在對圖像進行處理時,不但要輸入該像素本身的灰度,還要以運算在對圖像進行處理時,不但要輸入該像素本身的灰度,還要以運算 的方式輸入以該像素為中心的某局部區(qū)域(即鄰域)中的一些像素的方式輸入以該像素為中心的某局部區(qū)域(即鄰域)中的一些像素 的灰度,這種圖像運算稱為鄰域運算。由于鄰域運算能將像素周圍的灰度,這種圖像運算稱為鄰域運算。由于鄰域運算

22、能將像素周圍 鄰域內(nèi)的像素狀態(tài)反映在處理結(jié)果中,因而便于實現(xiàn)多種復(fù)雜圖像鄰域內(nèi)的像素狀態(tài)反映在處理結(jié)果中,因而便于實現(xiàn)多種復(fù)雜圖像 的處理。的處理。 1、滑動鄰域操作、滑動鄰域操作 滑動鄰域操作每次在一個像素上進行。輸出圖像的每個像素值都是滑動鄰域操作每次在一個像素上進行。輸出圖像的每個像素值都是 輸入圖像在這個像素的鄰域內(nèi)進行指定的運算得到的像素值。鄰域輸入圖像在這個像素的鄰域內(nèi)進行指定的運算得到的像素值。鄰域 是一個矩形塊,在圖像矩陣中從一個像素移到另一個像素的時候,是一個矩形塊,在圖像矩陣中從一個像素移到另一個像素的時候, 鄰域塊向同一個方向滑動。鄰域塊向同一個方向滑動。 通常鄰域是指一

23、個形狀遠遠小于圖像尺寸的規(guī)則的像素塊,例如通常鄰域是指一個形狀遠遠小于圖像尺寸的規(guī)則的像素塊,例如 2X2、3X3、4X4的正方形,或用近似表示圓及橢圓等形狀的多邊形。的正方形,或用近似表示圓及橢圓等形狀的多邊形。 如圖顯示了一個如圖顯示了一個2X3的鄰的鄰 域塊在一個域塊在一個6X5的矩陣中的矩陣中 滑動的情況,其中心像素滑動的情況,其中心像素 用黑點標出。用黑點標出。 中心像素是輸入圖像中要中心像素是輸入圖像中要 處理的像素。如果鄰域的處理的像素。如果鄰域的 行數(shù)和列數(shù)都為奇數(shù),則行數(shù)和列數(shù)都為奇數(shù),則 中心像素位于鄰域的中心。中心像素位于鄰域的中心。 如果鄰域的行數(shù)和列數(shù)中如果鄰域的行數(shù)

24、和列數(shù)中 有一個不為奇數(shù),則中心有一個不為奇數(shù),則中心 像素為鄰域中心偏左或偏像素為鄰域中心偏左或偏 上的像素。上的像素。 對于任何一個鄰域矩陣,其中心像素的坐標是:對于任何一個鄰域矩陣,其中心像素的坐標是:Floor(m n+1)/2),如對于一個如對于一個2X2的鄰域,其中心像素為左上角的像素。的鄰域,其中心像素為左上角的像素。 滑動鄰域操作的一般算法如下:滑動鄰域操作的一般算法如下: (1)選擇一個像素;選擇一個像素; (2)確定這個像素的鄰域確定這個像素的鄰域 (3)對鄰域的像素值應(yīng)用指定的函數(shù)進行計算,該函數(shù)要返回標量對鄰域的像素值應(yīng)用指定的函數(shù)進行計算,該函數(shù)要返回標量 (4)返回

25、輸出圖像的像素值,其位置為輸入圖像鄰域中的中心位置;返回輸出圖像的像素值,其位置為輸入圖像鄰域中的中心位置; (5)對圖像中的每個像素重復(fù)上面對圖像中的每個像素重復(fù)上面4個操作。個操作。 其中指定的函數(shù)可以是求取像素平均值的操作,首先將鄰域內(nèi)的像素其中指定的函數(shù)可以是求取像素平均值的操作,首先將鄰域內(nèi)的像素 值加起來,然后除以鄰域內(nèi)像素的個數(shù),最后將返回的值作為輸出圖像的值加起來,然后除以鄰域內(nèi)像素的個數(shù),最后將返回的值作為輸出圖像的 值。值。 當中心像素位于圖像邊緣時,則對應(yīng)鄰域有可能包含部分不屬于圖像當中心像素位于圖像邊緣時,則對應(yīng)鄰域有可能包含部分不屬于圖像 的像素,這時通常用多個的像素

26、,這時通常用多個0來填充圖形邊界。來填充圖形邊界。 在在matlab中,可以用中,可以用nlfilter函數(shù)來進行滑動鄰域操作函數(shù)來進行滑動鄰域操作 調(diào)用格式:調(diào)用格式: B=nlfilter(A,m n,fun) 其中,其中,A是要處理的圖像是要處理的圖像 m n規(guī)定了鄰域塊的大??;規(guī)定了鄰域塊的大小; fun是指定的函數(shù)。是指定的函數(shù)。 例例17:滑動鄰域操作實例:滑動鄰域操作實例 I=imread(tire.tif); f=(x)max(x(:);%求最大值函數(shù)求最大值函數(shù) I2=nlfilter(I,3 3,f);%滑動鄰域操作求鄰域內(nèi)的最大值滑動鄰域操作求鄰域內(nèi)的最大值 subplo

27、t(121);imshow(I); subplot(122);imshow(I2); 在這個程序中,首先生成一個求最大值的內(nèi)斂函數(shù),然后調(diào)用滑動領(lǐng)域在這個程序中,首先生成一個求最大值的內(nèi)斂函數(shù),然后調(diào)用滑動領(lǐng)域 操作函數(shù)求鄰域內(nèi)最大值,這樣每個像素的值都為操作函數(shù)求鄰域內(nèi)最大值,這樣每個像素的值都為3X3鄰域內(nèi)的最大值。鄰域內(nèi)的最大值。 2、colfilt函數(shù)函數(shù) 實現(xiàn)快速的鄰域操作。當需要對圖像的局部實現(xiàn)運算時,可以使用該函數(shù)。實現(xiàn)快速的鄰域操作。當需要對圖像的局部實現(xiàn)運算時,可以使用該函數(shù)。 常用調(diào)用格式:常用調(diào)用格式: (1)B=colfilt(A,m n,block_type,fun)

28、 mXn:圖像塊的尺寸圖像塊的尺寸 block_ type為指定塊的移動方式為指定塊的移動方式 distinct:表示圖像不重疊表示圖像不重疊 sliding:表示圖像塊滑動。表示圖像塊滑動。 fun為運算函數(shù),其形式為為運算函數(shù),其形式為y=fun(x) (2)B=colfilt(A,indexed,)將將A作為索引圖像處理作為索引圖像處理 colfit函數(shù)為圖像中每個像素建立一個列向量,向量的各元素對應(yīng)該函數(shù)為圖像中每個像素建立一個列向量,向量的各元素對應(yīng)該 像素的鄰域,如一個大小為像素的鄰域,如一個大小為6X5的圖像,對其按塊大小為的圖像,對其按塊大小為2X3進行鄰進行鄰 域處理。域處理

29、。 colfit函數(shù)為圖像建立一個函數(shù)為圖像建立一個30列的矩陣,每列有列的矩陣,每列有6個元素。個元素。 例例18: clc clear all I=imread(tire.tif); I1=uint8(colfilt(I,5 5,sliding,mean);%用列處理進行滑動鄰用列處理進行滑動鄰 域操作域操作 f=(x)ones(25,1)*mean(x);%進行分塊處理操作的函數(shù)進行分塊處理操作的函數(shù) I2=imread(cameraman.tif); I3=uint8(colfilt(double(I2),5 5,distinct,f);%用列處理進行滑動用列處理進行滑動 鄰域操作鄰域

30、操作subplot(221);imshow(I);subplot(222);imshow(I1); subplot(223);imshow(I2);subplot(224);imshow(I3) 3、分離塊操作、分離塊操作 在分離塊操作中,把一個圖像矩陣分成在分離塊操作中,把一個圖像矩陣分成mXn塊,這些分離塊從圖像的塊,這些分離塊從圖像的 左上角無重疊地開始覆蓋圖像矩陣。如果這些分離塊不能精確地匹配圖像,左上角無重疊地開始覆蓋圖像矩陣。如果這些分離塊不能精確地匹配圖像, 那么圖像矩陣將補那么圖像矩陣將補0填充。填充。blkproc函數(shù)實現(xiàn)。函數(shù)實現(xiàn)。 常用調(diào)用格式:常用調(diào)用格式: (1)B=

31、blkproc(A,m n,fun) m n:要處理的分離塊的大小要處理的分離塊的大小 fun為運算函數(shù),其形式為為運算函數(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(mean2(x)*ones(size(x); I2=blkproc(I,2 2,f); subplot(121);imshow(I); s

32、ubplot(122);imshow(I2); 分離塊操作例題分離塊操作例題 4.3區(qū)域處理區(qū)域處理 在進行圖像處理時,有時只需對圖像中的在進行圖像處理時,有時只需對圖像中的 某個特定區(qū)域進行處理,并不需要對整個圖像某個特定區(qū)域進行處理,并不需要對整個圖像 進行處理,比如要對用戶選定的一個區(qū)域作均進行處理,比如要對用戶選定的一個區(qū)域作均 值濾波或?qū)Ρ榷仍鰪姷牟僮鳌V禐V波或?qū)Ρ榷仍鰪姷牟僮鳌?4.3.1 指定目標區(qū)域指定目標區(qū)域 4.3.2區(qū)域濾波區(qū)域濾波 4.3.3區(qū)域填充處理區(qū)域填充處理 4.3.1 指定目標區(qū)域指定目標區(qū)域 區(qū)域區(qū)域(ROI)處理:只對部分區(qū)域進行濾波處理或其它的操作。可以

33、處理:只對部分區(qū)域進行濾波處理或其它的操作??梢?通過生成一個二值掩膜,也就是一個二值圖像來實現(xiàn)區(qū)域選擇,該二值通過生成一個二值掩膜,也就是一個二值圖像來實現(xiàn)區(qū)域選擇,該二值 圖像和需要處理的圖像尺寸必須相同,將需要處理的圖像像素設(shè)定為圖像和需要處理的圖像尺寸必須相同,將需要處理的圖像像素設(shè)定為1, 其余像素設(shè)定為其余像素設(shè)定為0. 可以設(shè)定多個可以設(shè)定多個ROI,區(qū)域可以是自然的形狀,比如包含連續(xù)像素的,區(qū)域可以是自然的形狀,比如包含連續(xù)像素的 多邊形,也可以是某一個灰度范圍的所有像素。多邊形,也可以是某一個灰度范圍的所有像素。 1、多邊形選擇函數(shù)、多邊形選擇函數(shù)roipoly 該函數(shù)輸出與

34、輸入圖像大小一致的二值圖像該函數(shù)輸出與輸入圖像大小一致的二值圖像BW,選中區(qū)域值為,選中區(qū)域值為1, 其余部分為其余部分為0. 調(diào)用格式:調(diào)用格式: (1)手動選擇手動選擇 BW=roipoly或或BW=roipoly(I):通過鼠標操作來設(shè)定多邊形區(qū)域的角度,通過鼠標操作來設(shè)定多邊形區(qū)域的角度, 可以用可以用鍵撤銷選擇,鍵撤銷選擇,鍵確認選擇。鍵確認選擇。 BW,xi,yi=roipoly():手動選擇多邊形區(qū)域,返回多邊形頂點的坐標。手動選擇多邊形區(qū)域,返回多邊形頂點的坐標。 x,y,BW,xi,yi=roipoly()手動選擇多邊形區(qū)域,返回多邊形頂點在指手動選擇多邊形區(qū)域,返回多邊形頂

35、點在指 定坐標系下的坐標。定坐標系下的坐標。 (2)非手動非手動 BW=roipoly(I,c,r):用向量用向量c和和r指定多邊形各頂點的坐標。指定多邊形各頂點的坐標。 BW=roipoly(x,y,I,xi,yi):用矢量用矢量x和和y建立非默認的坐標系,然后在指定建立非默認的坐標系,然后在指定 的坐標系下選擇向量的坐標系下選擇向量xi、yi指定的多邊形區(qū)域。指定的多邊形區(qū)域。 手動方式選擇區(qū)域手動方式選擇區(qū)域 例例22: clear all I=imread(123.tif); imshow(I); BW=roipoly; imshow(BW) 根據(jù)指定的坐標選擇區(qū)域根據(jù)指定的坐標選擇區(qū)

36、域 例例23 clear all I=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 all clc load trees BW=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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論