freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于matlab的圖像壓縮處理技術(shù)的研究和實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-24 18:13 本頁面
 

【文章內(nèi)容簡介】 素值。例如,由200行和300列的不同顏色點(diǎn)組成的一幅圖像在MATLAB中采用200300的矩陣存儲。MATLAB支持多種類型的圖像,而不同類型的圖像其存儲結(jié)構(gòu)通常是不同的。如RGB圖像則需要一個三維數(shù)組,3個數(shù)據(jù)維分別對應(yīng)于某像素點(diǎn)的紅色、綠色和藍(lán)色強(qiáng)度值。由于對圖像采用了通用的數(shù)據(jù)矩陣的表達(dá)方式,MATLAB中原有的所有基本矩陣操作都可應(yīng)用于圖像矩陣,例如,我們要查看圖像I中某像素點(diǎn)的強(qiáng)度值,可以采用類似的表達(dá)方式:I(x,y),它代表了圖像I的第x行和第y列的像素值[9]。MATLAB的圖像處理工具箱功能十分強(qiáng)大,支持的圖像文件格式豐富,如*.BMP、*.JPEG、*.6IF、*.TIFF、*.PCX、*.HDF、*.XWD、*.PNG等。圖像處理工具箱支持四種圖像類型,分別為真彩色圖像、索引色圖像、灰度圖像、二值圖像,由于有的函數(shù)對圖像類型有限制,這四種類型可以用工具箱的類型轉(zhuǎn)換函數(shù)相互轉(zhuǎn)換。MATLAB提供了15類圖像處理函數(shù),涵蓋了包括近期研究成果在內(nèi)的幾乎所有的圖像處理方法。這些函數(shù)按其功能可分為:圖像顯示;圖像文件I/O;幾何操作;像素和統(tǒng)計(jì)處理;圖像分析;圖像增強(qiáng);線性濾波;線性二元濾波設(shè)計(jì);圖像變換;鄰域和塊處理;二進(jìn)制圖像操作;區(qū)域處理;顏色映像處理;顏色空間變換;圖像類型和類型轉(zhuǎn)換[10]。利用這些圖像處理工具箱,并結(jié)合其強(qiáng)大的數(shù)據(jù)處理能力,我們可不必關(guān)心圖像文件的格式、讀寫、顯示等細(xì)節(jié),而把精力集中在算法研究上,大大提高了工作效率。而且,在測試這些算法時既可方便地得到統(tǒng)計(jì)數(shù)據(jù),同時又可得到直觀圖。 DCT變換利用傅立葉變換的性質(zhì),采用圖像邊界褶翻將圖像變換為偶函數(shù)形式,然后對圖像進(jìn)行二維傅立葉變換,變換后僅包含余弦項(xiàng),所以稱之為離散余弦變換。二維離散余弦變換DCT(Discrete Cosine Transform)的定義為,假設(shè)矩陣A的大小為MN[5], 0≤p≤M1,0≤q≤N1其中    ()其中,Bpq稱為矩陣A的DCT系數(shù)。在MATLAB中,矩陣的下標(biāo)從1開始而不是從0開始的,所以MATLAB中的矩陣元素A(1,1)和B(1,1)分別對應(yīng)于上面定義中的值A(chǔ)00和B00,依此類推。DCT是一種可逆變換,離散反余弦變換定義如下:  ()上式的含義是任何MN的矩陣A都可以表示為一系列具有下面形式的函數(shù)的和:  ()  這些函數(shù)稱為DCT變換的基函數(shù),這樣,Bpq就可以看成是應(yīng)用于每個基函數(shù)的加權(quán)[11]。圖像的二維離散余弦變換(Discrete Cosine Transform)簡稱DCT變換是最小均方誤差條件下得出的次最佳正交變換,且已獲得廣泛應(yīng)用,大多數(shù)情況下,DCT用于壓縮圖像,并成為許多圖像編碼國際標(biāo)準(zhǔn)的核心,JPEG圖像格式的壓縮算法采用的就是DCT變換算法。DCT變換的變換核為余弦函數(shù),計(jì)算速度較快,有利于圖像壓縮和其他處理[12]。JPEG算法被確定為JPEG國際標(biāo)準(zhǔn),它是國際上彩色、灰度、靜止圖像的第一個國際標(biāo)準(zhǔn)。在編碼過程中,JPEG算法首先將RGB分量轉(zhuǎn)化為亮度分量和色差分量,然后將圖像分解為88的像素塊,對這個88輸入矩陣全部值的平均數(shù),其余63個系數(shù)為交流(AC)系數(shù),接下來對DCT系數(shù)進(jìn)行量化,最后將量化的DCT系數(shù)進(jìn)行編碼,就形成了壓縮后的圖像格式。在解碼過程中,先對已編碼的量化的系數(shù)進(jìn)行解碼,然后求逆量化并利用二維DCT反變換把DCT系數(shù)轉(zhuǎn)化為88樣本像塊,最后將反變換后的塊組合成一幅圖像。這樣就完成了圖像的壓縮和解壓過程。假設(shè)矩陣A的大小為MN,用f(x,y)表示矩陣中的元素,則離散余弦變換(DCT)正反變換公式為[3]:(1)正變換公式 其中0uM1,0vN1 () 說明:(u,v)稱為矩陣A的DCT系數(shù)。在MATLAB中,矩陣的下標(biāo)從1開始而不是從0開始。(2)反變換公式 ()其中0xM1,0yN1 式中的x,y為空間域采樣值,u,v為頻率域采樣值。其中f(x,y)是空間域二維向量元素,F(xiàn)(u,v)是變換系數(shù)陣列元素。(3)簡化公式 在二維離散余弦變換中,通常數(shù)字圖像用像素方陣表示,在這種情況下,二維離散余弦的正反變換可簡化為: () ()其中在MATLAB的仿真實(shí)現(xiàn)中,主要是采用二維OCT變換的矩陣式定義來實(shí)現(xiàn)的,矩陣義可以表示為: ()其中[f(x,y)]是空間數(shù)據(jù)陣列,[f(x,y)]是變換系數(shù)陣列,[A]是變換矩陣,[A]是[A]的轉(zhuǎn)置。離散余弦變換的傳統(tǒng)算法是基于FFT的快速算法,本設(shè)計(jì)主要采用一種新的變換方法——基于DCT變換矩陣算法[3]。變換矩陣方法非常適合做88或1616的圖像塊的DCT變換,主要利用dctmtx函數(shù)來計(jì)算變換矩陣。設(shè)A是一個MN大小的矩陣,則D*A表示A的列向量的一維離散余弦變換,而D’*A(D’表示D的轉(zhuǎn)置)表示A的列向量的一維逆離散余弦變換。要實(shí)現(xiàn)A的二維離散余弦變換,只需計(jì)算D*A*D’。這種計(jì)算有時會比利用函數(shù)dct2更快,特別是計(jì)算大量小的相同尺寸DCT時,矩陣D只需計(jì)算一次,因而速度快[12]。例如,在實(shí)現(xiàn)JPEG壓縮時,要多次實(shí)現(xiàn)大小為88的圖像塊的DCT,為了實(shí)現(xiàn)這種變換,首先采用函數(shù)dctmtx得到矩陣D,即利用語句D=dctmtx(8),然后,對每一個圖像塊執(zhí)行運(yùn)算B=D*A*D’。由于變換矩陣D是實(shí)正交矩陣,為此二維逆離散余弦變換為A=D’*B*D。這種實(shí)現(xiàn)方法比調(diào)用函數(shù)dct2要快很多。首先讀取圖像文件,然后利用dctmtx函數(shù)對圖像進(jìn)行離散余弦變換,采用函數(shù)dctmtx得到矩陣T,即利用語句D=dctmtx(8),然后,對每一個圖像塊執(zhí)行運(yùn)算B=T*矩陣x*T’。然后利用二值掩膜壓縮DCT的系數(shù),這里只保留DCT變換的10個系數(shù)。最后在對圖像進(jìn)行逆離散余弦變換,顯示圖像重構(gòu)的結(jié)果。,程序清單見附錄。導(dǎo)入圖片利用dctmtx函數(shù)對圖像進(jìn)行離散余弦變換,得到矩陣T對圖像的每個不同88數(shù)據(jù)塊應(yīng)用矩陣式p1*x*p2進(jìn)行處理利用二值掩膜只保留DTC變換的10個系數(shù)逆DCT變換,重構(gòu)圖像顯示結(jié)果 離散余弦算法流程圖第4章 離散余弦變換的界面實(shí)現(xiàn) 圖形用戶界面簡介傳統(tǒng)的用戶界面是指用戶與計(jì)算機(jī)之間進(jìn)行交互通信聯(lián)系的平臺,并出現(xiàn)了多種形式的人機(jī)交互方式,從命令行的交互方式轉(zhuǎn)變至以圖形界面為主的交互形式。現(xiàn)在,圖形界面己在人機(jī)交互方式中占主導(dǎo)地位,這主要是由于它給用戶帶來了操作和控制的方便與靈活性。圖形用戶界面在程序開發(fā)中起著舉足輕重的作用[13]。考慮到用戶是初學(xué)者而且可能是非專業(yè)計(jì)算機(jī)人員,所以晃面的設(shè)計(jì)與使用十分方便,大多數(shù)功能均采用菜單按鈕,用戶只需要利用鼠標(biāo)或鍵盤就能方便地操作它。圖形用戶界面(Graphical User Interfaces,簡稱GUI)是一種圖形化的溝通界面,通過此界面可以很方便地達(dá)到一些特定控制的操作,而這些界面又是由按鈕、窗口、工具欄、鍵盤操作等對象所構(gòu)成的,以方便借助這些界面調(diào)用MATLAB來進(jìn)行運(yùn)算處理操作。GUI是未來的趨勢,因?yàn)槿祟悓τ趫D形辨識的能力遠(yuǎn)超過其他表達(dá)方式,因此借助GUI程序能夠設(shè)計(jì)出專屬某個主題的圖形化界面,使初次接觸的使用者也能夠快速且容易上手。另外,MATLAB具有高度的數(shù)學(xué)運(yùn)算能力與各種領(lǐng)域的工具箱,若能結(jié)合GUI相信所完成的程序會非常實(shí)用[14]。此外,還可以通過help uitools來查閱目前MATLAB中有哪些GUI對象或?qū)υ捒蚩梢允褂?,如此可以更?jié)省我們建立GUI的時間。 界面設(shè)計(jì)的MATLAB實(shí)現(xiàn)系統(tǒng)的程序設(shè)計(jì)采用MATLAB編程語言來實(shí)現(xiàn)。利用MATLAB的圖形用戶界面(GUI)來設(shè)計(jì)程序運(yùn)行的界面。整個系統(tǒng)由若干個運(yùn)行界面和相應(yīng)的M函數(shù)文件所組成,每一個運(yùn)行界面對應(yīng)的程序構(gòu)成一個M文件。同一個M文件中又包含若干個M函數(shù),界面中的每一個控件及菜單項(xiàng)對應(yīng)的程序都有放在相應(yīng)的M函數(shù)內(nèi)。各個功能對應(yīng)的M函數(shù)文件,由一個主文件將它們聯(lián)成一個整體,最終形成處理系統(tǒng)。 (1) 使用菜單項(xiàng)實(shí)現(xiàn)各功能窗口的轉(zhuǎn)換,起導(dǎo)航作用。對菜單的編程主要是調(diào)用系統(tǒng)中的其它M函數(shù)文件。(2) 打開文件操作可以調(diào)用的圖像文件格式豐富,除了常用的*.jpg、*.gif外,還包括*.bmp、*.cur、*.hdf、*.ico、*.pbm、*.pcx、*.pgm、*.png、*.pnm、*.ppm、*.ras、*.tif、*.tiff、*.xwd。(3) 文本框主要用于接收用戶輸入的數(shù)據(jù),程序基本上是先從文本框中接收數(shù)據(jù),然后對接收的數(shù)據(jù)進(jìn)行處理的。(4) 命令按鈕是執(zhí)行運(yùn)算操作的最主要控件,處理程序主要是放在其相應(yīng)的M函數(shù)內(nèi)部。實(shí)現(xiàn)上編寫程序最主要是對命令按鈕進(jìn)行編程。系統(tǒng)的各種處理功能的實(shí)現(xiàn)基本上是四個過程:其一是打開原始圖像,其二是接收用戶輸入的參數(shù),其三是把接收的參數(shù)帶入后臺進(jìn)行處理,第四是將圖像處理后的結(jié)果顯示到界面上。 界面設(shè)計(jì)具體實(shí)現(xiàn)MATLAB的圖像處理工具箱提供了多個圖像壓縮界面設(shè)計(jì)的函數(shù),用于實(shí)現(xiàn)圖像的壓縮界面操作,本次設(shè)計(jì)主要用到的函數(shù)列舉如下:(1) 函數(shù)名:imread調(diào)用格式:imread(‘file’,type),該函數(shù)的功能是讀取圖象文件的數(shù)據(jù)并按照圖象格式存儲為相應(yīng)的圖象矩陣。(2) 函數(shù)名:imshow調(diào)用格式:imshow(I,[LOW HIGH]),其功能是顯示灰度圖象,并指定灰度級范圍[LOW HIGH],若不確定數(shù)據(jù)的范圍[LOW HIGH],可使用空矢量作為參數(shù)顯示圖象,即imshow(I,[])。(3) 函數(shù)名:dctmtx調(diào)用格式:dctmtx(N),其功能是計(jì)算離散余弦變換矩陣,返回一個N*N的DCT變換矩陣。(4) 函數(shù)名:blkproc調(diào)用格式:blkproc(A,[m,n],fun),其功能是應(yīng)用函數(shù)fun對圖象A的每個不同mn塊進(jìn)行處理,必要時對A的四周補(bǔ)0。Fun可以是一個內(nèi)聯(lián)函數(shù),一個包含函數(shù)名的字符串或表達(dá)式串。Fun應(yīng)對mn塊X進(jìn)行處理,返回一個矩陣、向量或標(biāo)量至Y。Y=fun(x),blkproc并不需要Y與X同大小,但僅當(dāng)Y與X同大小時,B與A同大小。(5) 函數(shù)名:uicontrol調(diào)用格式:uicontrol(parent),其功能是生成用戶界面控制圖形對象。當(dāng)被選中后,大多數(shù)uicontrol對象執(zhí)行一個預(yù)先定義的動作。Matlab提供了各種類型的uicontrol,每種都有一種不同的用途,如Check boxes,Editable text,F(xiàn)rames,List boxes,Popup menus,Push buttons,Radio buttons,Sliders,Static text,Toggle buttons。本設(shè)計(jì)中主要使用Push buttons,其在點(diǎn)擊是產(chǎn)生一個動作,為了激活一個Push button,可以再Push button上面點(diǎn)擊鼠標(biāo)。運(yùn)用以上函數(shù),通過編寫程序,可以實(shí)現(xiàn)整個界面的設(shè)計(jì),然后通過Callback回調(diào)函數(shù),調(diào)用dctmtx函數(shù),將圖像壓縮控件要做的事情都寫在圖像壓縮控件的callback中,就可以實(shí)現(xiàn)離散余弦變換的圖像壓縮操作,從而實(shí)現(xiàn)了該算法的界面設(shè)計(jì)。程序清單見附錄。 第5章 運(yùn)行結(jié)果顯示及分析首先讀取圖像文件,然后利用dctmtx函數(shù)對圖像進(jìn)行離散余弦變換,采用函數(shù)dctmtx得到矩陣T,即利用語句D=dctmtx(8),然后,對每一個圖像塊執(zhí)行運(yùn)算矩陣B=P1*x*P2。最后在對圖像進(jìn)行逆離散余弦變換,顯示圖像壓縮前后的對比。(a) 壓縮前的圖像 (b) 壓縮后的圖像 基于DCT變換矩陣算法的離散余弦變換圖像壓縮。在上面的程序中,我們?nèi)×薼0個DCT系數(shù),占15%,比較原圖和壓縮后的圖發(fā)現(xiàn),在拋棄85%的DCT系數(shù)后,重構(gòu)圖和原圖的失真不大,壓縮圖像的質(zhì)量比較令人滿意。當(dāng)然,采用這種方法來實(shí)現(xiàn)壓縮算法時,可通過修改mask變量中的系數(shù)來更好地比較結(jié)果。用戶首先調(diào)用原始圖像,顯示在界面的中間,點(diǎn)擊圖像壓縮按鈕,原始圖像轉(zhuǎn)換成壓縮后的圖像顯示在界面中間,同時,還添加了線條解析按鈕,點(diǎn)擊該按鈕,界面中間顯示該圖像的線條解析圖,最后,點(diǎn)擊退出按鈕,就退出該界面。 原始圖像的界面顯示 圖像壓縮后的界面顯示運(yùn)行MATLAB程序,點(diǎn)擊原始圖像按鈕,讓界
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1