基于MATLABGUI的數(shù)字圖像處理.doc
《基于MATLABGUI的數(shù)字圖像處理.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于MATLABGUI的數(shù)字圖像處理.doc(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
數(shù)字視音頻技術(shù)課程設(shè)計(jì)報(bào)告題 目:基于MATLAB GUI的數(shù)字圖像處理專業(yè)名稱: 電子信息工程 班 級(jí): 電信 092 學(xué) 號(hào): 910706201 姓 名: XXX 2012年 11月基于MATLAB GUI的數(shù)字圖像處理XXX中文摘要:本文以MATLAB軟件的圖形用戶界面(GUI)開發(fā)環(huán)境和圖像處理工具箱為平臺(tái)設(shè)計(jì)了數(shù)字圖像綜合處理系統(tǒng),通過(guò)編寫不同的按鈕代碼,實(shí)現(xiàn)數(shù)字圖像的翻轉(zhuǎn)、旋轉(zhuǎn)、亮度調(diào)節(jié)、對(duì)比度調(diào)節(jié)和反色、浮雕、復(fù)古、連環(huán)畫等功能,操作簡(jiǎn)單且美觀。關(guān)鍵詞: MATLAB 數(shù)字圖像處理 GUI1 設(shè)計(jì)內(nèi)容和環(huán)境條件在MATLAB中,GUI1是一個(gè)包含多種對(duì)象的圖形窗口,并為GUI開發(fā)提供一個(gè)方便高效的集成開發(fā)環(huán)境GUIDE。GUIDE主要是一個(gè)界面設(shè)計(jì)工具集,MATLAB將所有GUI支持的控件都集成在這個(gè)環(huán)境中,并提供界面外觀、屬性和行為響應(yīng)方式的設(shè)置方法。GUIDE將設(shè)計(jì)好的GUI保存在一個(gè)FIG文件中,同時(shí)還生成M文件框架。其中FIG文件包括GUI圖形窗口及其所有FIG文件包含序列化的圖形窗口對(duì)象;M文件包括GUI設(shè)計(jì)、控制函數(shù)以及定義為子函數(shù)的用戶控件回調(diào)函數(shù)。GUI創(chuàng)建包括界面設(shè)計(jì)和控件編程兩部分,主要步驟如下:通過(guò)設(shè)置GUIDE應(yīng)用程序的選項(xiàng)來(lái)運(yùn)行GUIDE;使用界面設(shè)計(jì)編輯器進(jìn)行界面設(shè)計(jì);編寫控件行為響應(yīng)控制(即回調(diào)函數(shù))代碼。在MATLAB中,GUIDE提供多個(gè)模板來(lái)定制GUI。這些模板均已包括相關(guān)的回調(diào)函數(shù),可以通過(guò)修改相應(yīng)的M文件函數(shù)實(shí)現(xiàn)指定功能。2 方案論證 本設(shè)計(jì)涉及到MATLAB中GUIDE工具的使用,通過(guò)創(chuàng)建菜單型界面,來(lái)實(shí)現(xiàn)圖像的處理。該設(shè)計(jì)打算通過(guò)編寫不同的按鈕代碼,實(shí)現(xiàn)數(shù)字圖像的翻轉(zhuǎn)、旋轉(zhuǎn)、亮度調(diào)節(jié)、對(duì)比度調(diào)節(jié)和反色、浮雕、復(fù)古、連環(huán)畫等功能。 旋轉(zhuǎn)是指圖像繞圖像原點(diǎn)進(jìn)行任一角度的幾何變換,本設(shè)計(jì)通過(guò)建立兩個(gè)不同的界面,通過(guò)界面間數(shù)據(jù)傳遞的方法來(lái)實(shí)現(xiàn)對(duì)圖像的不同角度的旋轉(zhuǎn)。本設(shè)計(jì)用到了MATLAB中提供的imrotate函數(shù)。圖像的翻轉(zhuǎn),包括圖像的上下翻轉(zhuǎn)和左右翻轉(zhuǎn)。對(duì)于彩色圖像,上下翻轉(zhuǎn)利用flipud函數(shù)實(shí)現(xiàn),左右翻轉(zhuǎn)使用liplr函數(shù)實(shí)現(xiàn)。而對(duì)于二值圖像則通過(guò)矩陣間的關(guān)系來(lái)實(shí)現(xiàn)。在進(jìn)行亮度調(diào)節(jié)和對(duì)比度調(diào)節(jié)時(shí),雖然可以以對(duì)話框的形式輸入調(diào)節(jié)的比例系數(shù),但實(shí)際效果不好,操作也不方便,故選擇滾動(dòng)條來(lái)調(diào)節(jié)。圖像的亮度調(diào)節(jié)即對(duì)圖像明亮程度的調(diào)節(jié),通過(guò)加大或減小每個(gè)像素的三色數(shù)來(lái)調(diào)節(jié)。應(yīng)用公式:V = Vx(1 + d),其中,(-1 d 1),式中:V為調(diào)整后顏色值,V為原顏色值,d為亮度調(diào)整系數(shù)。圖像的對(duì)比度調(diào)節(jié),利用函數(shù)g=127+(f-127)(1+d)加強(qiáng)黑到白的漸變。在圖像特效方面,所謂圖像反色就是將原圖像灰度值翻轉(zhuǎn),簡(jiǎn)單說(shuō)來(lái)就是使黑變白,使白變黑。假設(shè)對(duì)灰度級(jí)范圍是0,L-1的圖像求反,就是通過(guò)變換將0,L-1變換到L-1,0。實(shí)現(xiàn)圖像浮雕效果,一般是將圖像上每個(gè)像素點(diǎn)與其對(duì)角線的像素點(diǎn)形成差值,使相似顏色值淡化,不同顏色值突出,從而產(chǎn)生縱深感,達(dá)到浮雕的效果。其他圖像特效的實(shí)現(xiàn)均是通過(guò)自編函數(shù)達(dá)成的,將在設(shè)計(jì)過(guò)程中說(shuō)明。3 設(shè)計(jì)過(guò)程3.1界面設(shè)計(jì) 在命令窗口中直接輸入guide命令,彈出如圖1所示的窗口,在彈出的guide quick start窗口中,在Create New GUI選項(xiàng)卡中選擇Blank GUI(default),并點(diǎn)擊確定按鈕,進(jìn)入圖形用戶界面來(lái)設(shè)計(jì)系統(tǒng)靜態(tài)界面,圖2就是Guide提供的圖形界面設(shè)計(jì)工具集【3】,在此界面下就可以利用控件組件、文本菜單、排列工具等對(duì)系統(tǒng)的界面進(jìn)行設(shè)計(jì)。 圖1 創(chuàng)建GUI 圖2 空白界面各控件的放置如圖3所示,并通過(guò)屬性檢查器等對(duì)各控件進(jìn)行相應(yīng)的設(shè)置。 圖3 設(shè)計(jì)界面效果圖3.2程序設(shè)計(jì)3.2.1文件右擊“打開”按鈕,選擇“callback”跳轉(zhuǎn)到回調(diào)函數(shù)的編寫。在Matlab中,創(chuàng)建文件打開對(duì)話框的函數(shù)是uigetfile。其主要代碼如下:filename, pathname = uigetfile(*.bmp; *.jpg; *.png; *.jpeg; *.tif; *.gif, Image Files, 打開圖像); %設(shè)置顯示打開的圖像類型if isequal(filename, 0) | isequal(pathname, 0) %圖像路徑的合法性判斷 return;end圖像的保存,同樣通過(guò)對(duì)話框的形式來(lái)保存圖像數(shù)據(jù)。通過(guò)uigetfile函數(shù)選擇文件名和路徑,最后用imwrite函數(shù),把數(shù)據(jù)im存到指定的文件。其代碼如下: if filterindex = 0 %選擇取消,不保存圖像 return; else %圖像另存為 str = pathname filename; imwrite(im, str); end“原圖”的設(shè)置,通過(guò)再次獲取原圖的路徑后進(jìn)行讀取顯示,使其恢復(fù)到原圖狀態(tài)。3.2.2翻轉(zhuǎn)和旋轉(zhuǎn) 對(duì)圖像進(jìn)行上下、左右翻轉(zhuǎn)時(shí),必須先進(jìn)行圖像性質(zhì)的判斷(二值圖像還是彩色圖像),而后進(jìn)行相應(yīng)的翻轉(zhuǎn)代碼的實(shí)現(xiàn),左右翻轉(zhuǎn)代碼如下:if (length(size(im) = 3) %判斷圖像是否是彩色圖像 height,width = size(im); im_flip = zeros(height,width); for i = 1 : width im_flip(:,i) = im(:,width-i+1); end im = uint8(im_flip); axes(handles.axes1); imshow(im);else %利用fliplr函數(shù)進(jìn)行圖像的左右變換 im(:,:,1) = fliplr(im(:,:,1); im(:,:,2) = fliplr(im(:,:,2); im(:,:,3) = fliplr(im(:,:,3); axes(handles.axes1); imshow(im);end左右翻轉(zhuǎn)所實(shí)現(xiàn)的效果如圖4所示。 圖4 左右翻轉(zhuǎn)效果圖 上下翻轉(zhuǎn)代碼的設(shè)計(jì)同左右翻轉(zhuǎn)代碼的設(shè)計(jì)類似。實(shí)現(xiàn)上下翻轉(zhuǎn)就要把頂部的第一個(gè)像素值通過(guò)中間變量賦值給原最底部像素值所在的位置,從上到下通過(guò)中間變量依次賦值直到最底部的像素值賦值給原最頂部像素值所在的位置。其彩色圖像可利用flipud函數(shù)實(shí)現(xiàn)。效果如圖5所示。 圖5 上下翻轉(zhuǎn)效果圖圖像旋轉(zhuǎn),是通過(guò)兩個(gè)界面間數(shù)據(jù)傳遞的方法來(lái)實(shí)現(xiàn)對(duì)圖像的不同角度的旋轉(zhuǎn)。故必須建立一個(gè)新的FIG界面,并命名為“image_rotate.fig”,界面設(shè)置效果如圖6所示。主界面的“旋轉(zhuǎn)”按鈕通過(guò)image_rotate函數(shù)來(lái)調(diào)用圖6所示界面。點(diǎn)擊“確認(rèn)”按鈕的旋轉(zhuǎn)效果是利用imrotate函數(shù)實(shí)現(xiàn),代碼如下:angle=get(handles.edit1,string);handles.im1=imrotate(handles.im1,str2num(angle);guidata(hObject,handles);uiresume(handles.figure1);若輸入角度為45,其旋轉(zhuǎn)效果圖如圖7所示。 圖6 旋轉(zhuǎn)界面設(shè)計(jì) 圖7 旋轉(zhuǎn)效果圖3.2.3 基本調(diào)節(jié) 亮度調(diào)節(jié)和對(duì)比度調(diào)節(jié)是利用滾動(dòng)條實(shí)現(xiàn)的。亮度調(diào)節(jié)通過(guò)自編函數(shù)實(shí)現(xiàn)代碼如下:function INew, globalImage = brighter(globalImage, pre, d) INew = globalImage*(d + 0.5)/(pre + 0.5); globalImage = INew; index = find(INew 255); INew(index) = 255; INew = uint8(INew);效果如圖8所示。 對(duì)比度調(diào)節(jié)的自編函數(shù)代碼如下:function IContrast = imContrast(I,d); I = double(I); INew = 127 + (I-127)*(1+d); index= find(INew 255); INew(index) = 255; index= find(INew 1);IComic(index)=1;IComic = rgb2gray(IComic);IComic = uint8(255* IComic);- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 MATLABGUI 數(shù)字圖像 處理
鏈接地址:http://ioszen.com/p-6686996.html