基于MATLAB圖像處理(第2版)講稿課件_第1頁
基于MATLAB圖像處理(第2版)講稿課件_第2頁
基于MATLAB圖像處理(第2版)講稿課件_第3頁
基于MATLAB圖像處理(第2版)講稿課件_第4頁
基于MATLAB圖像處理(第2版)講稿課件_第5頁
已閱讀5頁,還剩413頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于MATLAB的圖像處理于萬波基于MATLAB的圖像處理于萬波關(guān)于圖像等圖像研究有著重要的實(shí)際應(yīng)用價(jià)值與理論研究價(jià)值圖像的研究正在繼續(xù),國際上有很多有關(guān)圖像研究的期刊、專著;各種圖像相關(guān)的產(chǎn)品不斷問世本書使用MATLAB作為工具講解圖像處理的基本原理與基本方法學(xué)習(xí)時(shí)要堅(jiān)持上機(jī)操作,堅(jiān)持思考關(guān)于圖像等圖像研究有著重要的實(shí)際應(yīng)用價(jià)值與理論研究價(jià)值第1章圖像1.1Matlab的命令使用與程序設(shè)計(jì)1.1.2M-File程序設(shè)計(jì)

1.1.3Figure窗口的圖形操作功能

1.1.4自定義函數(shù)

1.1.5Matlab的矩陣操作

1.1.6多維數(shù)組與圖像矩陣

第1章圖像1.1Matlab的命令使用與程序設(shè)計(jì)1.2圖像的表示方法1.2.1圖像的數(shù)字化

1.2.2圖像的讀取與顯示

1.2.3圖像的分類

1.2圖像的表示方法2.

圖像的數(shù)字化

在計(jì)算機(jī)中,圖像被看作是一些數(shù)值構(gòu)成的矩陣。例如圖1-7所示數(shù)據(jù)就代表著圖像

2.圖像的數(shù)字化s=size(A),則有s=22223說明圖像的長為22、寬為22,由3種顏色迭加而成。下面是其紅色陣的數(shù)據(jù)(1到15列)s=size(A),則有s=222232.圖像數(shù)據(jù)的調(diào)用既然圖像數(shù)據(jù)是存儲(chǔ)在數(shù)組中,那么調(diào)用圖像數(shù)據(jù)就變成了操作數(shù)組元素。例如:>>B=A(1:5,1:9,1)B=2212212212212212212212212212212342342342342342342342342212342342342342342342342342212342342342342344442212342342342344000調(diào)用紅色陣的1到5行,1到9列2.圖像數(shù)據(jù)的調(diào)用函數(shù)imshow()可以把任意的二維數(shù)組(矩陣)顯示成為圖像。另外,函數(shù)imview()、image()、imagesc()也可以用來顯示圖像。

函數(shù)imshow()可以把任意的二維數(shù)組(矩陣)顯1.基于顏色表示的圖像分類(1)灰度圖像灰度圖像對(duì)應(yīng)著一個(gè)數(shù)據(jù)矩陣(二維數(shù)組),數(shù)組元素的值表示圖像在該位置上的亮度值。一般常用數(shù)值0表示黑色,255表示白色,用0到255之間的數(shù)表示灰(亮)度。

1.基于顏色表示的圖像分類基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件下面程序使用getframe函數(shù)裝載這幾幅圖像,使用movie函數(shù)播放這幾幅圖像就是完成了一個(gè)動(dòng)畫制作。fori=1:3k=int2str(i);k1=strcat('e:\',k,'.jpg');a1=imread(k1);image(a1);m(:,i)=getframe;endmovie(m,10)

下面程序使用getframe函數(shù)裝載這幾幅圖像,使用movi第2章圖像幾何操作與代數(shù)運(yùn)算

2.1圖像的縮放旋轉(zhuǎn)與裁剪

2.2圖像的幾何變換

2.3圖像的加減乘除運(yùn)算

2.4圖像的特征值與奇異值

2.5圖像邏輯運(yùn)算

第2章圖像幾何操作與代數(shù)運(yùn)算2.1圖像的縮放旋轉(zhuǎn)與2.1圖像的縮放旋轉(zhuǎn)與裁剪

2.1.1圖像的裁剪

2.1.2圖像的縮放

2.1.3圖像的旋轉(zhuǎn)

2.1圖像的縮放旋轉(zhuǎn)與裁剪2.1.1圖像的裁剪1.imcrop函數(shù)該函數(shù)有兩個(gè)參數(shù),一個(gè)用來指定裁剪圖像,一個(gè)用來定義裁剪矩形。【例2-1】使用imcrop函數(shù)對(duì)圖像進(jìn)行裁剪。編寫如下程序:A=imread('D:\imageprocess\IMG_7354.jpg');A1=imcrop(A,[190,100,290,220]);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1)程序運(yùn)行結(jié)果如圖2-1所示。imcrop函數(shù)中的參數(shù)[190,100,290,220]的含義是以圖像上的(190,100)點(diǎn)為裁剪矩形的左上角坐標(biāo),裁剪矩形的寬為290,高為220。

1.imcrop函數(shù)3.

Matlab函數(shù)roipolyMatlab中提供了定義多邊形區(qū)域的函數(shù)roipoly,可以使用該函數(shù)定義多邊形區(qū)域,然后實(shí)行裁剪操作?!纠?-2】使用roipoly函數(shù)選取圖像塊。I=imread('D:\125.jpg');subplot(1,2,1)imshow(I)C1=[103080];C2=[2010068];BW=roipoly(I,C1,C2);subplot(1,2,2)imshow(BW)程序運(yùn)行結(jié)果如圖2-3所示。

3.Matlab函數(shù)roipoly2.1.2圖像的縮放圖像的縮放也是經(jīng)常使用的一種操作。在圖像縮放過程中,涉及到圖像數(shù)據(jù)的刪除與增加。特別是圖像放大的時(shí)候,需要考慮如何在擴(kuò)大后的空隙中加入新的圖像顏色數(shù)據(jù)。增加顏色數(shù)據(jù)的主要方法是根據(jù)周圍相近象素的顏色值進(jìn)行插值計(jì)算。

2.1.2圖像的縮放1.

imresize函數(shù)縮放圖像【例2-5】使用imresize函數(shù)縮小或放大圖像。下面程序把圖像縮小到原來的0.5倍。c=imread('D:\earth.jpg');c2=imresize(c,0.5);imshow(c2)下面程序把原圖像變成100行100列圖像,行數(shù)增加,使用插值函數(shù)完成顏色的填補(bǔ)。c=imread('D:\earth.jpg');c2=imresize(c,[100,100]);imshow(c2)

1.imresize函數(shù)縮放圖像2.

三種插值方法圖像放大后,需要增加像素,計(jì)算新增加的像素顏色值一般使用插值的方法。常用的插值方法有:最近鄰插值方法、雙線性插值方法、雙立方插值方法等。Imresize函數(shù)就使用這三種插值方法。

2.三種插值方法2.1.3圖像的旋轉(zhuǎn)Matlab使用imrotate函數(shù)旋轉(zhuǎn)圖像。例如,使用下面命令段可以把圖像逆時(shí)針旋轉(zhuǎn)30度。>>B=imread('saturn.tif');>>imshow(B)>>figure>>imrotate(B,30,'crop')這幾句命令繪制出圖2-7(a)與(b)圖。參數(shù)'crop'是旋轉(zhuǎn)的時(shí)候圖像底板大小保持不變,圖像大小也保持不變

