版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第8章MATLAB圖像處理工具箱,Matlab是一種基于向量(數(shù)組)而不是標(biāo)量的高級(jí)程序語言,因而Matlab從本質(zhì)上就提供了對(duì)圖像的支持。數(shù)字圖像實(shí)際上是一組有序離散的數(shù)據(jù),使用Matlab可以對(duì)這些離散數(shù)據(jù)形成的矩陣進(jìn)行一次性的處理。,Matlab對(duì)圖像的處理功能主要集中在它的圖像處理工具箱(Image Processing Toolbox)中。 圖像處理工具箱是由一系列支持圖像處理操作的函數(shù)組成,可以進(jìn)行諸如幾何操作、線性濾波和濾波器設(shè)計(jì)、圖像變換、圖像分析與圖像增強(qiáng)、數(shù)學(xué)形態(tài)學(xué)處理等圖像處理操作。,圖像處理工具箱主要有:, Image Acquisition Toolbox(圖像采集工
2、具箱) Image Processing Toolbox(圖像處理工具箱) Signal Processing Toolbox(信號(hào)處理工具箱) Wavelet Toolbox(小波分析工具箱) Statistics Toolbox(統(tǒng)計(jì)工具箱) Bioinformatics Toolbox(生物信息學(xué)工具箱),8.1 Matlab中的圖像類型及類型轉(zhuǎn)換,Matlab中的數(shù)字圖像是由一個(gè)或多個(gè)矩陣表示的,Matlab強(qiáng)大的矩陣運(yùn)算功能完全可以應(yīng)用于圖像,那些適用于矩陣運(yùn)算的語法對(duì)Matlab中的數(shù)字圖像同樣適用。,8.1.1 圖像和圖像數(shù)據(jù),缺?。篸ouble (64位浮點(diǎn)數(shù)) uint8(無
3、符號(hào)8位整型),8.1.2 圖像處理工具箱所支持的圖像類型,圖像處理工具箱支持4種圖像類型,它們是: 真彩色圖像(RGB images) 索引色圖像(index images) 灰度圖像(intensity images) 二值圖像(binary images) Matlab還支持由多幀圖像組成的圖像序列,真彩色圖像,真彩色圖像用 R、G、B 3個(gè)分量表示1個(gè)像素的顏色,數(shù)據(jù)結(jié)構(gòu)是一個(gè)mn3的多維數(shù)組。如果要讀取圖像中(100,50)處像素值,可以查看三元組(100,50,1:3)。 真彩色圖像可用雙精度存儲(chǔ),亮度值范圍是0,1 常用存儲(chǔ)方法是無符號(hào)整型存儲(chǔ),亮度值范圍為0,255,真彩色圖像
4、數(shù)據(jù)格式,圖1 真彩色圖像的結(jié)構(gòu),索引色圖像,索引圖像是把像素值作為RGB調(diào)色板下標(biāo)的圖像。 索引色圖像包含2個(gè)結(jié)構(gòu),一個(gè)是調(diào)色板map;另一個(gè)是圖像數(shù)據(jù)矩陣X。 調(diào)色板是一個(gè)有3列和若干行的色彩映像矩陣,矩陣每行都代表一種色彩,通過3個(gè)分別代表紅、綠、藍(lán)顏色強(qiáng)度的雙精度數(shù),形成一種特定顏色。 圖像數(shù)據(jù)是uint8或是雙精度的。 Matlab中調(diào)色板的色彩強(qiáng)度是0,1中的浮點(diǎn)數(shù),0代表最暗,1代表最亮。,圖2 索引色圖像的結(jié)構(gòu),索引圖像的數(shù)據(jù)格式,索引圖像的double與uint8型,double,uint8,圖像數(shù)據(jù),調(diào)色板,灰度圖像,存儲(chǔ)灰度圖像只需要一個(gè)數(shù)據(jù)矩陣,數(shù)據(jù)類型可以是doubl
5、e也可以是uint8。 存儲(chǔ)時(shí)會(huì)使用一個(gè)默認(rèn)的調(diào)色板來顯示圖像。,二值圖像,與灰度圖像相同,二值圖像只需一個(gè)數(shù)據(jù)矩陣,每個(gè)像素只有2個(gè)灰度值??梢圆捎胾int8或double類型存儲(chǔ),工具箱中以二值圖像作為返回結(jié)果的函數(shù)都使用uint8類型。,圖像序列,圖像處理工具箱支持將多幀圖像連接成圖像序列??梢允褂胏at函數(shù)將分散圖像合并成圖像序列,前提是各圖像尺寸必須相同,如果是索引色圖像,調(diào)色板必須是一樣的。 將A1、A2、A3、A4、A5五幅圖像合并成一個(gè)圖像序列A,Matlab語句為 A=cat (1,A1,A2,A3,A4,A5), 1維,縱向排列 A=cat (2,A1,A2,A3,A4,A
6、5),2維,橫向排列 A=cat (3,A1,A2,A3,A4,A5),3維,豎向排列,圖像序列也可以產(chǎn)生一個(gè)四維的數(shù)組,圖像幀的序號(hào)在圖像的長(zhǎng)、寬、顏色深度之后構(gòu)成第四維。 一個(gè)包含了5幅400300真彩色圖像的序列,大小為 40030035 一個(gè)包含了5幅400300灰度或是索引圖像的序列,其大小為 40030015 A=cat (4,A1,A2,A3,A4,A5), 4維 提取其中一幀(如第2幀):A(:,:,:,2),8.1.3 圖像文件的讀寫和查詢,imread:讀取圖形文件格式的圖像; imwrite:寫入圖形文件格式的圖像; imfinfo:獲取圖像的信息; loadsave:以
7、Mat文件加載或保存矩陣數(shù)據(jù); imshow:顯示加載到Matlab中的圖像。,函數(shù)imread可完成圖形圖像文件的讀取操作,其語法如下, 一般:A=imread(filename, fmt) 索引圖像:X, map=imread(filename, fmt),X, map=imread(m83.tif, tif),圖形圖像文件的讀取,imread函數(shù)可以從任何Matlab 支持的圖形文件中以特定的位寬讀取圖像。讀取的大多數(shù)圖像均為8bit。加載到內(nèi)存中時(shí),就存儲(chǔ)在類uint8中。 對(duì)于索引圖像來說,即使圖像陣列的本身為uint8或uint16,imread函數(shù)仍然將顏色映像表讀取并存儲(chǔ)到一個(gè)
8、雙精度的浮點(diǎn)類型陣列中。,圖形圖像文件的寫入(保存),imwrite函數(shù)可以完成圖形圖像文件的寫入操作, 其語法為: imwrite(A, filename, fmt) imwrite(X, map, filename, fmt) 缺省的保存方式:uint8數(shù)據(jù)格式。Matlab中許多圖像都是8bit,不需要雙精度的浮點(diǎn)數(shù)據(jù)。,imwrite(X, map, lena.bmp, bmp),圖形圖像文件信息的查詢,imfinfo函數(shù)用于從圖像文件中查詢其信息。所獲取信息依文件類型不同而不同,至少包含下面內(nèi)容 文件名 文件格式 文件格式的版本號(hào) 文件修改時(shí)間 文件的字節(jié)大小 圖像的寬度(像素) 圖
9、像的長(zhǎng)度(像素) 每個(gè)像素的位數(shù) 圖像類型(RGB圖像、灰度圖像還是索引圖像),imfinfo(autumn.tif),4 圖像文件的顯示,圖像顯示函數(shù)imshow。其語法格式如下, 灰度圖像 imshow(I) imshow(I, n) imshow(I, low high) 二值圖像 imshow(BW) 索引圖像 imshow(X, map) 真彩色圖像 imshow(RGB),其中n為灰度級(jí)數(shù)目,缺省值為256。low high為圖像數(shù)據(jù)的值域。,索引圖像及其顯示,索引圖像包括數(shù)據(jù)矩陣X和顏色映像矩陣map。 其中map是一個(gè)p3的數(shù)據(jù)矩陣,其每個(gè)元素的值均為0, 1之間雙精度浮點(diǎn)型數(shù)
10、據(jù)。map矩陣的每一行分別表示紅色、綠色和藍(lán)色的顏色值。而數(shù)據(jù)矩陣X可以是double和uint8型的,調(diào)用格式如下: imshow(X, map),例如一幅包含256色的uint8索引圖像,使用一個(gè)僅有16色的調(diào)色板顯示,則所有數(shù)值大于或等于15的像素都將被顯示為調(diào)色板的最后一個(gè)顏色。,借助不同的調(diào)色板顯示圖像, X=imread(cameraman.tif); map=pink(256); imshow(X,map);colorbar;%顯示顏色條,灰度圖像及其顯示,一幅灰度圖像是一個(gè)數(shù)據(jù)矩陣 I,其中數(shù)據(jù)均代表了在一定范圍內(nèi)的顏色灰度值。Matlab 把灰度圖像用數(shù)據(jù)矩陣的形式進(jìn)行存儲(chǔ),
11、每個(gè)元素則表示了圖像中的每個(gè)像素。矩陣元素可以是doudle、uint8整數(shù)類型。 多數(shù)情況下,灰度圖像很少和顏色映像表一起保存,但在顯示灰度圖像時(shí),Matlab 仍然在后臺(tái)使用系統(tǒng)預(yù)定義的缺省灰度顏色映像表。,(1) 灰度圖像顯示最基本的調(diào)用格式 imshow(I) Matlab 中 imshow函數(shù)使用一個(gè)灰度級(jí)系統(tǒng)調(diào)色板(R=G=B)來顯示灰度圖像。如果I是double型,若像素值為0.0,則顯示為黑色,1.0則顯示為白色,0.0和1.0之間的像素值將顯示為灰影。,imshow函數(shù)顯示灰度圖像,imshow(I, n) 以下語句將顯示一幅32個(gè)灰度級(jí)的圖像I。 imshow(I, 32)
12、,(2) 使用明確指定的灰度級(jí)數(shù)目,(3) 某些情況下,可能將一些超出數(shù)據(jù)慣例范圍的數(shù)據(jù)顯示為一幅灰度圖像, 對(duì)于double型數(shù)組為0,1,對(duì)于uint8型數(shù)組為0,255,為了將超過數(shù)據(jù)范圍的數(shù)據(jù)顯示為圖像,用戶可以直接定義數(shù)據(jù)范圍,其調(diào)用格式如下, imshow(I,low high) 其中l(wèi)ow、high分別為數(shù)據(jù)的最小和最大值。 如果用戶使用一個(gè)空矩陣 指定數(shù)據(jù)范圍, imshow將自動(dòng)進(jìn)行數(shù)據(jù)標(biāo)度。,RGB圖像及其顯示,imshow函數(shù)顯示RGB圖像的調(diào)用格式如下, imshow(RGB) 參數(shù)RGB是一個(gè)mn3的數(shù)組。對(duì)于RGB中的每一個(gè)像素(r,c),imshow顯示數(shù)值(r,
13、c,13)所描述顏色。每個(gè)屏幕像素使用24位顏色系統(tǒng)直接顯示真彩圖像,系統(tǒng)給每個(gè)像素的紅、綠、藍(lán)顏色分量分配8位(256級(jí)),這樣就有1000多萬種顏色(224)。,二進(jìn)制圖像及其顯示,顯示二進(jìn)制圖像用如下語句, imshow(BW) 二進(jìn)制圖像是一個(gè)邏輯類,僅包括0和1兩個(gè)數(shù)值,像素0顯示為黑色,像素1顯示為白色。 在顯示時(shí),也可以通過NOT()命令,對(duì)二進(jìn)制圖像取反,使數(shù)值0顯示為白色,1顯示為黑色。 例如: BW=imread(circles.png); imshow(BW); figure, imshow(BW); 顯示的結(jié)果如下圖所示。,二進(jìn)制圖像顯示效果,直接從磁盤顯示圖像,通常在
14、顯示圖像前首先調(diào)用imread函數(shù)裝載圖像,將數(shù)據(jù)存儲(chǔ)為Matlab工作平臺(tái)中的變量。 如果不在顯示圖像前裝載圖像,則使用以下命令格式進(jìn)行圖像文件顯示, imshow filename,imshow rice.png imshow(rice.png),多幅圖像文件的顯示,figure,imshow 功能:新建一個(gè)圖像窗口,用于顯示新圖像(從而不讓新的圖像覆蓋原來圖像)。,創(chuàng)建新的圖像窗口,每個(gè)圖像顯示在一個(gè)窗口中,調(diào)用imshow函數(shù)顯示圖像 I=imread(rice.png) J=filter2(1 2;-1 -2,I) %用模板1 2;-1 -2對(duì)圖像濾波 imshow(I) figur
15、e,imshow(J, ),用imshow顯示濾波前后的圖像,subplot(m,n,k),imshow %繪制并顯示m行n 列第k個(gè)子圖 例: X1=imread(rice.png); X2=imread(coins.png); X3=imread(bag.png); subplot(1,3,1),imshow(X1); subplot(1,3,2),imshow(X2); subplot(1,3,3),imshow(X3);,子圖顯示,子圖顯示效果,多幀圖像的電影片段,若一個(gè)tif圖像文件包含有多幀圖像,一般用immovie來實(shí)現(xiàn)創(chuàng)建電影片段功能,以下調(diào)用將根據(jù)多幀索引圖像X創(chuàng)建電影片段。
16、 mov=immovie(X,map),mri=uint8(zeros(128,128,1,27); for frame=1:27 mri(:,:,:,frame),map=imread(mri.tif,frame); end mov=immovie(mri,map); movie(mov);,將mri.tif的每一幀讀入圖相應(yīng)的圖像幀中,8.1.5 Matlab圖像類型轉(zhuǎn)換,索引圖像進(jìn)行濾波時(shí),必須把它轉(zhuǎn)換為RGB圖像,否則光對(duì)圖像的標(biāo)進(jìn)行濾波是毫無意義的。,工具箱中提供了許多圖像類型轉(zhuǎn)換的函數(shù),從函數(shù)名稱可以看出它們的功能。 1. dither函數(shù) 功能:圖像抖動(dòng),利用僅能顯示少數(shù)彩色的設(shè)
17、備顯示含有豐富顏色信息圖像的一種非常有用的方法。 該函數(shù)可以把RGB圖像轉(zhuǎn)換成索引圖像或把灰度圖像轉(zhuǎn)換成二值圖像。 格式:X=dither(RGB,map) BW=dither(I),抖動(dòng)效果圖,(1) RGB圖像抖動(dòng)成索引圖像,例: I=imread(autumn.tif); map=pink(1024); X=dither(I,map); imshow(I); figure,imshow(X,map); colorbar,抖動(dòng)效果圖,(2) 灰度圖像抖動(dòng)成二值圖像,例: I=imread(rice.png); bw=dither(I); imshow(I); figure,imshow(b
18、w);,抖動(dòng)效果圖,功能:將灰度圖像轉(zhuǎn)換成索引圖像。 格式:X, map= gray2ind(I, n) 按照指定灰度級(jí)n 把灰度圖像I轉(zhuǎn)換成索引圖像X, map 為gray (n) , n的缺省值為64。 例: I=imread(cameraman.tif); X,map=gray2ind(I,16); imshow(X,map); figure,imshow(I);,2. gray2ind函數(shù),功能:通過設(shè)定閾值將灰度圖像轉(zhuǎn)換成索引色圖像。 格式:X=grayslice(I, n) 例:I=imread(cameraman.tif); X=grayslice(I,16); imshow(I
19、); figure,imshow(X,bone(16);,3. grayslice函數(shù),功能:將灰度圖像、索引色圖像和真彩色圖像轉(zhuǎn)化成二值圖像。 格式:BW=im2bw(I, level) BW=im2bw( X, map, level) BW=im2bw(RGB, level) level是一個(gè)歸一化閾值,取值在0,1。,4. im2bw函數(shù),I=imread(autumn.tif); X=im2bw(I,0.5); imshow(I); figure,imshow(X);,功能:將索引圖像轉(zhuǎn)換成灰度圖像。 格式:I= ind2gray(X, map),5. ind2gray函數(shù),功能:將索
20、引色圖像轉(zhuǎn)換成真彩色圖像。 格式:RGB=ind2rgb(X, map) 例:I,map=imread(m83.tif); X=ind2rgb(I,map); imshow(I,map); figure,imshow(X);,6. ind2rgb函數(shù),功能:將一個(gè)數(shù)據(jù)矩陣轉(zhuǎn)換成一幅灰度圖像。 格式:I=mat2gray(A, amin amax) I=mat2gray(A),7. mat2gray函數(shù),功能:將一幅真彩色圖像轉(zhuǎn)換成灰度圖像。 格式:I= rgb2gray(RGB) 例: RGB=imread(autumn.tif); X=rgb2gray(RGB); imshow(RGB);
21、figure,imshow(X);,8. rgb2gray函數(shù),轉(zhuǎn)換效果圖,功能:將真彩色圖像轉(zhuǎn)換成索引色圖像。 格式: X,map = rgb2ind(RGB,n) 例: RGB=imread(autumn.tif); X,map=rgb2ind(RGB,128); imshow(RGB); figure,imshow(X,map);,9. rgb2ind函數(shù),8.2 圖像處理技術(shù),1 圖像的灰度變換與直方圖 2 圖像的增強(qiáng)濾波 3 圖像的空間變換 4 圖像邊緣檢測(cè)與分割,8.2.1 圖像的灰度變換與直方圖,在計(jì)算機(jī)中一幅二維數(shù)字圖像表示為一個(gè)矩陣,該矩陣中的元素是位于相應(yīng)坐標(biāo)位置的圖像灰度
22、值。對(duì)圖像處理,包括對(duì)彩色圖像的處理,往往都是對(duì)像素灰度的操作,所以對(duì)圖像進(jìn)行灰度變換是圖像處理過程中最簡(jiǎn)單、最基礎(chǔ)內(nèi)容。 在圖像處理中,直接對(duì)像素進(jìn)行的操作稱為空間域(簡(jiǎn)稱空域)處理。,1圖像的灰度變換,函數(shù)imadjust完成灰度圖像的灰度變換。語法格式為: gimadjust(p,low_in high_in,low_out high_out, gamma) 其中p為讀入到MATLAB中的待變換圖像矩陣; low_in high_in指定p圖像中被執(zhí)行變換操作的灰度范圍,low_out high_out是p圖像中的像素變換后被映射到low_outhigh_out的灰度級(jí)上。,參數(shù)gamm
23、a是指變換映射方式,默認(rèn)gamma取作1,完成線性映射,這時(shí)變換前后的灰度級(jí)沒有被加權(quán); 當(dāng)gamma小于1,則映射被加權(quán)至更高的灰度級(jí); 相反當(dāng)gamma大于1,輸出則被加權(quán)映射至較低灰度級(jí)。,幾種灰度變換過程:,將football.jpg灰度級(jí)0.10.6范圍的像素線性變換到01上,效果如圖所示 p = imread(football.jpg); g1 = imadjust(p,0.1 0.6,); subplot(1,2,1); imshow(p); xlabel(a); subplot(1,2,2); imshow(g1); xlabel(b);,將圖像p向高灰度級(jí)變換,gamma取0
24、.6,效果如圖所示 g2 = imadjust(p,0.6); subplot(2,2,3); imshow(g2); xlabel(c);,將圖像p做灰度倒相變換,即輸出源圖的負(fù)片,gamma取1,如圖所示。 g3 = imadjust(p,0 1,1 0); subplot(2,2,4); imshow(g3); xlabel(d);,2灰度直方圖,圖像灰度直方圖描述了一幅圖像的灰度級(jí)內(nèi)容,即各個(gè)灰度級(jí)像素?cái)?shù)目的統(tǒng)計(jì)。 直方圖統(tǒng)計(jì)各個(gè)灰度像素的分布概率,是灰度級(jí)的函數(shù),它反映不出該像素在圖像中的二維坐標(biāo)。 通過灰度直方圖的形狀,可以判斷該圖像的清晰度和黑白對(duì)比度。,MATLAB通過命令im
25、hist給出圖像直方圖。語法格式為: h = imhist(p,b) 其中p為讀入的圖像矩陣, 參數(shù)b指明直方圖統(tǒng)計(jì)時(shí)顯示的整個(gè)灰度級(jí)分段數(shù)目。省略b時(shí),表明灰度級(jí)不分段,這也是imhist的默認(rèn)調(diào)用方式。 如:uint8數(shù)據(jù)格式的圖像,當(dāng)b2時(shí),灰度分為0127及128256兩個(gè)區(qū)段。,顯示圖像p的灰度直方圖時(shí),先要把RGB彩色圖像p變換為灰度圖像I。運(yùn)行下列程序得到如圖所示直方圖。 p = imread(football.jpg); I = rgb2gray(p); imhist(I);,3直方圖均衡化,當(dāng)一幅圖像基調(diào)過暗或過亮?xí)r,需要對(duì)其進(jìn)行必要的處理,使得圖像明暗均勻,視覺效果變得更為
26、理想。 通過直方圖均衡化做適當(dāng)?shù)恼{(diào)整,即把一幅已知灰度概率分布圖像中的像素灰度做某種映射變換,使它變成一幅具有均勻概率分布的新圖像,使圖像視覺效果更加清晰。,直方圖均衡的MATLAB函數(shù)為histeq,其基本語法格式為: g = histeq(p, outlev) 其中p為讀入的圖像矩陣, outlev為輸出圖像的灰度級(jí)數(shù)。 outlev的默認(rèn)值為64,即64個(gè)灰度級(jí),這樣對(duì)圖像的細(xì)節(jié)有一定改變。通常將其賦值為256,即全灰度級(jí)。,對(duì)tire.tif進(jìn)行直方圖均衡,效果如圖所示。 p = imread(tire.tif); subplot(2,2,1); imshow(p); xlabel(a
27、) ); subplot(2,2,2); imhist(p); xlabel(b) ); g = histeq(p); subplot(2,2,3); imshow(g); xlabel(c) ); subplot(2,2,4); imhist(g); xlabel(d) );,8.2.2 圖像的增強(qiáng)濾波,上節(jié)介紹過的直方圖均衡化是圖像增強(qiáng)中常用的一種方法,此外,圖像增強(qiáng)技術(shù)還包括圖像平滑濾波、圖像銳化等。 本節(jié)將從線性與非線性、平滑與銳化等角度介紹一些實(shí)用的空域圖像增強(qiáng)技術(shù)。,1 空域?yàn)V波概述,圖像增強(qiáng)技術(shù)從總體上可分為空域增強(qiáng)和頻域增強(qiáng)兩大類。 空域增強(qiáng)也稱為空間增強(qiáng),是直接對(duì)圖像中的像素
28、進(jìn)行操作的一種增強(qiáng)過程。 空域增強(qiáng)從根本上講是以圖像的灰度映射變換為基礎(chǔ)的像素處理技術(shù)。,空域增強(qiáng)方法大致可分為對(duì)比度拉伸、平滑濾波和銳化濾波?;叶壤熘饕抢命c(diǎn)運(yùn)算來修改圖像像素灰度值;而平滑和銳化均是利用模板來修改(卷積運(yùn)算)像素灰度值,從實(shí)現(xiàn)方法上講是基于圖像濾波的操作過程。 空域?yàn)V波是在圖像空間中借助模板對(duì)圖像進(jìn)行鄰域操作的,輸出圖像每一個(gè)像素的取值都是根據(jù)模板對(duì)輸入像素相應(yīng)鄰域內(nèi)的像素值進(jìn)行計(jì)算得到的,也叫鄰域去噪算法。,2 空域?yàn)V波分類,根據(jù)模板特點(diǎn)不同可以將空域?yàn)V波分為線性和非線性兩大類。 按照空域?yàn)V波器的功能不同,又可將其分為平滑濾波器和銳化濾波器。 平滑濾波器可以用低通濾波
29、實(shí)現(xiàn);銳化濾波器是用高通濾波實(shí)現(xiàn)的,具體可分為以下3類。 1)均值濾波 均值濾波也稱線性平滑濾波,其輸出的像素值是由鄰域像素的平均值決定。,2)中值濾波 中值濾波也稱為非線性平滑濾波,其基本原理與均值濾波不同之處在于:中值濾波的輸出像素值是由鄰域像素的中間值而不是平均值決定,中值濾波的名字也因此而得。 與均值濾波相比,中值濾波對(duì)灰度發(fā)生聚變的像素不如均值濾波那么敏感,因此中值濾波能盡量保存圖像的細(xì)節(jié),模糊效應(yīng)較少,適于消除圖像中孤立噪聲。 3)銳化濾波 銳化濾波就是可以使用微分對(duì)圖像進(jìn)行處理,以此來銳化由于鄰域平均導(dǎo)致的圖像模糊。 圖像處理中最常用的微分是利用圖像沿某方向上的灰度變化率,即梯度
30、進(jìn)行的。,3基于MATLAB的空域增強(qiáng)濾波,基于MATLAB圖像處理的空域?yàn)V波,首先要定義濾波器,然后調(diào)用定義好的濾波器進(jìn)行濾波。 imnoise是MATLAB提供的圖像噪聲模擬函數(shù),其基本語法格式為: pn = imnoise(p, type, para) 其中pn為添加噪聲的輸出圖像,p為原圖像,type指定噪聲的類型,para為每種類型噪聲的參數(shù)。 常用的噪聲有:gaussian(高斯噪聲)、salt p0 = imnoise(p, salt ,均值濾波和中值濾波 (a)原圖像;(b)添加椒鹽噪聲后圖像; (c)均值濾波后圖像;(d)中值濾波后圖像),對(duì)含有噪聲的原圖像進(jìn)行銳化,得到如圖
31、所示圖像。 p0 = imread(moon.tif); p = im2double(p0); %將圖像數(shù)據(jù)類型轉(zhuǎn)換為double H1 = fspecial(laplacian,0); %設(shè)計(jì)拉普拉斯濾波器H1 H2 = fspecial(log,5 5,0.5); %設(shè)計(jì)高斯拉普拉斯濾波器H2 hp1 = imfilter(p,H1,replicate); %用濾波器H1對(duì)圖像p進(jìn)行濾波 hp2 = imfilter(p,H2,replicate); %用濾波器H2對(duì)圖像p進(jìn)行濾波 p1 = p - hp1; %還原灰度色調(diào) p2 = p - hp2; %還原灰度色調(diào) subplot(1,
32、3,1),imshow(p0); subplot(1,3,2),imshow(p1); subplot(1,3,3);imshow(p2);,拉普拉斯波和高斯拉普拉斯濾波 (a)原圖像;(b)laplace濾波圖像;(c)高斯laplace濾波圖像,8.2.3 圖像的空間變換,圖像的空間變換也稱為圖像的幾何變換,是指將用戶獲得或設(shè)計(jì)的原始圖像,按照需要產(chǎn)生大小、形狀和位置的變化。 常用的圖像幾何變換包括圖像的縮放、圖像的剪切及圖像的旋轉(zhuǎn)等內(nèi)容。,1 圖像比例縮放,圖像比例縮放是指將給定的圖像在x軸方向按比例縮放fx倍,在y軸方向按比例縮放fy倍,從而獲得一幅新的圖像。有fxfy和 fxfy兩種
33、情況。 比例縮放所產(chǎn)生的圖像中的像素可能在原圖像中找不到相應(yīng)的像素點(diǎn),這樣就必須進(jìn)行插值處理。 圖像插值處理常用的方法有兩種,一種是最鄰近插值法,另一種是通過一些插值算法來計(jì)算相應(yīng)的像素值。 MATLAB中提供了三種圖像插值方法,即最近鄰插值、雙線性插值和雙三次插值。,函數(shù)imresize對(duì)圖像進(jìn)行插值縮放,語法格式為: ps = imresize(p, m, method ) 其中ps為變換后圖像,p為輸入圖像,m放大倍數(shù)(當(dāng)m1時(shí)縮?。琺ethod為插值方法的選擇項(xiàng),可選最近鄰插值法(nearest)、雙線性插值法(bilinear)及雙三次插值法(bicubic),默認(rèn)使用最近鄰插值法
34、。 另外一種語法格式為: ps = imresize(p, m n, method ) 其中m和n分別為變換后圖像長(zhǎng)寬。,對(duì)liftingbody.png圖像進(jìn)行縮小,其效果如圖所示。 p = imread(liftingbody.png); w = input(please input a number:); %交互輸入縮小為0.2倍 ps = imresize(p,w); %縮小變換 imshow(p); figure; imshow(ps);,對(duì)liftingbody.png圖像進(jìn)行縮小前后的效果 (a)原圖像;(b)縮小后拉伸顯示后圖像,2 圖像剪切,用函數(shù)imcrop交互實(shí)現(xiàn)圖像區(qū)域
35、選取功能,用于剪切圖像中的一個(gè)矩形子圖,可用鼠標(biāo)選取這個(gè)矩形,也可以通過參數(shù)指定這個(gè)矩形頂點(diǎn)的坐標(biāo)。語法格式為: pc = imcrop(p) 或 pc = imcrop(p, rectangle) 其中pc為剪切后的圖像,p為輸入圖像,rectangle為四個(gè)變量指定的一個(gè)矩形區(qū)域,即left bottom width height,數(shù)組中的四個(gè)變量分別表示矩形左下角的橫坐標(biāo)、縱坐標(biāo)、矩形長(zhǎng)度及寬度。,對(duì)liftingbody.png圖像進(jìn)行剪切,其效果如圖所示。 p = imread(liftingbody.png); pc = imcrop(p,80 180 260 220); %輸入矩
36、形尺度進(jìn)行選取 subplot(1,2,1); imshow(p); subplot(1,2,2); imshow(pc);,3 圖像旋轉(zhuǎn),圖像的旋轉(zhuǎn)是以圖像的中心為原點(diǎn),將圖像上的所有像素都旋轉(zhuǎn)一個(gè)相同的角度。 在圖像進(jìn)行旋轉(zhuǎn)的時(shí)候,各像素的坐標(biāo)必然發(fā)生變化,使得旋轉(zhuǎn)之后不能正好落在整數(shù)坐標(biāo)處, 因此同縮放一樣,也需要進(jìn)行插值,插值方法也與縮放的插值方法一樣,完全相同,即可用3種方法對(duì)圖像進(jìn)行插值旋轉(zhuǎn),默認(rèn)的插值方法是最近鄰插值法。,通過函數(shù)imrotate實(shí)現(xiàn)對(duì)圖像的旋轉(zhuǎn),語法格式為: pr = imrotate(p, angle, method) 或 pr = imrotate(p, a
37、ngle, method, crop) 其中pr為旋轉(zhuǎn)后得到的圖像,p為輸入圖像,angle為指定的旋轉(zhuǎn)度數(shù),參數(shù)method用于指定插值的方法,可選值為nearest(最近鄰法),bilinear(雙線性插值)及bicubic(雙三次插值),默認(rèn)值為nearest。參數(shù)crop允許用戶對(duì)旋轉(zhuǎn)后的圖像進(jìn)行自動(dòng)剪切,使返回的圖像與原圖大小相同。,對(duì)liftingbody.png圖像進(jìn)行旋轉(zhuǎn),其效果如圖所示。 p = imread(liftingbody.png); angle = input(please input angle:); %輸入旋轉(zhuǎn)角度為45度 pr = imrotate(p,an
38、gle,bilinear); %使用雙線性插值方法實(shí)現(xiàn)旋轉(zhuǎn)變換 subplot(1,2,1); imshow(p); subplot(1,2,2); imshow(pr);,8.2.4 圖像邊緣檢測(cè)與分割,圖像分割是將數(shù)字圖像分割成互不相交(不重疊)的有意義的子區(qū)域的過程。其目的是使各個(gè)區(qū)域與景物中以某種方式描述的物體相對(duì)應(yīng),以便進(jìn)行高層次的圖像解釋、圖像識(shí)別等處理。,1 邊緣檢測(cè)概述,圖像分割是基于圖像像素灰度值的基本特性-不連續(xù)性與相似性中來進(jìn)行的。區(qū)域內(nèi)部像素一般具有灰度相似性,區(qū)域之間邊界上一般具有灰度不連續(xù)性。 根據(jù)圖像灰度級(jí)突變進(jìn)行圖像分割的方法中,邊緣檢測(cè)通過檢測(cè)包含不同區(qū)域的邊
39、緣來解決圖像分割問題。 邊緣檢測(cè)最通用的方法是檢測(cè)灰度值的不連續(xù)性,灰度值的不連續(xù)是指在不同區(qū)域之間的邊緣上像素灰度值的變化往往比較劇烈,一般利用圖像一階導(dǎo)數(shù)的極大值或者二階導(dǎo)數(shù)的過零點(diǎn)信息提供判斷邊緣點(diǎn)的依據(jù)。,邊緣的物理意義,圖像邊緣的產(chǎn)生 物體的邊界、表面方向的改變、不同的顏色、光照的變化,物體的邊界,表面方向變化,不同顏色區(qū)域,光照明暗,灰度圖像中邊緣的類型,階梯狀邊緣,屋脊?fàn)钸吘?線條狀邊緣,為什么要提取邊緣?,邊緣是最基本的圖像特征之一: 可以表達(dá)物體的特征 邊緣特征對(duì)于圖像的變化不敏感 幾何變化,灰度變化,光照方向變化 可以為物體檢測(cè)提供有用的信息 是一種典型的圖像預(yù)處理過程,原
40、始圖像,輸出結(jié)果,模式識(shí)別,預(yù)處理,特征提取,如何提取邊緣?(灰度圖象),灰度圖象邊緣提取的主要思想: 抑制噪聲(低通濾波、平滑、去噪、模糊) 邊緣特征增強(qiáng)(高通濾波、銳化) 邊緣定位,原始圖像,中間結(jié)果,圖像邊緣,抑制噪聲,增強(qiáng)邊緣,邊緣定位,2 梯度算子,圖像中任一像素點(diǎn),用二維函數(shù)f(x,y)來表示,而梯度定義為向量f : 向量幅值為: 為簡(jiǎn)化計(jì)算,通常省略開方或通過取絕對(duì)值來近似計(jì)算,即 或,梯度向量的含義在于,它總是指向f(x,y)在點(diǎn)(x,y)處的最大變化率方向。最大變化率是用方向角來衡量的,即 原理:若所求的一階層數(shù)(梯度)高于某一閾值,則可確定該點(diǎn)為邊緣點(diǎn)。,為了能估計(jì)出Gx及
41、Gy值,通常使用一些經(jīng)典的模板來做數(shù)字化近似。有Sobel模板、Prewitt模板、Roberts模板等。 MATLAB提供了邊緣函數(shù)(edge)實(shí)現(xiàn)對(duì)圖像邊緣的檢測(cè),語法格式為: e , s = edge(p, method, para) 其中p為輸入圖像,method是邊緣檢測(cè)的類型,para為與edge對(duì)應(yīng)的參數(shù),e為與p同樣大小的邏輯矩陣,在檢測(cè)到邊緣的位置時(shí)值為1,其它位置則為0,s為一可選參數(shù)。,Roberts模板(算子),Roberts算子又稱為Roberts交叉算子,它是利用局部差分算子尋找邊緣的模板,它在22鄰域上計(jì)算對(duì)角導(dǎo)數(shù)。在實(shí)際應(yīng)用中,為了簡(jiǎn)化計(jì)算,常用梯度函數(shù)的Rob
42、erts絕對(duì)值來近似。另外還可以用Roberts最大值算子來計(jì)算。 Roberts邊緣檢測(cè)算子如圖所示: (a)Roberts-x (b)Roberts-y,Roberts邊緣檢測(cè)器的語法格式如下: e , s = edge(p, roberts, thresh, direct) 其中p為輸入圖像,thresh為指定的閾值T,若T值未指定,則函數(shù)edge自動(dòng)選擇一個(gè)值。direct為檢測(cè)邊緣的首選方向,通??蛇x作horizontal(水平)、vertical(垂直)或both(默認(rèn)值)。 Roberts算子的一個(gè)主要問題是計(jì)算方向差分時(shí)對(duì)噪聲敏感。,Sobel模板(算子),Sobel提出一種將
43、方向差分運(yùn)算與局部平均相結(jié)合的方法,即Sobel算子。是在以f(x,y)為中心的33鄰域上計(jì)算x和y方向的偏導(dǎo)數(shù),其模板如圖所示: (c) Sobel-x (d) Sobel-y,Sobel邊緣檢測(cè)器語法格式: e , s = edge(p, sobel, thresh, direct) 其中p為輸入圖像,thresh為指定閾值,direct為檢測(cè)邊緣首選方向,可選作horizontal (水平)、vertical(垂直)或both(默認(rèn)值)。,Prewitt模板(算子),Prewit提出了與Sobel算子類似的計(jì)算偏微分估計(jì)值的方法,Prewit模板如圖: (e) Prewit-x (f)
44、Prewit-y,Prewit邊緣檢測(cè)器調(diào)用語法如下: e , s = edge(p, prewitt, thresh, direct) 其中p為輸入圖像,thresh為指定閾值,direct為檢測(cè)邊緣首選方向,通??蛇x作horizontal (水平)、vertical(垂直)或both(默認(rèn)值)。 梯度算子的缺點(diǎn):可能會(huì)導(dǎo)致檢測(cè)的邊緣點(diǎn)太多。,2 二階微分算子,求梯度局部最大值對(duì)應(yīng)點(diǎn),并認(rèn)定它們是邊緣點(diǎn)。 一階導(dǎo)數(shù)的局部最大值對(duì)應(yīng)著二階導(dǎo)數(shù)的零交叉點(diǎn)(zero crossing)。通過找圖像強(qiáng)度的二階導(dǎo)數(shù)的零交叉點(diǎn)就能找到精確邊緣點(diǎn)。 二階導(dǎo)數(shù)常用于拉普拉斯算子的計(jì)算,表達(dá)式為:,二階微分算
45、子邊緣檢測(cè)器主要包括LoG算子和Canny算子。 常用的兩種拉普拉斯模板如圖所示:,LoG(Laplacian of a Gaussian)算子 LoG算子對(duì)含有噪聲的圖像是效果較好的邊緣檢測(cè)器。當(dāng)拉普拉斯算子輸出出現(xiàn)過零點(diǎn)時(shí)就表明有邊緣存在。 LoG邊緣檢測(cè)器的語法格式如下: e , s = edge(p, log, thresh, sigmma) 其中p為輸入圖像,thresh為指定的閾值T,sigmma為高斯濾波器的標(biāo)準(zhǔn)方差,默認(rèn)值為2。若T值未指定,則函數(shù)edge會(huì)自動(dòng)選擇一個(gè)閾值。,Canny算子,Canny算子對(duì)最急劇變化方向上的邊緣特別敏感,但在沿邊緣方向上是不敏感的,其作用就像
46、一個(gè)平滑算子。Canny邊緣檢測(cè)器是高斯函數(shù)的一階導(dǎo)數(shù),是對(duì)信噪比和定位之乘積的最優(yōu)化逼近算子。 算法有四個(gè)步驟:高斯濾波器平滑圖像,一階偏導(dǎo)的有限差分來計(jì)算梯度幅值和方向,對(duì)梯度幅值進(jìn)行非極大值抑制,用雙閾值算法檢測(cè)和連接邊緣。 canny邊緣檢測(cè)器的語法格式如下: e , s = edge(p, canny, thresh, sigmma) 其中p為輸入圖像,thresh為指定閾值T,若T值未指定,則函數(shù)edge會(huì)自動(dòng)選擇一個(gè)值,sigmma為平滑濾波器的標(biāo)準(zhǔn)方差,默認(rèn)值為1。,對(duì)lena.bmp圖像使用不同算子進(jìn)行邊緣檢測(cè)。結(jié)果如圖所示。 p=imread(lena.bmp); p=im2double(p); %轉(zhuǎn)換為double e1,s1 = edge(p,sobel,0.03,both); % sobel檢測(cè)器 e2,s2 = edge(p,roberts,0.03,both); % roberts檢測(cè)器 e3,s3 = edge(p,prewitt,0.04,both); % prewitt檢測(cè)器 e4,s4 = edge(p,log,0.003,2.10); % LoG檢測(cè)器 e5,s5 = edge(p,canny,0.05 0.12,1.6); %canny檢測(cè)器 subplot(2,3,1),
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年正定產(chǎn)業(yè)投資控股集團(tuán)有限公司下屬子公司面向社會(huì)公開招聘工作人員24人備考題庫及一套答案詳解
- 公共交通服務(wù)質(zhì)量投訴調(diào)查處理制度
- 2026年納雍縣面向社會(huì)公開招聘城市社區(qū)工作者9人實(shí)施備考題庫附答案詳解
- 2026年河源市暨南大學(xué)附屬第五醫(yī)院招聘52人備考題庫及答案詳解一套
- 2026年杭州文化投資發(fā)展有限公司招聘?jìng)淇碱}庫附答案詳解
- 寧夏銀行2026年度校園招聘?jìng)淇碱}庫及完整答案詳解1套
- 2026年潤(rùn)曜(北京)國際醫(yī)藥科技有限公司招聘?jìng)淇碱}庫及一套完整答案詳解
- 2026年杭州市政苑小學(xué)、秀水小學(xué)誠聘數(shù)學(xué)、英語老師(非事業(yè))備考題庫及答案詳解參考
- 企業(yè)員工培訓(xùn)與素質(zhì)發(fā)展計(jì)劃目標(biāo)制度
- 企業(yè)內(nèi)部審計(jì)制度與實(shí)施指南
- 2025年新版學(xué)校財(cái)務(wù)崗考試題及答案
- 工地上電工安全培訓(xùn)課件
- 現(xiàn)場(chǎng)應(yīng)急處置方案
- 2025年1月新疆普通高中學(xué)業(yè)水平考試物理試卷
- 2026年上半年新疆中小學(xué)教師資格考試(筆試)備考題庫(真題匯編)
- 2025-2026學(xué)年度第一學(xué)期期末測(cè)試三年級(jí)語文試卷
- 爐渣資源化處理技術(shù)方案
- 學(xué)?;@球教練員崗位招聘考試試卷及答案
- 騎馬戶外免責(zé)協(xié)議書
- 2025年吐魯番地區(qū)托克遜縣輔警招聘考試題庫附答案解析
- 賣香腸訂貨合同范本
評(píng)論
0/150
提交評(píng)論