基于余弦變換的圖像壓縮-副本_第1頁
基于余弦變換的圖像壓縮-副本_第2頁
基于余弦變換的圖像壓縮-副本_第3頁
基于余弦變換的圖像壓縮-副本_第4頁
基于余弦變換的圖像壓縮-副本_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

武漢工程大學(xué)本科課程設(shè)計(論文)PAGEIIIPAGE14題目基于余弦變換的圖像壓縮專業(yè)班級學(xué)號學(xué)生姓名指導(dǎo)教師指導(dǎo)教師職稱學(xué)院名稱完成日期:年月日目錄TOC\o"1-2"\h\u目錄 I摘要 II前言 IV第1章課題背景 11.1背景 1第2章實現(xiàn)步驟 22.1二維離散余弦變換(DCT)原理 22.2基于DCT圖像壓縮程序流程 22.3MATLAB的相關(guān)函數(shù)介紹 3第3章詳細(xì)設(shè)計與實現(xiàn) 43.1主界面設(shè)計 43.2測試結(jié)果 53.3程序部分源代碼 8第4章總結(jié) 12致謝 13參考文獻(xiàn) 14摘要離散余弦變換(DiscreteCosineTransform,簡稱DCT變換)是一種與傅立葉變換緊密相關(guān)的數(shù)學(xué)運算。在傅立葉級數(shù)展開式中,如果被展開的函數(shù)是實偶函數(shù),那么其傅立葉級數(shù)中只包含余弦項,再將其離散化可導(dǎo)出余弦變換。DCT是目前比較好的圖像壓縮算法,它有很多優(yōu)點。DCT是正交變換,它可以將8*8圖像空間表達(dá)式轉(zhuǎn)換為頻率域,只需要用少量的數(shù)據(jù)點表示圖像;DCT產(chǎn)生的系數(shù)很容易被量化,因此能獲得好的塊壓縮;DCT算法的性能很好,它有快速算法,如采用快速傅立葉變換可以進(jìn)行高效的運算,因此它在硬件和軟件中都容易實現(xiàn);而且DCT算法是對稱的,所以利用逆DCT算法可以用來解壓縮圖像。MATLAB提供了有效的DCT運算函數(shù),使得圖像處理變得更加簡便快捷。關(guān)鍵詞:離散余弦變換;MATLAB;圖像壓縮Abstract