2.1.3圖像的旋轉(zhuǎn)【例2-10】使用imrotate函數(shù)旋轉(zhuǎn)圖像,制作動(dòng)畫效果。編寫如下程序,可以制作出動(dòng)畫效果。I=imread('D:\imageprocess\LenaCircle.PNG');fori=1:10imrotate(I,36*i,'crop');end隨著i的每次增加,圖像依次逆時(shí)針旋轉(zhuǎn)36度、72度、……直到300度。旋轉(zhuǎn)時(shí)的中間結(jié)果如圖2-8所示。

【例2-10】使用imrotate函數(shù)旋轉(zhuǎn)圖像,制作動(dòng)畫效果2.2圖像的幾何變換

2.2.1畫圖軟件中的圖像扭曲

2.2.2圖像二維空間變換

2.2圖像的幾何變換2.2.1畫圖軟件中的圖像扭曲基于MATLAB圖像處理(第2版)講稿課件【例2-11】使用imtransform函數(shù)實(shí)現(xiàn)圖像平面扭曲功能。T=maketform('affine',[.500;.510;001]);I=imread('cameraman.tif');I2=imtransform(I,T);subplot(1,2,1)imshow(I)subplot(1,2,2)imshow(I2)程序的運(yùn)行結(jié)果如圖2-10所示。

【例2-11】使用imtransform函數(shù)實(shí)現(xiàn)圖像平面扭曲2.3圖像的加減乘除運(yùn)算

2.3.1圖像加減運(yùn)算

2.3.2圖像的乘除運(yùn)算

2.3圖像的加減乘除運(yùn)算2.3.1圖像加減運(yùn)算【例2-14】設(shè)計(jì)矩陣進(jìn)行圖像加減運(yùn)算。A=imread('D:\0045.jpg');s=size(A);%s(1),s(2)B=double(A);%Q1=zeros(s(1),s(2));%Q1大小與A一致Q2=zeros(s(1),s(2));form=s(1):-1:1%從s(1)到1,每次減1

forn=s(2):-1:1Q1(m,n)=m;Q2(m,n)=n;endendC(:,:,1)=B(:,:,1);C(:,:,2)=B(:,:,2)-Q2;C(:,:,3)=B(:,:,3)+Q1/3;【例2-14】設(shè)計(jì)矩陣進(jìn)行圖像加減運(yùn)算?!纠?-17】觀察分析圖像矩陣乘以或除以常數(shù)后圖像亮度的改變。設(shè)計(jì)下面程序,程序運(yùn)行結(jié)果是圖2-18。A=imread('D:\0010.jpg');A1=double(A);A2=A1*1.5;A3=A1/1.5;A2=uint8(A2);A3=uint8(A3);subplot(1,3,1);imshow(A)subplot(1,3,2);imshow(A2)subplot(1,3,3);imshow(A3)

【例2-17】觀察分析圖像矩陣乘以或除以常數(shù)后圖像亮度的改變圖像矩陣與圖像矩陣進(jìn)行逐元素對(duì)應(yīng)乘除運(yùn)算

【例2-18】利用矩陣對(duì)應(yīng)相乘把兩個(gè)圖像合成在一起。A=imread('D:\0045.jpg');B=imread('D:\0041.jpg');s=size(A);m=s(1),n=s(2);B1=imresize(B,[mn]);A=double(A);C=double(B1);D=A.*C/128;D=uint8(D);subplot(1,3,1);imshow(uint8(A))subplot(1,3,2);imshow(B)subplot(1,3,3);imshow(D)圖像矩陣與圖像矩陣進(jìn)行逐元素對(duì)應(yīng)乘除運(yùn)算兩個(gè)圖像矩陣按照數(shù)學(xué)上定義的乘法進(jìn)行運(yùn)算

兩個(gè)圖像矩陣按照數(shù)學(xué)上定義的乘法進(jìn)行運(yùn)算2.4圖像的特征值與奇異值

2.4.1圖像矩陣的特征值

2.4.2圖像矩陣的奇異值

2.4圖像的特征值與奇異值2.4.1圖像矩陣的特征值1圖像矩陣特征值矩陣特征值是這樣定義的:設(shè)A是[nn]矩陣,如果數(shù)λ與n維非零向量X滿足方程

則稱數(shù)λ為矩陣A的特征值,稱非零向量X為矩陣A的特征向量。在計(jì)算數(shù)學(xué)中,一般用迭代的方法求取矩陣的特征值。Matlab提供了求取特征值的函數(shù)eig(A),其中A是參數(shù),是要求取特征值的矩陣。

1圖像矩陣特征值設(shè)計(jì)下面程序段:A=imread('D:\shizi1.bmp');A1=rgb2gray(A);A2=double(A1);T=eig(A2);T'運(yùn)行程序后,得到灰度矩陣A1的特征值數(shù)據(jù):

設(shè)計(jì)下面程序段:使用下面程序可以求出并且在命令窗口顯示出圖像的特征向量。A=imread('D:\shizi1.bmp');A1=rgb2gray(A);A2=double(A1);[GT]=eig(A2);G變量G中存儲(chǔ)的就是灰度圖像A1的特征向量。

使用下面程序可以求出并且在命令窗口顯示出圖像的特征向量?;贛ATLAB圖像處理(第2版)講稿課件【例2-23】求圖像矩陣的奇異值。下面程序是求圖像shizi1.bmp的灰度矩陣的奇異值。A=imread('D:\shizi1.bmp');A1=rgb2gray(A);A2=double(A1);T=svd(A2);T'【例2-23】求圖像矩陣的奇異值。2.5圖像邏輯運(yùn)算

2.5.1二值圖像邏輯運(yùn)算

2.5圖像邏輯運(yùn)算2.5.1二值圖像邏輯運(yùn)算【例2-27】對(duì)二值圖像實(shí)施與、或、非、異或運(yùn)算。A1=imread('D:\1.bmp');A2=imread('D:\11.bmp');A3=imread('D:\0.bmp');A4=imread('D:\00.bmp');B1=im2bw(A1);B2=im2bw(A2);B3=im2bw(A3);B4=im2bw(A4);C1=B1&B3;%與操作C2=B2|B3;%或操作C3=~B1;%非操作C4=XOR(B3,B4);%異或操作subplot(2,4,1);imshow(B1)subplot(2,4,2);imshow(B2)subplot(2,4,3);imshow(B3)subplot(2,4,4);imshow(B4)subplot(2,4,5);imshow(C1)subplot(2,4,6);imshow(C2)subplot(2,4,7);imshow(C3)subplot(2,4,8);imshow(C4)

程序運(yùn)行結(jié)果如圖2-28所示。

【例2-27】對(duì)二值圖像實(shí)施與、或、非、異或運(yùn)算。A基于MATLAB圖像處理(第2版)講稿課件第3章圖像空間域處理與鄰域操作

3.1圖像增強(qiáng)

3.2圖像的鄰域操作

3.3圖像濾波函數(shù)及工作原理

3.4圖像膨脹與腐蝕

第3章圖像空間域處理與鄰域操作3.1圖像增強(qiáng)3.1圖像增強(qiáng)

3.1.1灰度調(diào)整

3.1.2灰度調(diào)整函數(shù)

3.1.3彩色圖像增強(qiáng)

3.1圖像增強(qiáng)3.1.1灰度調(diào)整統(tǒng)計(jì)每個(gè)顏色值的點(diǎn)的個(gè)數(shù),即直方圖統(tǒng)計(jì)的目的是為了確定增強(qiáng)的參數(shù)設(shè)置A=imread('pout.tif');A1=floor(double(A));s=size(A1);N=zeros(256);fori=1:s(1)forj=1:s(2)k=A1(i,j);N(k+1)=N(k+1)+1;endendbar(N)統(tǒng)計(jì)每個(gè)顏色值的點(diǎn)的個(gè)數(shù),即直方圖事實(shí)上,Matlab提供了函數(shù)imadjust、histeq、adapthiteq、brighten等進(jìn)行灰度調(diào)整。可以在以后的研究工作中直接使用Matlab中這些函數(shù)調(diào)整圖像灰度(顏色)對(duì)比度。

