數(shù)字圖像處理課程設(shè)計(jì)報(bào)告.doc
本科綜合課程設(shè)計(jì)報(bào)告數(shù)字圖像處理演示系統(tǒng)題 目 _指導(dǎo)教師_輔導(dǎo)教師_學(xué)生姓名_學(xué)生學(xué)號_052通信工程 信息科學(xué)與技術(shù)學(xué)院_ 院(部)_專業(yè)_班_2008_年 _12_月 _30_日1 主要內(nèi)容1.1 數(shù)字圖像處理背景及應(yīng)用數(shù)字圖像處理的目的是改善圖像的質(zhì)量,它以人為對象,以改善人的視覺效果為目的。目前,圖像處理演示系統(tǒng)應(yīng)用領(lǐng)域廣泛醫(yī)學(xué)、軍事、科研、商業(yè)等領(lǐng)域。因?yàn)閿?shù)字圖像處理技術(shù)易于實(shí)現(xiàn)非線性處理,處理程序和處理參數(shù)可變,故是一項(xiàng)通用性強(qiáng),精度高,處理方法靈活,信息保存、傳送可靠的圖像處理技術(shù)。本圖像處理演示系統(tǒng)以數(shù)字圖像處理理論為基礎(chǔ),對某些常用功能進(jìn)行界面化設(shè)計(jì),便于初級用戶的操作。1.2 圖像處理演示系統(tǒng)設(shè)計(jì)要求能加載和顯示原始圖像,顯示和輸出處理后的圖像;系統(tǒng)要便于維護(hù)和具備可擴(kuò)展性;界面友好便于操作;1.3 圖像處理演示系統(tǒng)設(shè)計(jì)任務(wù) 數(shù)字圖像處理演示系統(tǒng)應(yīng)該具備圖像的幾何變換(平移、縮放、旋轉(zhuǎn)、翻轉(zhuǎn))、圖像增強(qiáng)(空間域的平滑濾波與銳化濾波)的簡單處理功能。1.3.1幾何變換 幾何變換又稱為幾何運(yùn)算,它是圖像處理和圖像分析的重要內(nèi)容之一。通過幾何運(yùn)算,可以根據(jù)應(yīng)用的需要使原圖像產(chǎn)生大小、形狀、和位置等各方面的變化。簡單的說,幾何變換可以改變像素點(diǎn)所在的幾何位置,以及圖像中各物體之間的空間位置關(guān)系,這種運(yùn)算可以被看成是將各物體在圖像內(nèi)移動,特別是圖像具有一定的規(guī)律性時(shí),一個(gè)圖像可以由另外一個(gè)圖像通過幾何變換來產(chǎn)生。實(shí)際上,一個(gè)不受約束的幾何變換,可將輸入圖像的一個(gè)點(diǎn)變換到輸出圖像中的任意位置。幾何變換不僅提供了產(chǎn)生某些特殊圖像的可能,甚至還可以使圖像處理程序設(shè)計(jì)簡單化。從變換性質(zhì)來分可以分為圖像的位置變換、形狀變換等1.3.2圖像增強(qiáng) 圖像增強(qiáng)是數(shù)字圖像處理的基本內(nèi)容之一,其目的是根據(jù)應(yīng)用需要突出圖像中的某些“有用”的信息,削弱或去除不需要的信息,以達(dá)到擴(kuò)大圖像中不同物體特征之間的差別,使處理后的圖像對于特定應(yīng)用而言,比原始圖像更合適,或者為圖像的信息提取以及其他圖像分析技術(shù)奠定了基礎(chǔ)。一般情況下,經(jīng)過增強(qiáng)處理后,圖像的視覺效果會發(fā)生改變,這種變化意味著圖像的視覺效果得到了改善,某些特定信息得到了增強(qiáng)。 2 設(shè)計(jì)思想:2.1 圖像處理演示系統(tǒng)實(shí)現(xiàn)工具的選擇使用MATLAB軟件進(jìn)行界面設(shè)計(jì)及程序編寫。2.2 選擇MATLAB軟件原因之所以選擇MATLAB工具是因?yàn)椋篗ATLAB是集數(shù)值計(jì)算,符號運(yùn)算及圖形處理等強(qiáng)大功能于一體的科學(xué)計(jì)算語言。作為強(qiáng)大的科學(xué)計(jì)算平臺,它幾乎能夠滿足所有的計(jì)算需求。MATLAB全稱是Matrix Laboratory(矩陣實(shí)驗(yàn)室),一開始它是一種專門用于矩陣數(shù)值計(jì)算的軟件,從這一點(diǎn)上也可以看出,它在矩陣運(yùn)算上有自己獨(dú)特的特點(diǎn)。實(shí)際上MATLAB中的絕大多數(shù)的運(yùn)算都是通過矩陣這一形式進(jìn)行的。這一特點(diǎn)也就決定 了MATLAB在處理數(shù)字圖像上的獨(dú)特優(yōu)勢。理論上講,圖像是一種二維的連續(xù)函數(shù),然而在計(jì)算機(jī)上對圖像進(jìn)行數(shù)字處理的時(shí)候,首先必須對其在空間和亮度上進(jìn)行數(shù)字化,這就是圖像的采樣和量化的過程。二維圖像進(jìn)行均勻采樣,就可以得到一幅離散化成MN樣本的數(shù)字圖像,該數(shù)字圖像是一個(gè)整數(shù)陣列,因而用矩陣來描述該數(shù)字圖像是最直觀最簡便的了。而MATLAB的長處就是處理矩陣運(yùn)算,因此用MATLAB處理數(shù)字圖像非常的方便。MATLAB支持五種圖像類型,即索引圖像、灰度圖像、二值圖像、RGB圖像和多幀圖像陣列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等圖像文件格式的讀,寫和顯示。MATLAB對圖像的處理功能主要集中在它的圖像處理工具箱(Image Processing Toolbox)中。圖像處理工具箱是由一系列支持圖像處理操作的函數(shù)組成,可以進(jìn)行諸如幾何操作、線性濾波和濾波器設(shè)計(jì)、圖像變換、圖像分析與圖像增強(qiáng)、二值圖像操作以及形態(tài)學(xué)處理等圖像處理操作。23 系統(tǒng)結(jié)構(gòu)框圖圖像處理系統(tǒng)文件 圖 像增 強(qiáng)幾何變換繪制直方圖幫助打開保存平滑濾波增強(qiáng)銳化濾波增強(qiáng)圖像的平移圖像的旋轉(zhuǎn)圖像的縮放圖像的翻轉(zhuǎn)橫軸翻轉(zhuǎn)縱軸翻轉(zhuǎn)3 圖形用戶界面設(shè)計(jì)GUI是實(shí)現(xiàn)人機(jī)交互的中介,可以通過它實(shí)現(xiàn)數(shù)據(jù)輸入、處理和輸出。MATLAB提供了一個(gè)專門的GUI設(shè)計(jì)工具圖形用戶界面開發(fā)環(huán)境(GUIDE),使用該工具,可以快速完成GUI設(shè)計(jì)任務(wù)。利用MATLAB提供的有關(guān)數(shù)據(jù),還可以創(chuàng)建工具欄控件和多種對話框。3.1啟動GUIDE 在命令窗口中鍵入guide,啟動GUIDE,顯示如下圖所示的“GUIDE Quick Start” 對話框 。打開“GUIDE Quick Start”對話框,利用GUIDE 模板創(chuàng)建新的GUI,選擇一個(gè)模板后,單機(jī)OK 按鈕,在輸出編輯器中打開GUI。如下:3.2 輸出編輯器 在GUIDE中打開GUI以后,它顯示在輸出編輯器中。輸出編輯器是所有GUIDE工具的控制面板。 可以通過拖拉控件來設(shè)計(jì)GUI,這些控件位于輸出編輯器左側(cè)的工具箱中,有按鈕、彈出式菜單和坐標(biāo)系等多種。也可以用輸出編輯器設(shè)置GUI控件的基本屬性。3.3 GUIDE模板 “GUIDE Quick Start”對話框提供了幾種基本類型的GUI模板。使用模板的好處是可以通過改模板來快速創(chuàng)建。選擇一種模板以后,它的預(yù)覽效果顯示在右面的面板中。3.4 菜單編輯器 利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和彈出式菜單。在GUIDE中單機(jī)工具欄上的按鈕,或者選擇“Tools”菜單中的“Menu Editor”選項(xiàng),打開菜單編輯器的界面,如下圖所示:上圖中左上角第一個(gè)按鈕用于創(chuàng)建下拉式菜單。用戶可以通過單擊它來創(chuàng)建下拉式主菜單。第二個(gè)按鈕用于創(chuàng)建下拉式主菜單的子菜單運(yùn)行后效果如下:最終GUI運(yùn)行效果圖如下:首次運(yùn)行后會自動生成zhankeUI.m和zhankeUI.fig兩個(gè)文件,默認(rèn)目錄設(shè)在MATLAB安裝目錄下的work文件夾里,zhankeUI.m中存放的是GUI的相關(guān)編碼,以及相關(guān)控件的回調(diào)函數(shù),今后可以對其進(jìn)行代碼修改,添加,刪除等操作,zhankeUI.fig是GUI的界面文件。今后主要是對zhankeUI.m文件里面代碼的相關(guān)操作以實(shí)現(xiàn)相關(guān)功能!4 圖像處理演示系統(tǒng)各功能的實(shí)現(xiàn)4.1文件的打開與保存4.1.1文件的打開在主菜單“文件”的下拉菜單中,有個(gè)“打開”選項(xiàng),在其回調(diào)函數(shù)中添加打開某個(gè)文件的相關(guān)代碼:fname,pname=uigetfile(*.bmp;*.jpeg;*.gif, Open the file)fname為將要打開文件的文件名,pname為將要打開文件的路徑。Uigetfile函數(shù)中主要有兩部分參數(shù)*.bmp;*.jpeg;*.gif是想要打開文件的格式,Open the file是生成文件選擇打開對話框的標(biāo)題,此段代碼運(yùn)行效果如下:圖 4.1.1 打開一幅圖像從上圖中選擇需要進(jìn)行操作的文件,將其打開以便后續(xù)操作圖4.1.2 打開一幅圖像后在界面窗口顯示在打開回調(diào)函數(shù)中我希望同時(shí)對文件進(jìn)行相關(guān)數(shù)據(jù)的讀取,以便在今后的處理操作中可以方便的調(diào)用,讀取完圖像數(shù)據(jù)后在窗口中顯示圖像,相關(guān)代碼如下:V=strcat(pname,fname); %將圖像賦值給變量Vhandles.my_data1=V guidata(hObject,handles) %更新句柄數(shù)據(jù)axes(handles.axes7) %添加一坐標(biāo)軸用來指定顯示圖像的區(qū)域imshow(V) %顯示選取的圖像 當(dāng)執(zhí)行以上代碼時(shí)會有一種情況出現(xiàn)錯(cuò)誤,那就是當(dāng)我們進(jìn)行“打開”文件操作時(shí)候,如上圖 Open,在這里當(dāng)我們沒有選擇文件,而將窗口強(qiáng)行關(guān)閉或選擇了程序無法識別的文件格式時(shí),命令窗口會提示錯(cuò)誤,所以加入如下代碼進(jìn)行處理:if fname < 5 returnend對打開的文件名長度進(jìn)行判斷,確定有文件打開時(shí)會進(jìn)行下面的操作,當(dāng)沒有文件時(shí)退出,整個(gè)回調(diào)函數(shù)如下:fname,pname=uigetfile(*.bmp;*.jpeg;*.gif,Open the file)L=length(fname)if fname < 5 returnendV=strcat(pname,fname);handles.my_data1=Vguidata(hObject,handles)axes(handles.axes7)imshow(V)4.1.2文件的保存 newfile,newpath=uiputfile(*.bmp,Save file name) 準(zhǔn)備把當(dāng)前文件*.bmp保存到當(dāng)前目錄下,文件保存對話框中列出當(dāng)前目錄下的所有文件,保存的文件名和路徑名保存到newfile和newpath中。 4.2 圖像的增強(qiáng)4.2.1 圖像的平滑濾波處理1)平滑濾波的作用:對圖像的高頻分量進(jìn)行消弱或消除,增強(qiáng)圖像的低頻分量。平滑濾波一般用于消除圖像中的隨即噪聲,從而起到圖像平滑的作用2)平滑濾波原理:(1)鄰域平均濾波法鄰域平均濾波法是將一個(gè)像素點(diǎn)及其鄰域中的所有像素點(diǎn)的平均值賦給輸出圖像中相應(yīng)的像素點(diǎn),從而達(dá)到平滑的目的,又稱均值濾波法。最簡單的鄰域平均濾波法是所有模板系數(shù)都取相同的值. 鄰域平均濾波法的運(yùn)算公式為: g(x,y)=1/N f(i.j) x,y=0,1,2,N-1 j=M 其中,M是以(x,y)為中心的鄰域像素點(diǎn)的集合,N是該鄰域內(nèi)像素點(diǎn)的總個(gè)數(shù),對每個(gè)像素點(diǎn)按該公式進(jìn)行計(jì)算即可得到增強(qiáng)圖像中所有像素點(diǎn)的灰度值。(2)中值濾波法 盡管鄰域平均濾波法可以起到平滑圖像的作用,但在消除噪聲的同時(shí)會使圖像中的一些細(xì)節(jié)變得模糊。中值濾波法則在消除噪聲的同時(shí)還能保持圖像中的細(xì)節(jié)部分,防止圖像的邊緣部分模糊。 與鄰域平均法不同,中值濾波是將鄰域內(nèi)所有的像素點(diǎn)值按從小到大的順序排列,取中間值作為中心像素點(diǎn)的輸出值。其原理是利用一個(gè)奇數(shù)點(diǎn)的移動窗口,將窗口中心點(diǎn)的值用窗口各點(diǎn)的中間值代替,與均值濾波不同,它不是通過對鄰域內(nèi)的所有像素點(diǎn)求平均值來消除噪聲的,而是讓與周圍像素點(diǎn)灰度值的差比較大的像素點(diǎn)改取近似于周圍像素點(diǎn)灰度值的值。從而達(dá)到消除噪聲的目的。3)實(shí)現(xiàn)方法:采用鄰域平均法對圖像進(jìn)行處理,實(shí)現(xiàn)方法如下:for i=2:w-1 forj=2:h-1 I_1(i,j)=uint8(double(I(i-1,j-1)+double(I(i-1,j)+double(I(i-1,j+1)+double(I(i,j-1)+double(I(i,j)+double(I(i,j+1)+double(I(i+1,j-1)+double(I(i+1,j)+double(I(i+1,j+1)/9); endend采用中值濾波法對圖像進(jìn)行處理,其實(shí)現(xiàn)方法如下:for i=2:w-1 for j=2:h-1 for m=1:3 for n=1:3 hhh(m-1)*3+n)=I(i+m-2,j+n-2); end end for p=1:9 for q=p+1:9 if(hhh(p)>hhh(q) temp=hhh(p); hhh(p)=hhh(q); hhh(q)=temp; end end end I_2(i,j)=hhh(5); end end 圖4.2.1 圖像空域的平滑濾波處理結(jié)果4.2.2圖像的銳化濾波處理1) 銳化濾波的作用:圖像的平滑處理會使圖像的邊緣紋理信息受到損失,圖像變得比較模糊。如果需要突出圖像的邊緣紋理信息,則可以通過銳化濾波器實(shí)現(xiàn),它可以消除或減弱圖像的低頻分量從而增強(qiáng)圖像中物體的邊緣輪廓信息,使得除邊緣以外的像素點(diǎn)的灰度值趨向于零。2)銳化濾波原理 銳化濾波器是以對圖像的微分運(yùn)算或差分運(yùn)算為基礎(chǔ)。微分運(yùn)算是求像素點(diǎn)灰度值的變化率,而圖像內(nèi)不同物體邊緣處的像素點(diǎn)的灰度值往往變化比較明顯,因此微分運(yùn)算或差分運(yùn)算可以起到增強(qiáng)邊緣信息的作用。銳化算子: 0 -1 0 H = -1 4 -1 0 -1 03)實(shí)現(xiàn)方法:for i=1:m-2 for j=1:n-2 b(i+1,j+1)=abs(4*x(i+1,j+1)-x(i,j+1)-x(i+1,j)-x(i+1,j+2)-x(i+2,j+1); endend圖4.2.2 模板銳化濾波結(jié)果4.3 圖像的幾何變換4.3.1 對圖像進(jìn)行平移1)圖像平移的作用: 將圖像中的某點(diǎn)從一個(gè)位置(X,Y)移動到另外一個(gè)位置(X0,Y0),而使平移后的圖像與原始圖像完全相同。2)圖像平移原理:圖像的平移是圖像變換中最簡單的變換之一,其特點(diǎn)是平移后的圖像與原圖像完全相同,平移后新圖像上的每一個(gè)點(diǎn)都可以在原圖像中找到對應(yīng)的點(diǎn)。若點(diǎn)A0(X0,Y0)進(jìn)行平移后,被移到A(X,Y),其中X方向的平移量為X.Y方向的平移量為Y,那么點(diǎn)A(X,Y)的坐標(biāo)為:X=X0+XY=Y0+Y操作中需要輸入平移的橫縱量,變量的輸入代碼如下prompt=請輸入橫向平移量;title=;ansa=inputdlg(prompt,title);x1=str2num(ansa1); handles.my_data4=x1;prompt=請輸入縱向平移量;title=;ansa=inputdlg(prompt,title);y1=str2num(ansa1);handles.my_data5=y1;guidata(hObject,handles)%上段代碼中的x1,y1即為需要輸入的橫向平移量與縱向平移量執(zhí)行后出現(xiàn)如圖界面:3)實(shí)現(xiàn)方法:for x=1:w for y=1:h PosSourceX=uint16(x+x1); PosSourceY=uint16(y+y1);if(PosSourceX<1) | (PosSourceX>w) | (PosSourceY<1) | (PosSourceY>h) if (xx.BitDepth= =24) Transfor(x, y,1:3) = uint8(1); else Transfor(x, y) = uint8(1); end else if (xx.BitDepth= =24)Transfor(x,y,1:3) = BmpImage(PosSourceX,PosSourceY,1:3); else Transfor(x,y) = BmpImage(PosSourceX,PosSourceY); end end end end figure; imshow(Transfor)%(PosSourceX和 PosSourceY是平移后坐標(biāo)點(diǎn),Transfor為平移后圖片)圖4.3.1 圖像的平移結(jié)果4.3.2 對圖像進(jìn)行縮放1)圖像縮放的作用: 對圖像進(jìn)行縮小和放大的處理,可分別對其寬和高的縮放量進(jìn)行設(shè)置。2)圖像縮放原理:通常情況下,數(shù)字圖像的比例縮放是將給定的圖像在X方向和Y方向按相同比例縮放a倍。從而獲得一副新的圖像,如果X方向和Y方向縮放的比例不同,則圖像的比例縮放會改變原始圖像像素之間的相對位置,產(chǎn)生幾何畸變。設(shè)原始圖像中的點(diǎn)A0(X0,Y0)比例縮放后,在新圖像中的對應(yīng)點(diǎn)為A1(X1,Y1),則坐標(biāo)關(guān)系可表示為:X1=aX0Y1=bX0 若比例縮放所產(chǎn)生的圖像中的像素在原圖像中沒有相對應(yīng)的像素點(diǎn)時(shí),就需要進(jìn)行灰度值的插值運(yùn)算,一般有以下兩種插值處理方法。(1) 直接賦值為和它最相近的像素灰度值,這種方法稱為最鄰近插值法,該方法的主要特點(diǎn)是簡單、計(jì)算量很小、但可能會產(chǎn)生馬賽克現(xiàn)象;(2) 通過其他數(shù)學(xué)插值算法來計(jì)算相應(yīng)像素點(diǎn)的灰度值,這類方法處理效果好,但運(yùn)算量會有所增加對圖像進(jìn)行縮放時(shí)需要輸入縮放的倍數(shù),其相關(guān)代碼如下:prompt=請輸入X向縮放倍數(shù):;title=;ansa=inputdlg(prompt,title);sx=str2num(ansa1);handles.my_data3=sx;guidata(hObject,handles)%上段代碼中的sx即為下圖中所輸入的倍數(shù)同理可設(shè)置Y向縮放倍數(shù)sy.3)實(shí)現(xiàn)方法:m=xx.Width;n=xx.Height;m1=m*sx;n1=n*sy;for h=1:m1;for w=1:n1;b(h,w)=i(round(h/sx),round(w/sy);%round 取最鄰近整數(shù) endend(m,n為原始圖像的二維數(shù)據(jù),m1,n1為縮放后的圖像二維數(shù)據(jù),xx為讀取的原始圖像信息)圖4.3.2 圖像的縮放結(jié)果4.3.3 對圖像進(jìn)行旋轉(zhuǎn)1)圖像旋轉(zhuǎn)的作用:對圖像進(jìn)行任意角度的旋轉(zhuǎn)。2)圖像旋轉(zhuǎn)原理:圖像的旋轉(zhuǎn)變換是幾何學(xué)中研究的重要內(nèi)容之一,一般情況下,圖像的旋轉(zhuǎn)變換是指以圖像的中心為原點(diǎn),將圖像上的所有像素都旋轉(zhuǎn)同一個(gè)角度的變換。圖像經(jīng)過旋轉(zhuǎn)變換之后,圖像的位置發(fā)生了改變,但旋轉(zhuǎn)后,圖像的大小一般會改變。和平移變換一樣,在圖像旋轉(zhuǎn)變換中既可以把轉(zhuǎn)出顯示區(qū)域的圖像截去,又可以擴(kuò)大顯示區(qū)域的圖像范圍以顯示圖像的全部。設(shè)原始圖像的任意點(diǎn)A0(X0,Y0)經(jīng)過旋轉(zhuǎn)角度以后到新的位置A(X,Y),為表示方便,采用極坐標(biāo)形式表示,原始點(diǎn)的角度為。如下圖所示 P r A(X,Y) r A0(X0,Y0) 根據(jù)極坐標(biāo)與二維垂直坐標(biāo)的關(guān)系,原始圖像的點(diǎn)A0(X0,Y0)的X0和Y0坐標(biāo)如下: X0=rcos Y0=rsin 旋轉(zhuǎn)到新位置以后點(diǎn)A(X,Y)的坐標(biāo)如下:X=rcos(-)=rcoscos+rsinsin=X0cos+Y0sinY=rsin(-)=rsincos-rcossin=-X0sin+Y0cos圖像的旋轉(zhuǎn)變換用矩陣形式表示如下: X cos sin 0 X0 Y = -sin cos 0 Y0 1 0 0 1 1對圖像進(jìn)行旋轉(zhuǎn)操作時(shí)需要輸入旋轉(zhuǎn)角度,相關(guān)實(shí)現(xiàn)代碼如下:prompt=請輸入旋轉(zhuǎn)角度:;title=Angle Degrees;ansa=inputdlg(prompt,title);n=str2num(ansa1);handles.my_data2=n; % n為我們輸入的角度值guidata(hObject,handles)V=handles.my_data1;n=handles.my_data2;G=imread(V);i=rgb2gray(G);pai=3.14;n=pai*n/180; %將角度轉(zhuǎn)換為直觀的表示方法,便于直接輸入度數(shù)。上段代碼執(zhí)行如下:3)實(shí)現(xiàn)方法:%計(jì)算原圖像各像素的新坐標(biāo)for indexX=0:(X-1) for indexY=0:(Y-1) ImageNew(round(indexX*cos(n)-indexY*sin(n)+round(abs(min(LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)+1,1+round(indexX*sin(n)+indexY*cos(n)+round(abs(min(LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)=i(indexX+1,indexY+1); end end圖4.3.3 圖像旋轉(zhuǎn)處理結(jié)果4.3.4對圖像進(jìn)行橫軸翻轉(zhuǎn)和縱軸翻轉(zhuǎn)1)圖像翻轉(zhuǎn)的作用:實(shí)現(xiàn)圖像的水平和垂直方向的翻轉(zhuǎn)。2)圖像翻轉(zhuǎn)原理:垂直方向:yh-y+1水平方向:xw-x+1其中為h圖像高,w為圖像寬3)實(shí)現(xiàn)方法: if (xx.BitDepth=24)Transfor(x, y,1:3) = uint8(1); else Transfor(x, y) = uint8(1); end else if (xx.BitDepth=24)Transfor(x,y,1:3) = BmpImage(PosSourceX,PosSourceY,1:3); else Transfor(x,y) = BmpImage(PosSourceX,PosSourceY); end end(Transfor為翻轉(zhuǎn)后圖像,PosSourceX,PosSourceY為翻轉(zhuǎn)后坐標(biāo)) 圖4.3.4 圖像的橫軸翻轉(zhuǎn)和縱軸翻轉(zhuǎn)4.4 圖像直方圖的繪制1) 圖像直方圖繪制的作用:實(shí)現(xiàn)圖像直方圖的均衡化。 2)圖像直方圖均衡原理:直方圖均衡化是將原圖像的直方圖通過變換函數(shù)修正為均勻的直方圖,然后按均衡直方圖修正原圖像。 圖像均衡化處理后,圖像的直方圖是平直的,即各灰度級具有相同的出現(xiàn)頻數(shù),那么由于灰度級具有均勻的概率分布,圖像看起來就更清晰了。 首先假定連續(xù)灰度級的情況,推導(dǎo)直方圖均衡化變換公式,令r代表灰度級,P ( r ) 為概率密度函數(shù)。 (注:r值已歸一化,最大灰度值為1)。3)實(shí)現(xiàn)方法:V = handles.my_data1;xx=imfinfo(V);Bmpimage=imread(V);w=xx.Width; h=xx.Height;grey_grade=2xx.BitDepth;for i=1:grey_grade grey_friq(i)=0;endfor y=1:w for x=1:h for r=1:grey_grade if Bmpimage(x,y)=r grey_friq(r)=grey_friq(r)+1; end end endendfigure;subplot(2,2,3);imshow(Bmpimage);subplot(2,2,1);for i=2:grey_grade line(i,i,0,grey_friq(i);endfor i=1:grey_grade sk(i)=0; p_eq(i)=0;endsk(1)=grey_friq(1)/(w*h);for i=2:grey_grade sk(i)=sk(i-1)+grey_friq(i)/(w*h);endfor i=1:h for j=1:w transfor(i,j)=uint8(sk(Bmpimage(i,j)*255+0.5); endendfor i=1:grey_grade p_eq(uint8(sk(i)*255+0.5)=p_eq(uint8(sk(i)*255+0.5)+grey_friq(i);endsubplot(2,2,2);for i=1:uint8(sk(i)*255+0.5) line(i,i,0,p_eq(i);endsubplot(2,2,4);imshow(transfor);圖4.4.1 原圖像直方圖及均衡化效果5 小結(jié)從通常意義上講,數(shù)字圖像處理技術(shù)更加普遍、可靠和準(zhǔn)確,比起模擬方法,它們也更容易實(shí)現(xiàn),專用的硬件被用于數(shù)字圖像處理。今天,硬件解決方案被廣泛的用于視頻處理系統(tǒng),但商業(yè)化的圖像處理任務(wù)基本上仍以軟件形式實(shí)現(xiàn),運(yùn)行在通用個(gè)人電腦上,掌握進(jìn)一步的圖像處理技能對今后的學(xué)習(xí)和工作生活也都有其積極的影響!通過這個(gè)階段的努力本圖像處理演示系統(tǒng)已基本完成了對文件的打開保存,以及對圖像的平移、圖像的旋轉(zhuǎn)、翻轉(zhuǎn)、圖像的縮放、圖像的增強(qiáng)等功能的實(shí)現(xiàn),由于個(gè)人水平和時(shí)間的有限,此次課程設(shè)計(jì)還存在許多想法沒有很好的實(shí)現(xiàn),擴(kuò)展功能上也有一定的局限性,希望能在今后的學(xué)習(xí)中逐漸彌補(bǔ)和改善! 參考文獻(xiàn)1蘇金明,阮沈勇著.MATLAB實(shí)用教程(第二版)M . 北京:電子工業(yè)出版社 ,2008 . 22章毓晉著.圖像處理和分析M . 北京:清華大學(xué)出版社 , 1999 . 33 美 Rafael C . Gonzalez . 數(shù)字圖像處理(第二版)M . 阮秋琦 阮宇智,譯.北京:電子工業(yè)出版社,2003 . 3.