DiscretecosinetransformisaFouriertransformmathematicaloperationcloselyrelated.IntheFourierseriesexpansion,ifthefunctionisexpandedevenfunctionisreal,thentheFourierseriescontainsonlycosineterms,thenitcanbederiveddiscretecosinetransform.DCTisrelativelygoodimagecompressionalgorithm,ithasmanyadvantages.DCTisanorthogonaltransformation,itcanbe8*8imagespaceexpressionconvertedtofrequencydomain,simplyuseasmallnumberofdatapointsrepresentinganimage;DCTcoefficientsgeneratedcaneasilybequantified,andthereforecanobtaingoodcompressionblock;DCTalgorithmperformanceisverygood,ithasafastalgorithm,suchastheuseoffastFouriertransformoperationcanbeperformedefficiently,soitisinthehardwareandsoftwareareeasytoimplement;AndDCTalgorithmissymmetrical,sotheuseofinverseDCTalgorithmcanbeusedtodecompresstheimage.MATLABprovideseffectiveDCToperationfunctions,makingiteasierandefficientimageprocessing.Keywords:Discretecosinetransform;MATLAB;ImageCompression前言本文解決了基于DCT的圖像壓縮問題。全文共4章。介紹了問題背景。主要介紹了圖像壓縮的實現(xiàn)步驟。第3章主要介紹了程序的詳細(xì)設(shè)計,給出主要功能函數(shù)的設(shè)計,以及測試結(jié)果和分析,還討論了程序的優(yōu)缺點。第4章是本次課程設(shè)計的總結(jié)??偨Y(jié)了本次課程設(shè)計的目的和意義,以及測試中發(fā)現(xiàn)的一些問題,和有待改進(jìn)的地方。重點談到了我在本次畢業(yè)設(shè)計中的收獲和感想,還有它對于我整個本科階段的意義。全文的最后是致謝、參考文獻(xiàn)。第1章課題背景1.1背景在信息世界迅猛發(fā)展的今天,圖像傳輸已成為一項重要內(nèi)容,而傳輸信息量的大小是影響傳輸速度的重要因素之一。要想提高通信速度,一個必要的手段就是圖像的壓縮編碼技術(shù),減少傳輸?shù)臄?shù)據(jù)量。大數(shù)據(jù)量的圖像信息會給存儲器的存儲容量,通信干線信道的帶寬,以及計算機的處理速度增加極大的壓力。單純靠增加存儲器容量,提高信道帶寬以及計算機的處理速度等方法來解決這個問題是不現(xiàn)實的,這時就要考慮壓縮。于是,對圖像信息的壓縮成為一個不可或缺的環(huán)節(jié)。圖像壓縮是關(guān)于用最少的數(shù)據(jù)量表示盡可能多的原圖像信息的一個過程,是通過去除一個或三個基本的數(shù)據(jù)冗余來實現(xiàn)的。壓縮圖像的方式有很多種,其中離散余弦變換(DCT)是目前比較好的圖像變換,它有很多優(yōu)點。DCT是正交變換,它可以8x8圖像空間表達(dá)式轉(zhuǎn)換為頻率域,只需要用少量的數(shù)據(jù)點表示圖像;DCT產(chǎn)生的系數(shù)很容易被量化,因此能獲得好的塊壓縮。所以DCT通常會用來對圖像進(jìn)行壓縮,如圖像文件標(biāo)準(zhǔn)JPEG便是基于DCT的。MATLAB擁有強大的圖像處理工具箱,使用它將使復(fù)雜的圖像變換變得簡便快捷。 第2章實現(xiàn)步驟2.1二維離散余弦變換(DCT)原理離散余弦變換(DiscreteCosineTransform,簡稱DCT變換)是一種與傅立葉變換緊密相關(guān)的數(shù)學(xué)運算。在傅立葉級數(shù)展開式中,如果被展開的函數(shù)是實偶函數(shù),那么其傅立葉級數(shù)中只包含余弦項,再將其離散化可導(dǎo)出余弦變換。DCT編碼屬于正交變換編碼方式。用于去除圖像數(shù)據(jù)的空間冗余。在變換編碼系統(tǒng)中,如果正變換采用DCT變換就稱為DCT變換編碼系統(tǒng)。DCT用于把一幅圖像映射為一組變換系數(shù),然后對系數(shù)進(jìn)行量化和編碼。對于大多數(shù)的正常圖像來說,多數(shù)系數(shù)具有較小的數(shù)值且可以被粗略地量化(或者完全拋棄),而產(chǎn)生的圖像失真較小。離散余弦變換的變換核為余弦函數(shù),計算速度快,有利于圖像壓縮和其他處理。DTC可表示為下式:式中,2.2基于DCT圖像壓縮程序流程用DCT對灰度圖像進(jìn)行圖像壓縮流程包括灰度圖像的提取,圖像壓縮,原圖像和壓縮后圖像的對比瀏覽三個步驟。(1)灰度圖像的提?。河捎诖蠖鄶?shù)的圖像都是RGB真彩圖像,而二維DCT變換只能適用于二維數(shù)組即灰度圖像,故需要使普通的彩色圖像變成灰度圖像以便壓縮測試。(2)圖像壓縮:壓縮圖像的過程通常第一步是把輸入圖像細(xì)分為不相重疊的8*8像素塊。隨后按從左到右、從上到下的順序用二維離散余弦變換處理這些像素塊,用事先規(guī)定的掩膜來壓縮DCT系數(shù),用壓縮后的DCT系數(shù)重構(gòu)圖像即DCT逆變換便得到壓縮后的圖像。(3)原圖像和壓縮后圖像的對比瀏覽:為了判斷圖像是否壓縮成功,需要將原圖像與壓縮后圖像進(jìn)行比較,若壓縮后圖像顯得更加模糊則說明壓縮成功。2.3MATLAB的相關(guān)函數(shù)介紹MATLAB提供了強大的圖像處理工具箱,現(xiàn)在稍微介紹一下本文用到的相關(guān)函數(shù)。imread:它能夠通過文件路徑名讀取圖片文件并返回二維數(shù)組rgb2gray能將一彩色圖像變成灰度圖像imshow能夠?qū)⒍S圖像顯示出來dctmtx能夠返回DCT變換矩陣blkproc能夠?qū)ο袼貕K進(jìn)行操作,比如blkproc(I,[88],'P1*x*P2',T,T')是對8*8像素塊進(jìn)行T*I*T’變換第3章詳細(xì)設(shè)計與實現(xiàn)3.1主界面設(shè)計使用MATLABR2012a可以通過GUIDE創(chuàng)建GUI代替全面的手工編程,可以簡單的添加控件。如上圖,在左邊工具欄中選擇幾個控件拖到工作區(qū)間內(nèi),修改控件句柄,瀏覽按鈕可以完成瀏覽電腦中的文件功能,exittext控件用來顯示打開的文件的路徑,axes控件用來顯示打開的圖片,下面的功能按鈕能夠提取灰度圖像,保存圖片和壓縮圖像的功能,于是主界面設(shè)計完成。3.2測試結(jié)果測試結(jié)果:程序運行初始界面如下:圖3-2初始界面加載圖像后,如下圖:圖3-3加載圖片提取灰度圖像:圖3-4灰度圖像壓縮后:上圖是局部放大圖,能看見壓縮后圖像稍微變得模糊,說明壓縮成功。3.3程序部分源代碼由于程序界面是借助GUIDE來實現(xiàn)的,所以無法找到自動生成的界面代碼,只能放出人工添加的源代碼即M文件中的代碼:functionvarargout=test(varargin)gui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@test_OpeningFcn,...'gui_OutputFcn',@test_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});endfunctiontest_OpeningFcn(hObject,eventdata,handles,varargin)handles.output=hObject;guidata(hObject,handles);functionvarargout=test_OutputFcn(hObject,eventdata,handles)varargout{1}=handles.output;functionpathText_CreateFcn(hObject,eventdata,handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunctionpushBtn_Callback(hObject,eventdata,handles)[filename,pathname]=uigetfile({'*.*','AllFiles(*.*)';},'選擇文件');ifisequal([filename,pathname],[0,0])returnelse%讀取圖片pic=fullfile(pathname,filename);set(handles.pathText,'string',[pathname,filename])a=imread(pic);imshow(a);endfunctionaxesPic_CreateFcn(hObject,eventdata,handles)set(hObject,'xTick',[]);set(hObject,'ytick',[]);set(hObject,'box','on');functiongslpushBtn_Callback(hObject,eventdata,handles)path=get(handles.pathText,'string');b=imread(path);globalc;c=rgb2gray(b);figure;set(gcf,'NumberTitle','off','Name','原始圖像');imshow(c);functionsavepushBtn_Callback(hObject,eventdata,handles)globalc;[filenamepathname]=uiputfile({'*.bmp','BMPFile(*.bmp*)';},'保存');path=[pathname,filename];imwrite(c,path,'bmp');functioncompress_Callback(hObject,eventdata,handles)T=dctmtx(8);%離散余弦變換矩陣,處理后返回一個8×8階DCT變換矩陣globalc;I1=im2double(c);%圖像存儲類型轉(zhuǎn)換,將圖像變換成雙精度格式B=blkproc(I1,[88],'P1*x*P2',T,T');%對原圖像進(jìn)行DCT變換,每個不同8×8塊應(yīng)用矩陣式′P1*x*P2′進(jìn)行處理,必要時補0,其中P1=T,P2=T′m=[1111000011100000110000001000000000000000000000000000000000000000];%用來壓縮DCT的系數(shù),選取10個DCT系數(shù)重構(gòu)圖像B2=blkproc(B,[88],'P1.*x',m);%只保留DCT變換的10個系數(shù),數(shù)據(jù)壓縮,丟棄右下角高頻數(shù)據(jù)c=blkproc(B2,[88],'P1*x*P2',T',T);%進(jìn)行DCT反變換,得到壓縮后的圖像figure;set(gcf,'NumberTitl

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論