事實(shí)上,Matlab提供了函數(shù)imadjust、histeq1.imadjust函數(shù)函數(shù)imadjust可以將圖像的灰度值調(diào)整到一個(gè)指定的范圍,實(shí)現(xiàn)類似例3-3的功能,以增強(qiáng)圖像的明暗對(duì)比?!纠?-4】使用函數(shù)imadjust對(duì)圖像進(jìn)行灰度調(diào)整。編寫如下程序:A1=imread('pout.tif');B1=imadjust(A1,[0.20.5],[0,1]);A2=imread('cameraman.tif');B2=imadjust(A2,[0,0.2],[0.5,1]);subplot(1,4,1);imshow(A1)subplot(1,4,2);imshow(B1)subplot(1,4,3);imshow(A2)subplot(1,4,4);imshow(B2)程序的運(yùn)行結(jié)果如圖3-4所示。

1.imadjust函數(shù)基于MATLAB圖像處理(第2版)講稿課件2.stretchlim函數(shù)

函數(shù)stretchlim(A)是用來計(jì)算灰度矩陣A的最佳輸入?yún)^(qū)間,即imadjust(I,[LOW_INHIGH_IN],[LOW_OUTHIGH_OUT])中的第2個(gè)參數(shù)[LOW_INHIGH_IN]。所謂最佳是指按照這個(gè)區(qū)間輸入的話,圖像的灰度對(duì)比度最大。

例如,使用該函數(shù)計(jì)算例3-3中使用的圖像的最佳輸入?yún)^(qū)間為[0.30590.6314];'cameraman.tif'的最佳輸入?yún)^(qū)間為[0.03530.8039]。而下面例題3-5中的圖像'D:\imageprocess\IMG_7420.jpg'的最佳截取輸入?yún)^(qū)間為[0.16080.6941]。

2.stretchlim函數(shù)3.histeq函數(shù)函數(shù)histeq能夠自動(dòng)完成圖像灰度調(diào)整,一般用來增強(qiáng)圖像的灰度對(duì)比度?!纠?-6】使用函數(shù)histeq增強(qiáng)圖像灰度對(duì)比度。使用下面程序能夠得到圖3-9所示效果。I=imread('tire.tif');J=histeq(I);subplot(1,2,1);imshow(I)subplot(1,2,2);imshow(J)3.histeq函數(shù)4.brighten函數(shù)

【例3-7】使用函數(shù)brighten增加灰度圖像的亮度。設(shè)計(jì)下面程序:J=imread('D:\imageprocess\IMG_5943.jpg');A=rgb2gray(J);imshow(A)figure,imshow(A)brighten(0.6)figure,imshow(A)brighten(-0.6)

4.brighten函數(shù)RGB彩色圖像增強(qiáng)【例3-8】使用函數(shù)imadjust對(duì)RGB彩色圖像進(jìn)行顏色調(diào)整。RGB1=imread('flowers.tif');RGB2=imadjust(RGB1,[.2.30;.6.71]);subplot(1,2,1)imshow(RGB1)subplot(1,2,2)imshow(RGB2)RGB彩色圖像增強(qiáng)3.2圖像的鄰域操作

3.2.1鄰域操作

3.2.2Matlab鄰域操作函數(shù)

3.2圖像的鄰域操作3.2.1鄰域操作鄰域操作指在圖像處理時(shí),輸入要處理像素的某鄰域內(nèi)各個(gè)像素值,輸出要處理的像素的新值。鄰域操作是圖象處理(例如圖像增強(qiáng)、圖像濾波)時(shí)經(jīng)常用到的方法。使用該方法處理圖像時(shí)一般使用算子模板逐行(或逐列)在圖像上滑動(dòng),滑動(dòng)的時(shí)候?qū)δ0褰?jīng)過區(qū)域進(jìn)行運(yùn)算,把計(jì)算的結(jié)果作為區(qū)域中心像素的新值,所以有時(shí)也稱為滑動(dòng)鄰域操作。

鄰域操作指在圖像處理時(shí),輸入要處理像素的某鄰域內(nèi)各個(gè)像素鄰域操作方法充分地利用了圖像相鄰像素間的顏色關(guān)系,利用相鄰像素間的顏色分布對(duì)圖像進(jìn)行平滑、增強(qiáng)、邊緣提取、濾波、恢復(fù)等,圖像的腐蝕與膨脹操作也可以看作是鄰域操作的一種。

鄰域操作方法充分地利用了圖像相鄰像素間的顏色關(guān)系,利【例3-11】對(duì)小獅子圖像進(jìn)行鄰域操作,使小獅子圖像的輪廓變得清晰。

編寫如下程序,繪制出圖3-15(c)所示圖形。A1=imread('D:\shizi1.bmp');A2=double(A1);A3=floor((A2(:,:,1)+A2(:,:,2)+A2(:,:,3))/3);C=[-1-1-1-18-1-1-1-1];fori=2:15forj=2:15L=A3(i-1:i+1,j-1:j+1).*C;A4(i,j)=sum(sum(L));endendA4imshow(A4)

【例3-11】對(duì)小獅子圖像進(jìn)行鄰域操作,使小獅子圖像的輪廓變基于MATLAB圖像處理(第2版)講稿課件1.

nlfilter函數(shù)在Matlab中,nlfilter函數(shù)是最基本的鄰域操作函數(shù)。該函數(shù)被調(diào)用的一般形式為:B=nlfilter(A,[MN],FUN),其中A是被處理的圖像,[MN]表示滑動(dòng)塊的高為M、寬為N。FUN是要對(duì)滑動(dòng)覆蓋區(qū)域進(jìn)行操作的函數(shù)名,該函數(shù)可以是各種濾波算子,可以是任意定義的運(yùn)算。

1.nlfilter函數(shù)【例3-12】使用nlfilter函數(shù)進(jìn)行圖像鄰域操作。編寫下面程序,得到的結(jié)果顯示在圖3-17中。A=imread('D:\shizi.bmp');A1=rgb2gray(A);subplot(1,2,1);imshow(A1);fun=inline('median(x(:))');B=nlfilter(A1,[33],fun);subplot(1,2,2);imshow(B)

【例3-12】使用nlfilter函數(shù)進(jìn)行圖像鄰域操作。colfilt函數(shù)與nlfilter函數(shù)的另一個(gè)重要區(qū)別是colfilt函數(shù)在移動(dòng)的時(shí)候可以在'sliding'與'distinct'兩者中進(jìn)行選擇,而nlfilter函數(shù)只是執(zhí)行'sliding'操作。colfilt函數(shù)在選擇'distinct'時(shí),滑動(dòng)塊不再逐象素滑動(dòng),而是逐塊移動(dòng)??聪旅胬}:【例3-15】使用colfilt函數(shù)進(jìn)行圖像鄰域distinct操作。編寫如下程序:A=imread('D:\shizi1.bmp');A1=rgb2gray(A);A2=double(A1);f=inline('ones(16,1)*mean(x)');B=floor(colfilt(A2,[44],'distinct',f))

colfilt函數(shù)與nlfilter函數(shù)的另一個(gè)重要區(qū)別是c程序中distinct操作每次從前一個(gè)[44]圖像塊移動(dòng)到下一個(gè)[44]圖像塊,移動(dòng)時(shí)不互相重疊。一共移動(dòng)了16次,如圖3-20所示。

圖3-20使用colfilt函數(shù)distinct操作示意圖

程序中distinct操作每次從前一個(gè)[44]圖像基于MATLAB圖像處理(第2版)講稿課件3.3圖像濾波函數(shù)及工作原理

3.3.1濾波函數(shù)imfilter

3.3.2濾波器的定義

3.3圖像濾波函數(shù)及工作原理3.3.1濾波函數(shù)imf函數(shù)imfilter是Matlab中使用較多的濾波函數(shù),基本調(diào)用形式為:B=IMFILTER(A,H,OPTION)其中A為要進(jìn)行濾波的圖像矩陣,可以為多維的彩色圖像矩陣(數(shù)組);H是已經(jīng)定義的濾波算子。

函數(shù)imfilter是Matlab中使用較多的濾波函數(shù),基本【例3-17】使用函數(shù)imfilter對(duì)圖像進(jìn)行濾波,同時(shí)研究該函數(shù)的邊界參數(shù)的意義。rgb=imread('D:125.jpg');h=ones(5,5)/25;rgb1=imfilter(rgb,h);rgb2=imfilter(rgb1,h,'replicate');subplot(1,3,1),imshow(rgb),title('Original')subplot(1,3,2),imshow(rgb1),title('Filtered')subplot(1,3,3),imshow(rgb2),title('boundaryreplication')

【例3-17】使用函數(shù)imfilter對(duì)圖像進(jìn)行濾波,同時(shí)研【例3-18】使用函數(shù)imfilter對(duì)圖像進(jìn)行濾波,觀察濾波結(jié)果,分析幾個(gè)濾波器的區(qū)別。rgb=imread('D:003.bmp');h1=[000.00000.00210.00420.19580.19790.20000.19790.19580.00420.00210.000000];h2=[121;000;-1-2-1];h3=[0.16670.66670.16670.6667-3.33330.66670.16670.66670.1667];【例3-18】使用函數(shù)imfilter對(duì)圖像進(jìn)行濾波,觀察濾rgb1=imfilter(rgb,h1);rgb2=imfilter(rgb,h2);rgb3=imfilter(rgb,h3);subplot(2,2,1),imshow(rgb),title(‘原圖像’)subplot(2,2,2),imshow(rgb1),title(‘運(yùn)動(dòng)濾波’)subplot(2,2,3),imshow(rgb2),title(‘水平邊緣增強(qiáng)’)subplot(2,2,4),imshow(rgb3),title('拉普拉斯濾波')

rgb1=imfilter(rgb,h1);基于MATLAB圖像處理(第2版)講稿課件可以使用Matlab中的函數(shù)fspecial(T,P)產(chǎn)生一個(gè)由T指定的二維線性濾波器。參數(shù)T可以在下面選項(xiàng)中選取。'average'均值濾波器'disk'圓形均值濾波器'gaussian'高斯低通濾波器'laplacian'二維拉普拉斯濾波器'log'高斯拉普拉斯濾波器'motion'運(yùn)動(dòng)濾波器'prewitt'Prewitt水平邊緣增強(qiáng)濾波器'sobel'Sobel水平邊緣增強(qiáng)濾波器

可以使用Matlab中的函數(shù)fspecial(T,P)產(chǎn)生一3.4圖像膨脹與腐蝕

3.4.1二值圖像的膨脹與腐蝕運(yùn)算

3.4.2灰度圖像的膨脹與腐蝕

3.4.3開運(yùn)算與閉運(yùn)算

3.4圖像膨脹與腐蝕3.4.1二值圖像的膨脹與腐蝕運(yùn)算圖像膨脹與腐蝕也叫做數(shù)學(xué)形態(tài)學(xué)運(yùn)算。一般來說對(duì)于二值圖像,膨脹運(yùn)算后圖像中物體“加長”或“變粗”;腐蝕運(yùn)算后圖像中物體“收縮”或“細(xì)化”。下面先通過一些例題觀察分析膨脹與腐蝕后的效果

圖像膨脹與腐蝕也叫做數(shù)學(xué)形態(tài)學(xué)運(yùn)算。一般來說對(duì)于二值圖像【例3-22】對(duì)二值圖像實(shí)施膨脹運(yùn)算。A=imread('C:\MATLAB6p5\work\bc.bmp');B=~A;M=[1;1;1];N=[110];P=[001;010;000];Q=[001;000;100];C1=imdilate(B,M);C2=imdilate(B,N);C3=imdilate(B,P);C4=imdilate(B,Q);subplot(1,5,1);imshow(B)subplot(1,5,2);imshow(C1)subplot(1,5,3);imshow(C2)subplot(1,5,4);imshow(C3)subplot(1,5,5);imshow(C4)

【例3-22】對(duì)二值圖像實(shí)施膨脹運(yùn)算?;贛ATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件【例3-24】對(duì)二值圖像實(shí)施腐蝕運(yùn)算,并且與膨脹運(yùn)算進(jìn)行比較。A=imread('0370.bmp');B=im2bw(A);B=~B;M=strel('diamond',3);C1=imerode(B,M);C2=imdilate(B,M);subplot(1,3,1);imshow(B)subplot(1,3,2);imshow(C1)subplot(1,3,3);imshow(C2)

【例3-24】對(duì)二值圖像實(shí)施腐蝕運(yùn)算,并且與膨脹運(yùn)算進(jìn)行比較基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件第4章圖像變換

4.1圖像Radon變換

4.2Hadamard變換

第4章圖像變換4.1圖像Radon變換4.1圖像Radon變換

4.1.1函數(shù)Radon

4.1.2函數(shù)Iradon

4.1圖像Radon變換4.1.1函數(shù)RadonMatlab中提供了函數(shù)radon用來完成圖像Radon變換,該變換實(shí)質(zhì)上是計(jì)算指定方向上圖像矩陣的投影?!纠?-1】圖像Radon變換。A=imread('D:\0371.bmp');[C,x1]=radon(A,0);[D,x2]=radon(A,30);subplot(1,3,1);imshow(A)subplot(1,3,2);plot(x1,C)subplot(1,3,3);plot(x2,D)讀入圖像,然后調(diào)用radon函數(shù),變換后繪制出圖4-1(a)-(c)所示圖形

Matlab中提供了函數(shù)radon用來完成圖像Radon變換為了更好地進(jìn)行觀察,繪制了二值圖像0372.bmp,如圖4-1(d)所示。使用上面程序,對(duì)0372.bmp進(jìn)行變換,把程序中文件0371.bmp改為0372.bmp即可。得到的結(jié)果如圖4-1(e)、(f)所示。從這個(gè)結(jié)果能進(jìn)一步直觀的理解Radon變換。

為了更好地進(jìn)行觀察,繪制了二值圖像0372.bmp,上面是課后習(xí)題8中給出的關(guān)于radon變換的定義,從這個(gè)定義進(jìn)一步理解radon變換。

上面是課后習(xí)題8中給出的關(guān)于radon變換的定義,從這個(gè)Matlab也提供了函數(shù)iradon用來進(jìn)行逆Radon變換。例4-2先利用函數(shù)Radon計(jì)算一組旋轉(zhuǎn)角度下的Radon變換C,C是二維數(shù)組,記載著對(duì)應(yīng)于每個(gè)角度的變換后的數(shù)據(jù)。然后利用C及旋轉(zhuǎn)角度,使用函數(shù)Iradon重建圖像。

見下一頁Matlab也提供了函數(shù)iradon用來進(jìn)行逆Rad【例4-2】利用逆Radon變換復(fù)原圖像。設(shè)計(jì)如下程序B=imread('D:\0371.bmp');T=0:10:180;[C,x]=radon(B,T);%進(jìn)行了19次若當(dāng)變換D=iradon(C,T);subplot(1,3,1);imshow(B)subplot(1,3,2);imagesc(T,x,C)subplot(1,3,3);image(D)程序運(yùn)行結(jié)果見下頁圖4-2

【例4-2】利用逆Radon變換復(fù)原圖像?;贛ATLAB圖像處理(第2版)講稿課件4.3離散余弦變換

4.3.1離散余弦變換函數(shù)

4.3.2離散余弦變換的數(shù)學(xué)表達(dá)

4.3.3離散余弦變換矩陣與基函數(shù)

4.3離散余弦變換4.3.1離散余弦變換函數(shù)離散余弦變換(DCT)將圖像表示為具有不同振幅和頻率的離散的余弦曲線或曲面的和。Matlab提供了函數(shù)dct2來計(jì)算圖像的二維離散余弦變換。一幅圖像的大部分可視特征信息都可以用少量的DCT系數(shù)來表示,圖像的jpg壓縮格式主要是基于離散余弦變換方法。

離散余弦變換(DCT)將圖像表示為具有不同振幅和頻率函數(shù)Dct2

【例4-5】利用函數(shù)dct2對(duì)圖像進(jìn)行離散余弦變換。A=imread('D:\6.bmp');B=imread('D:\7.bmp');C=imread('D:\a.jpg');C1=im2bw(C);A1=dct2(A);B1=dct2(B);C2=dct2(C1);subplot(1,6,1);imshow(A)subplot(1,6,2);imshow(A1)subplot(1,6,3);imshow(B)subplot(1,6,4);imshow(B1)subplot(1,6,5);imshow(C1)subplot(1,6,6);imshow(C2)

函數(shù)Dct2基于MATLAB圖像處理(第2版)講稿課件幾個(gè)復(fù)雜圖像幾個(gè)復(fù)雜圖像【例4-7】利用函數(shù)idct2對(duì)圖像進(jìn)行逆離散余弦變換。D=imread('D:\0066.jpg');D1=rgb2gray(D);s=size(D1);D2=dct2(D1);D3=idct2(D2);P=zeros(s);P1=P;P2=P;P3=P;P1(1:10,1:10)=D2(1:10,1:10);P2(1:30,1:30)=D2(1:30,1:30);P3(1:60,1:60)=D2(1:60,1:60);E1=idct2(P1);E2=idct2(P2);E3=idct2(P3);subplot(2,3,1);imshow(D1);subplot(2,3,2);imshow(D2);subplot(2,3,3);image(D3)subplot(2,3,4);image(E1);subplot(2,3,5);image(E2);subplot(2,3,6);image(E3)

圖形見下頁:【例4-7】利用函數(shù)idct2對(duì)圖像進(jìn)行逆離散余弦變換?;贛ATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件【例4-10】設(shè)計(jì)程序,使其能夠?qū)崿F(xiàn)函數(shù)dct2的功能。A=imread('D:\6.bmp');s=size(A);M=s(1);N=s(2);ap0=sqrt(1/M);ap=sqrt(2/M);aq0=sqrt(1/N);aq=sqrt(2/N);forp=1:M-1forq=1:N-1k=0;form=0:M-1forn=0:N-1k=A(m+1,n+1)*cos(pi*(2*m+1)*p/(2*M))*cos(pi*(2*n+1)*q/(2*N))+k;endendB(p+1,q+1)=ap*aq*k;endend

【例4-10】設(shè)計(jì)程序,使其能夠?qū)崿F(xiàn)函數(shù)dct2的功能?;贛ATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件【例4-11】設(shè)計(jì)程序生成離散余弦變換的變換矩陣。設(shè)計(jì)下面程序:M=14;fori=2:Mforj=1:MP(i,j)=sqrt(2/M)*cos(((i-1)*(2*j-1)*pi)/(2*M));endendP(1,:)=sqrt(1/M);P14=P運(yùn)行程序能夠得到[1414]大小的變換矩陣P14。如何使用矩陣形式編寫程序?qū)崿F(xiàn)離散余弦變換?

【例4-11】設(shè)計(jì)程序生成離散余弦變換的變換矩陣。基于MATLAB圖像處理(第2版)講稿課件【例4-12】編制程序?qū)崿F(xiàn)逆離散余弦變換。

程序較長,參考教材:程序的難點(diǎn)在于循環(huán)語句嵌套在一起,中間又有分支語句。分支語句是為了解決分別有兩個(gè)值的問題。程序利用分支語句把各種情況都考慮進(jìn)來,把第一行第一列都計(jì)算出來,是一個(gè)比較完整的程序。

【例4-12】編制程序?qū)崿F(xiàn)逆離散余弦變換?;贛ATLAB圖像處理(第2版)講稿課件1.離散余弦變換矩陣生成函數(shù)dctmtxMatlab提供了函數(shù)dctmtx來生成離散余弦變換矩陣,相當(dāng)于例4-11實(shí)現(xiàn)的功能?!纠?-13】利用函數(shù)dctmtx生成離散余弦變換矩陣,然后使用該變換矩陣對(duì)圖像進(jìn)行離散余弦變換。A0=imread('D:\a.jpg');A=im2bw(A0);s=size(A);M=s(1);N=s(2);P=dctmtx(M);Q=dctmtx(N);B=P*A*Q’;

實(shí)驗(yàn)結(jié)果顯示與例4-5中得到的C2結(jié)果相同。(即語句C2=dct2(C1);得到的結(jié)果一樣)1.離散余弦變換矩陣生成函數(shù)dctmtx3.離散余弦變換基函數(shù)基函數(shù)是數(shù)學(xué)上一個(gè)非常重要的概念。1、x、x2、x3……乘以系數(shù)加到一起能夠組合成任意的多項(xiàng)式,1、x、x2、x3……就是一組基函數(shù)。簡單有規(guī)律的基函數(shù)可以構(gòu)造出一個(gè)函數(shù)集合或者函數(shù)空間。離散余弦變換可以用它的基函數(shù)組合而成。下面4-4式就表示離散余弦變換的基函數(shù),一共M*N個(gè)。下面是用圖像顯示的8*8的離散余弦變換的基函數(shù):3.離散余弦變換基函數(shù)下面是用圖像顯示的8*8的離散余弦變換基于MATLAB圖像處理(第2版)講稿課件上機(jī)或者課后作業(yè):1.修改例4-10中的程序,使其也能夠計(jì)算出變換后第一行與第一列的值。2.修改例4-11中的程序,把該程序修改成為函數(shù),使其輸入?yún)?shù)M,就能夠計(jì)算出M階的離散余弦變換的變換矩陣。

上機(jī)或者課后作業(yè):第5章圖像分析

5.1圖像的灰度統(tǒng)計(jì)特性

5.2圖像的輪廓提取與區(qū)域分割

5.3圖像的四叉樹分解

5.4圖像的紋理分析

5.5圖像的圖形化

5.6視頻圖像

第5章圖像分析5.1圖像的灰度統(tǒng)計(jì)特性5.1圖像的灰度統(tǒng)計(jì)特性

5.1.1圖像的象素操作

5.1.2圖像的區(qū)域?qū)傩远攘?/p>

5.1.3圖像的顏色直方圖

5.1.4圖像的方差及相關(guān)系數(shù)

5.1圖像的灰度統(tǒng)計(jì)特性5.1.1圖像的象素操作其實(shí)對(duì)圖像進(jìn)行的最基本操作是對(duì)圖像進(jìn)行像素操作。在目前的計(jì)算方式下,對(duì)圖像進(jìn)行的一切操作本質(zhì)上都是從像素開始的。與很多語言一樣,Matlab也提供了圖像(圖形)像素操作功能。Matlab的像素操作函數(shù)有pixval與impixel等。

其實(shí)對(duì)圖像進(jìn)行的最基本操作是對(duì)圖像進(jìn)行像素操作。在目前的1.pixval函數(shù)pixval函數(shù)可以交互顯示圖像上像素的顏色值。該函數(shù)還可以顯示兩個(gè)像素點(diǎn)之間的歐氏距離?!纠?-1】pixval函數(shù)的使用。A=imread('D:\0059.jpg');A1=rgb2gray(A);A2=dct2(A1);A3=fft2(A1);subplot(1,4,1);imshow(A)subplot(1,4,2);imshow(A1)subplot(1,4,3);imshow(A2)subplot(1,4,4);imshow(A3)pixval;

交互取點(diǎn)情況見下圖1.pixval函數(shù)基于MATLAB圖像處理(第2版)講稿課件【例5-2】impixel函數(shù)的使用。A=imread('D:\0059.jpg');A1=rgb2gray(A);A2=dct2(A1);A3=fft2(A1);subplot(1,4,1);imshow(A);[x1,y1,B1]=impixelsubplot(1,4,2);imshow(A1);[x2,y2,B2]=impixelsubplot(1,4,3);imshow(A2)subplot(1,4,4);imshow(A3)程序運(yùn)行后,先顯示第一個(gè)子圖,然后等待選取。單擊要選取的位置,再右擊,該位置的坐標(biāo)以及該點(diǎn)的顏色值被存儲(chǔ)在[x1,y1,B1]中。同時(shí),第二個(gè)子圖出現(xiàn),同樣操作后,坐標(biāo)以及顏色值被存儲(chǔ)在[x2,y2,B2]中。

【例5-2】impixel函數(shù)的使用。圖像的區(qū)域?qū)傩杂忻娣e值、圖像中的洞孔數(shù)目、圖像的質(zhì)心等。本節(jié)先分別使用函數(shù)bwarea()與bweuler()計(jì)算二值圖像的前景面積與圖像中的洞孔數(shù)目。然后自編程序計(jì)算圖像質(zhì)心,接著介紹Matlab的特征計(jì)算函數(shù)imfeature()。最后使用這些函數(shù)編寫幾個(gè)程序解決實(shí)際問題。

圖像的區(qū)域?qū)傩杂忻娣e值、圖像中的洞孔數(shù)目、圖像的質(zhì)心1.區(qū)域面積【例5-4】使用bwarea函數(shù)計(jì)算二值圖像的前景面積。A=imread('D:\6.bmp');%A、B、C、D都是二值圖像B=imread('D:\0.bmp');C=imread('D:\shouxieshuzi.bmp');D=imread('D:\0371.bmp');E0=imread('D:\0059.jpg');E=im2bw(E0);k(1)=bwarea(~A);k(2)=bwarea(~B);k(3)=bwarea(~C);k(4)=bwarea(~D);k(5)=bwarea(~E);subplot(1,5,1);imshow(A)subplot(1,5,2);imshow(B)subplot(1,5,3);imshow(C)subplot(1,5,4);imshow(D)subplot(1,5,5);imshow(~E)k%圖在下面1.區(qū)域面積k=1.0e+005*0.00760.02540.14870.16691.8463因?yàn)閳D像大小不同,在Matlab的subplot中顯示為一樣大小。但實(shí)際上數(shù)據(jù)是準(zhǔn)確的。

k=1.0e+005*【例5-5】使用bweuler函數(shù)計(jì)算二值圖像的歐拉數(shù)。設(shè)計(jì)下面程序:A=imread('D:\shouxieshuzi.bmp');A1=~A;B=imread('D:\003.bmp');B=im2bw(B);B1=~B;ka=bweuler(A1)kb=bweuler(B1)subplot(1,2,1);imshow(A1)subplot(1,2,2);imshow(B1)程序的運(yùn)行結(jié)果是:ka=9,kb=-2。

【例5-5】使用bweuler函數(shù)計(jì)算二值圖像的歐拉數(shù)?!纠?-8】函數(shù)imfeature的調(diào)用方法。A=imread('D:\8.bmp');L=bwlabel(A);sta=imfeature(L,'Area','Centroid')程序運(yùn)行結(jié)果是:sta=Area:3155Centroid:[37.601967.2447]在使用函數(shù)imfeature(L,‘P’)時(shí),可以在參數(shù)P的位置寫入Area、Centroid、BoundingBox等,能夠直接計(jì)算出相應(yīng)的特性。

圖像8.bmp只有一個(gè)連通區(qū)域,所以只計(jì)算出一個(gè)面積,一個(gè)質(zhì)心。

【例5-8】函數(shù)imfeature的調(diào)用方法。5.圖像區(qū)域特性計(jì)算應(yīng)用實(shí)例

【例5-10】計(jì)算數(shù)字的歐拉數(shù)識(shí)別數(shù)字8。使用Windows的畫圖書寫印刷體數(shù)字如圖5-8所示,以二值方式存儲(chǔ)在D盤,文件名為shibie8yi.bmp。編寫下面程序:A=imread('D:\shibie8yi.bmp');L=bwlabel(A);e=imfeature(L,'EulerNumber');fori=1:25e(i)endimshow(A)

歐拉數(shù)為-1的就是數(shù)字8。

5.圖像區(qū)域特性計(jì)算應(yīng)用實(shí)例下面是一個(gè)完整的程序,能夠計(jì)算出圖5-8中圖像的8在第幾個(gè)區(qū)域。A=imread('D:\shibie8yi.bmp');L=bwlabel(A);e=imfeature(L,'EulerNumber');imshow(A)fori=1:25ife(i).EulerNumber==-1iendend計(jì)算結(jié)果是打印出8、16、19。即第8個(gè)、第16個(gè)、第19個(gè)數(shù)字。

下面是一個(gè)完整的程序,能夠計(jì)算出圖5-8中圖像的8在第幾個(gè)區(qū)1.灰度圖像直方圖【例5-12】求灰度圖像直方圖。A=imread('D:\0067.jpg');B0=rgb2gray(A);B=double(B0);s=size(B);h=zeros(1,256);fori=1:s(1)forj=1:s(2)k=B(i,j);k=floor(k);h(k+1)=h(k+1)+1;endendsubplot(1,3,1);imshow(B0)subplot(1,3,2);imhist(B0)subplot(1,3,3);plot(h)程序的運(yùn)行結(jié)果如圖5-9所示。

1.灰度圖像直方圖(a)原圖像(b)imhist函數(shù)繪制的直方圖(c)自編程序語句繪制的直方圖圖5-9計(jì)算并繪制圖像的直方圖

(a)原圖像(b)imhist函數(shù)繪制的直方圖(c)自編【例5-15】使用函數(shù)mean2計(jì)算圖像的均值。下面兩條語句構(gòu)成的程序就可以計(jì)算圖像的均值。A=imread('D:\6781.bmp');m=mean2(A)

基于MATLAB圖像處理(第2版)講稿課件【例5-16】計(jì)算向量的標(biāo)準(zhǔn)偏差。設(shè)計(jì)下面程序:A=[125689];m=mean(A);s0=0;fori=1:6s0=s0+(A(i)-m)^2;ends1=s0/5;s=sqrt(s1)該程序計(jì)算向量A的標(biāo)準(zhǔn)偏差,計(jì)算的結(jié)果是:3.1885【例5-16】計(jì)算向量的標(biāo)準(zhǔn)偏差。【例5-19】使用函數(shù)corrcoef計(jì)算幾個(gè)圖像的相關(guān)系數(shù)。fori=1:5k=int2str(i);k1=strcat('D:\',k,'a.bmp');B1(i,:,:)=imread(k1);k2=strcat('D:\',k,'b.bmp');B1(i+5,:,:)=imread(k2);subplot(2,5,i),C(:,:)=B1(i,:,:);imshow(C);subplot(2,5,i+5),C(:,:)=B1(i+5,:,:);imshow(C);endC1(:,:)=B1(1,:,:);C2(:,:)=B1(2,:,:);C3(:,:)=B1(3,:,:);C4(:,:)=B1(4,:,:);C5(:,:)=B1(5,:,:);C6(:,:)=B1(6,:,:);C7(:,:)=B1(7,:,:);C8(:,:)=B1(8,:,:);C9(:,:)=B1(9,:,:);C10(:,:)=B1(10,:,:);M=corrcoef(double(C1),double(C2))%圖像在下頁【例5-19】使用函數(shù)corrcoef計(jì)算幾個(gè)圖像的相關(guān)系數(shù)(a)1a(b)2a(c)3a(d)4a(e)5a

(f)1b(g)2b(h)3b(i)4b(j)5b

(a)1a(b)2a(c)3a(d)基于MATLAB圖像處理(第2版)講稿課件5.2圖像的輪廓提取與區(qū)域分割

5.2.1圖像的輪廓提取

5.2.2圖像的邊緣輪廓提取方法分析

5.2.3圖像的區(qū)域分割

5.2圖像的輪廓提取與區(qū)域分割5.2.1圖像的輪廓提取圖像的輪廓提取主要依據(jù)圖像本身的顏色分布。例如提取二值圖像輪廓可以查找某個(gè)非零像素點(diǎn)臨近是否有0點(diǎn),0元素是如何分布的;提取灰度圖像輪廓可以憑借灰度分布的梯度(導(dǎo)數(shù)),梯度變化比較大的地方就是輪廓;提取彩色圖像輪廓時(shí),可以把圖像化為灰度圖像,然后進(jìn)行提取,也可以根據(jù)某個(gè)彩色分量矩陣直接提取圖像輪廓。

圖像的輪廓提取主要依據(jù)圖像本身的顏色分布。Matlab提供了二值圖像輪廓提取函數(shù)bwperim。【例5-20】使用函數(shù)bwperim提取二值圖像的輪廓。設(shè)計(jì)下面程序:A=imread('D:\6782.bmp');EA=bwperim(A);subplot(1,2,1)imshow(A)subplot(1,2,2)imshow(EA)該程序的運(yùn)行結(jié)果如圖5-15所示。

Matlab提供了二值圖像輪廓提取函數(shù)bwperim?!纠?-22】使用函數(shù)imcontour繪制手寫數(shù)字灰度圖像的等值線。A=imread('D:\123456.jpg');A1=rgb2gray(A);imshow(A1);figureimcontour(A1);【例5-22】使用函數(shù)imcontour繪制手寫數(shù)字灰度圖像【例5-23】圖像邊緣提取。設(shè)計(jì)下面程序:I=imread('D:\911.jpg');BW1=edge(I);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(BW1)【例5-23】圖像邊緣提取。圖像邊緣提取檢測的基本原理圖像邊緣提取檢測的基本原理基于MATLAB圖像處理(第2版)講稿課件Edge函數(shù)中含有多個(gè)邊緣提取算法,這些算法利用參數(shù)形式調(diào)用,例如'roberts'、'sobel'、'prewitt'等代表著各種算法,都是基于上述差分及梯度原理設(shè)計(jì)的,提取邊緣時(shí)就是使用這些算子進(jìn)行鄰域操作。

Edge函數(shù)中含有多個(gè)邊緣提取算法,這些算法利用參數(shù)I=imread('D:\0043.jpg');level=80/255;BW=im2bw(I,level);imshow(BW)程序運(yùn)行后分離的結(jié)果如圖5-27所示。

level=80/255;,之所以選擇這個(gè)閾值,是有下面的程序估算出來的I=imread('D:\0043.jpg');leve【例5-27】根據(jù)灰度直方圖確定一個(gè)閾值,分離圖像的前景與背景。A=imread('D:\0043.jpg');B=rgb2gray(A);subplot(1,2,1);imshow(B)B=double(B);subplot(1,2,2);hist(B)

程序運(yùn)行結(jié)果如圖5-26所示。

【例5-27】根據(jù)灰度直方圖確定一個(gè)閾值,分離圖像的前景與背下面例題給出了自動(dòng)確定閾值的方法,即迭代確定閾值方法?!纠?-28】迭代方法確定閾值。A=imread('D:\0043.jpg');B=rgb2gray(A);T=0.5*(double(min(B(:)))+double(max(B(:))));d=false;while~dg=B>=T;Tn=0.5*(mean(B(g))+mean(B(~g)));d=abs(T-Tn)<0.5;T=Tn;endT

【思考題】為什么這種方法能夠計(jì)算出近似的閾值?

下面例題給出了自動(dòng)確定閾值的方法,即迭代確定閾值方法。作業(yè),教材課后習(xí)題,三、程序設(shè)計(jì)題中的4與6題。作業(yè),教材課后習(xí)題,三、程序設(shè)計(jì)題中的4與6題。5.4圖像的紋理分析

5.4.1圖像的紋理濾波函數(shù)

5.4.2圖像的灰度級(jí)別共生矩陣函數(shù)

5.4.3圖像紋理的數(shù)學(xué)描述

5.4圖像的紋理分析5.4.1圖像的紋理濾波函數(shù)函數(shù)調(diào)用語句J=rangefilt(I)返回與I同樣維數(shù)的數(shù)組J,J中的每個(gè)元素值都是I中對(duì)應(yīng)元素的鄰域內(nèi)最大值減去最小值得到的,默認(rèn)情況下使用[33]鄰域。I可以是灰度圖像,也可以是彩色圖像。

函數(shù)調(diào)用語句J=rangefilt(I)返回與I同樣維數(shù)的數(shù)基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件【例5-36】局部熵函數(shù)entropyfilt(A)的工作方法。A=imread('F:\images\Waterlilies.jpg');A1=rgb2gray(A);B=entropyfilt(A1);subplot(1,2,1),imshow(A1);subplot(1,2,2),imshow(B,[]);程序的運(yùn)行結(jié)果為圖5-34所示。

【例5-36】局部熵函數(shù)entropyfilt(A)的工作方【例5-37】使用函數(shù)Graycomatrix計(jì)算像素對(duì)出現(xiàn)的頻率。I=[111585235712123567]K=graycomatrix(I,'G',[])

計(jì)算出的結(jié)果為:K=220010000020000000002000

0000000000000111000000101000000000001000

【例5-37】使用函數(shù)Graycomatrix計(jì)算像素對(duì)出現(xiàn)基于MATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件5.5圖像的圖形化

5.5.1圖像灰度信息的提取及三維化

5.5.2圖像迭代重構(gòu)

5.5圖像的圖形化5.5.1圖像灰度信息的提取及三維化【例5-43】從圖像提取三維圖形數(shù)據(jù)。A=imread('D:\face2.jpg');A1=rgb2gray(A);s=size(A1);subplot(1,3,1);imshow(A1);subplot(1,3,2)fori=1:2:s(1)forj=1:2:s(2)plot3(i,j,A1(i,j));holdonendendview([80,82])

【例5-43】從圖像提取三維圖形數(shù)據(jù)。一個(gè)灰度圖像是一個(gè)離散的二元函數(shù),平面(x,y)位置上有一個(gè)高度值z,如圖5-36(a)所示。根據(jù)混沌理論,把各個(gè)圖像化為一個(gè)三維單位區(qū)域上的函數(shù),然后,使用多個(gè)圖像依串插迭代,可以重構(gòu)圖像。

一個(gè)灰度圖像是一個(gè)離散的二元函數(shù),平面(x,y)位置上有一個(gè)基于MATLAB圖像處理(第2版)講稿課件5.6視頻圖像

5.6.1視頻圖像內(nèi)容關(guān)聯(lián)性分析

5.6.2視頻圖像濾波

5.6視頻圖像5.6.1視頻圖像內(nèi)容關(guān)聯(lián)性分析視頻圖像是由一幀幀具有關(guān)聯(lián)的圖像構(gòu)成的,充分利用這些聯(lián)系來處理視頻圖像是本章要研究的內(nèi)容。這里的視頻圖像主要取自于電影、電視劇、新聞、體育、娛樂以及動(dòng)漫產(chǎn)品等。在1.1.6節(jié)中,就已經(jīng)涉及到序列圖像的存儲(chǔ)與顯示了。在這一節(jié)中更深入的討論序列圖像的存儲(chǔ)、顯示與表示等內(nèi)容。

視頻圖像是由一幀幀具有關(guān)聯(lián)的圖像構(gòu)成的,充分利用這些【例5-47】足球序列彩色圖像的差。fori=1:9k=int2str(i);k1=strcat('D:\imageprocess\chanshe0',k,'.jpg');B(i,:,:,:)=double(imread(k1));endfori=1:8C(:,:,:)=B(i+1,:,:,:)-B(i,:,:,:);C1=imadjust(C,[,],[0,1]);subplot(3,3,i);imshow(C1);end

【例5-47】足球序列彩色圖像的差?;贛ATLAB圖像處理(第2版)講稿課件基于MATLAB圖像處理(第2版)講稿課件【例5-49】簡單的幀平均濾波方法。設(shè)計(jì)下面程序:M=uint8(zeros(128,128,1,5));fori=1:5[M(:,:,:,i),map]=imread('d:\image\024.gif',i);N(:,:,i)=ind2gray(M(:,:,:,i),map);subplot(1,5,i),imshow(N(:,:,i))end

【例5-49】簡單的幀平均濾波方法?!纠?-50】簡單的幀中值濾波方法。M=uint8(zeros(128,128,1,5));fori=1:5[M(:,:,:,i),map]=imread('d:\image\024.gif',i);N(:,:,i)=ind2gray(M(:,:,:,i),map);N(:,:,i)=imnoise(N(:,:,i),'salt&pepper',0.05);subplot(1,5,i),imshow(N(:,:,i))endfori=1:3fork1=1:128fork2=1:128Q(k1,k2,i)=median([N(k1,k2,i),N(k1,k2,i+1),N(k1,k2,i+2)]);endendsubplot(1,3,i),imshow(Q(:,:,i));end

【例5-50】簡單的幀中值濾波方法。課后習(xí)題選講課后習(xí)題選講第6章圖像應(yīng)用程序設(shè)計(jì)

6.1圖像編碼

6.2圖像信息隱藏

6.3圖像理解

6.4圖像處理軟件開發(fā)

第6章圖像應(yīng)用程序設(shè)計(jì)6.1圖像編碼本章主要介紹圖像編碼、圖像信息隱藏、圖像理解以及圖像軟件開發(fā)。在這些內(nèi)容的學(xué)習(xí)過程中,一方面強(qiáng)化前面章節(jié)內(nèi)容的學(xué)習(xí),一方面主要是培養(yǎng)圖像處理應(yīng)用程序設(shè)計(jì)能力,同時(shí)了解圖像軟件開發(fā)的一些相關(guān)技術(shù)。

本章主要介紹圖像編碼、圖像信息隱藏、圖像理解以及圖像軟件開發(fā)6.1圖像編碼

6.1.1Huffman編碼

6.1.2離散余弦變換編碼

6.1.3小波變換編碼

6.1圖像編碼6.1.1Huffman編碼圖像編碼,本質(zhì)上來說,就是為了一定的目的對(duì)圖像數(shù)據(jù)按約定的規(guī)則進(jìn)行變換和組合,得到新的數(shù)據(jù)集合。如果目的是以盡可能少的代碼來表示盡可能多的數(shù)據(jù)信息,那么這種編碼就是圖像壓縮;如果目的是防止傳輸?shù)倪^程中被竊取,那么這種編碼就是圖像信息隱藏。

圖像編碼,本質(zhì)上來說,就是為了一定的目的對(duì)圖像數(shù)據(jù)按約定的規(guī)從編碼對(duì)象上可以把圖像編碼分為靜止圖像編碼、視頻(活動(dòng))圖像編碼、二值圖像編碼等;從信息損失的角度可以分為有損編碼與無損編碼;從具體的編碼技術(shù)角度可以分為空域法、變換域法,還可以分為像素編碼、預(yù)測編碼、變換編碼等。

從編碼對(duì)象上可以把圖像編碼分為編碼是計(jì)算機(jī)處理數(shù)據(jù)時(shí)使用的一種通用方法。例如,一個(gè)文件中出現(xiàn)了5種字符a、b、c、d、e,那么就可以用000,001,010,011,100表示這5個(gè)字符。字符串a(chǎn)bcaaaaccde就可以表示為:000001010000000000000010010011100。這種表示方法一共需要33比特。這種編碼方式是可行的,如果傳輸不出現(xiàn)差錯(cuò)的話,可以按照約定準(zhǔn)確地讀出所表達(dá)的字符串。不過這種方法還可以進(jìn)一步改進(jìn),使其更加高效。例如,可以使用下面的霍夫曼編碼方法進(jìn)行編碼。

編碼是計(jì)算機(jī)處理數(shù)據(jù)時(shí)使用的一種通用方法。例如,一個(gè)文件中出基于MATLAB圖像處理(第2版)講稿課件【例6-3】設(shè)計(jì)程序計(jì)算例6-1中各個(gè)數(shù)據(jù)元素的霍夫曼編碼值。globalstaticCP=[5/113/111/111/111/11];C=cell(length(P),1);s=cell(length(P),1);fori=1:length(P)s{i}=i;endwhilenumel(s)>2[P,i]=sort(P);P(2)=P(1)+P(2);P(1)=[];s=s(i);s{2}={s{1},s{2}};s(1)=[];endmakec(s,[]);C【例6-3】設(shè)計(jì)程序計(jì)算例6-1中各個(gè)數(shù)據(jù)元素的霍夫曼編碼值functionmakec(sc,cod)globalstaticCifisa(sc,'cell')makec(sc{1},[cod0]);makec(sc{2},[cod1]);elseC{sc}=char('0'+cod);end

functionmakec(sc,cod)【例6-5】利用離散余弦變換以及相關(guān)函數(shù)對(duì)圖像進(jìn)行分塊變換與復(fù)原。A=imread('D:\0059.jpg');A1=rgb2gray(A);A2=im2double(A1);T=dctmtx(8);B=blkproc(A2,[88],'P1*x*P2',T,T');mask1=[1000000000000000000000000000000000000000000000000000000000000000];

溫馨提示

  • 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)論