圖像JPEG壓縮的matlab實現(xiàn)_第1頁
圖像JPEG壓縮的matlab實現(xiàn)_第2頁
圖像JPEG壓縮的matlab實現(xiàn)_第3頁
圖像JPEG壓縮的matlab實現(xiàn)_第4頁
圖像JPEG壓縮的matlab實現(xiàn)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、圖像JPEG壓縮的matlab實現(xiàn)作者姓名: 專業(yè)名稱:信息工程指導教師: 講師摘要隨著現(xiàn)代經(jīng)濟的發(fā)展,影像風暴已經(jīng)席卷了我們的日常生活,圖像對于人們已經(jīng)息息相關。人們對計算機實時處理圖像的要求就相對有所提高。現(xiàn)在我們就面對一個問題,如何在保證圖像質量的前提下,同時能夠考慮到實時性和高效性就成了一個大家關注的問題。那么對圖像數(shù)據(jù)信息進行必要的壓縮,以便能夠保證圖像的快速存儲和傳輸。但是,我們通??吹降膱D像是一種重要的二維信號,所以它本身就包含非常龐大的數(shù)據(jù)量,為了快速存儲和實時傳輸,就必須對圖像信息進行相應的壓縮處理。新興的數(shù)學工具是局域DCT變換是一種新興的數(shù)學工具,在現(xiàn)在社會中,圖像壓縮技

2、術現(xiàn)在正受到大量的關注與研究。本次課題設計在分析近年來,在圖像處理領域,對圖像壓縮普遍方法的基礎之上,充分學習和分析了基于DCT變換的圖像壓縮的相關編碼及其基本原理和實現(xiàn)步驟。簡單概述了圖像壓縮的基本原理以及發(fā)展現(xiàn)狀和方向,全面分析了DCT變換算法以及思路,提出了采用DCT變換壓縮的依據(jù)和優(yōu)勢。本文同時也介紹了圖像壓縮過程的重要步驟編碼量的方法和原理。為了方便簡單,將使用MATLAB2010實現(xiàn)JPEG圖像壓縮的仿真。 在論文最后,將介紹仿真的過程以及仿真結果說明,闡述用MATLAB來實現(xiàn)離散余弦變換的圖像壓縮的基本過程,并總結相關方法的優(yōu)缺點。同時也將充分展示壓縮前后的圖像,并做相

3、應的比較。關鍵詞:圖像 壓縮 DCT matlab仿真 Abstract With the development of modern economy, the storm has swept through the image of our daily life, people have been closely related to the image for the. People's requirements on image real-time processing is relatively improved. Now we face a problem, how to g

4、uarantee the quality of the image, at the same time can be old enough considering the real-time and efficiency has become an issue of concern. This information is certain to image compression and processing has become a very important link. However, the image is an important signal, due to the large

5、 amount of data, while the storage and transmission of the compressed. New mathematical tools are discrete cosine transform is a new mathematical tool, based on the discrete cosine transform image compression technology is now being a lot of attention and research. In this paper, based on the analys

6、is of the general methods of image compression in recent years, the basic principles and implementation steps of image compression based on DCT transform are also discussed. In this paper, the principle and development of image compression are introduced briefly, and the DCT transform algorithm is a

7、nalyzed and compared with other compression methods. The basis of DCT transform compression is proposed. The final step of the image compression process is to encode the quantized image. This. We use MATLAB6.5 to realize the simulation of JPEG image compression. The simulation results show that usin

8、g MATLAB to achieve the image discrete cosine transform compression method is simple, fast, small error advantages, greatly improves the efficiency and accuracy of image compression.Keywords: DCT ,matlab,simulation image, compression目錄圖像JPEG壓縮的matlab實現(xiàn)I摘要IAbstractII目錄III前言11 緒論31.1論文研究背景及意義31.2 JPEG

9、圖像的發(fā)展歷史及簡介41.3 JPEG圖像在DCT中壓縮的作用51.4 本文研究的主要內容62 圖像壓縮編碼原理82.1 DCT變換的來源82.2基于DCT的JPEG圖像壓縮編碼步驟92.3圖像壓縮處理技術基本理論103 圖像壓縮的MATLAB實現(xiàn)133.1離散余弦變換的定義及原理133.2離散余弦變換的算法實現(xiàn)143.3圖形用戶界面介紹15圖像文件讀取16圖像文件輸出174 運行結果及分析194.1 程序流程圖194.2 MATLAB仿真結果204.3 實驗結果及分析21總結23參考文獻24致謝25附件1 圖像JPEG壓縮的matlab程序26前言在當今,人們大多都都已經(jīng)邁入了信息化的社會,

10、信息交換技術已經(jīng)發(fā)展出不同的形式,主要的信息分為三種形式:1.文字2.音頻3.圖像。在我們看來,信息傳播發(fā)展的歷史可以得出結論,人們已經(jīng)在信息中融入了形象,然而,對我而言,圖像更直觀,我們的觀察,但也有最多的數(shù)據(jù)量,相應的數(shù)據(jù)量也最大,是最大的困難。這給圖像信息的實時傳輸與快速存儲帶來了非常大的挑戰(zhàn)。這已經(jīng)成為圖像和信息傳輸發(fā)展的難題,然而數(shù)字圖像的表示包含非常大的數(shù)據(jù)流,如果要對其進行處理,就不得不對大量數(shù)據(jù)進行適當?shù)膲嚎s。人們已經(jīng)嘗試了各種各樣的方式對圖像數(shù)據(jù)進行相關的壓縮處理,但是有些被壓縮的數(shù)據(jù)可能是對我們有用的。不過它的傳輸方法,以及傳輸媒介、以及存儲媒介都有著嚴格的要求。所以,對于

11、快速的圖像壓縮、以及圖像的壓縮和編碼技術,就是一種十分重要的現(xiàn)代圖像數(shù)據(jù)處理技術,也是一種核心技術。就現(xiàn)在而言圖像文件格式的種類也是非常多的,其中常用的靜止圖像壓縮編碼的國際標準JPEG格式,因為它具有耗內存小,圖像的質量相當非常清晰,目前早已經(jīng)被廣泛的用于信號處理和圖像處理領域。整個圖像數(shù)據(jù)的壓縮過程和編碼的過程我們叫做基本的順序過程,因此被用戶用來作為圖像的壓縮的實際中進行應用。這是目前圖像壓縮技術在現(xiàn)實中的最成功的運用之一。除此之外,重建圖像與壓縮前的圖像的視覺效果大致上沒有明顯區(qū)別。DCT變換本身就是在最小均方誤差條件下的最完美的正交變換,因此在圖像壓縮領域具有很好的實用價值,目前已經(jīng)

12、成為國際上普遍認可的圖像壓縮的格式標準。余弦函數(shù)的核心是DCT變換,它的計算速度在目前來說十分的快,從而大大的提高了圖像壓縮的效率。MATLAB信號圖像處理工具是、math2works公司推出的一款功能強大,編寫簡單的圖形處理軟件平臺,該平臺將數(shù)據(jù)分析、數(shù)據(jù)計算、矩陣運算、信號處理和圖形顯示等多種處理技術融為一體,打造了一個方便的、高效的、快速的處理系統(tǒng)以及友好的用戶環(huán)境。在本次設計中,將直接在Matlab圖形處理工具箱中,調用相關圖形文件讀取、存儲以及具體操作函數(shù)和指令來實現(xiàn)基于DCT變換的圖像壓縮編碼過程,并分析相關結果,得出相應的結論。1 緒論1.1論文研究背景及意義隨著目前信息技術以及

13、圖像識別技術的快速進步,圖像信息技術早已經(jīng)被成熟的應用在圖像檢測系統(tǒng)和網(wǎng)絡多媒體運用技術中,但是在實際運用中圖像的數(shù)據(jù)量往往是海量的。這樣龐大的信息量,如果不通過特定方式對信息進行壓縮,不但遠遠超過了一般處理系統(tǒng)的存儲能力和處理能力,而且在目前的傳輸信道的傳輸速率不大的情況下,根本不能夠完成龐大的多媒體信息的實時且快速的傳輸。所以,為了我們可以有效且快速的存儲、處理和傳輸多媒體圖像數(shù)據(jù),我們就必須對大數(shù)據(jù)的圖像數(shù)據(jù)進行有效的壓縮,因此必須對圖像壓縮編碼的方法進行仔細全面地研究和分析。因為組成圖像的各像素之間,不管是在垂直方向,還是在水平方向上都會存在一定的聯(lián)系,那么,如果我們采用某種特定的圖像

14、壓縮編碼技術提取或者減少這種聯(lián)系,最終便可以達到壓縮數(shù)據(jù)的效果。圖像信息是人們在生活中感受到的最重要的最直觀的信息,在多媒體技術和通訊傳輸技術的快速發(fā)展的今天,圖像必然也是信息技術所需要處理的最重要對象。在現(xiàn)在社會中,圖像處理技術的發(fā)展十分快速,從而也帶動了多媒體娛樂、多媒體數(shù)字通信、數(shù)碼高清相機、高清數(shù)碼攝像頭和高清晰度顯示屏等各類與圖像和視頻相關的產(chǎn)品的快速進步。隨著目前圖像信息的數(shù)據(jù)量的不斷加大,而且很多成像設備的分辨率的越來越高,每一張圖像所包含的信息量也就更大,海量的圖像數(shù)據(jù)已經(jīng)給存儲設備的存儲空間、通信信道的帶寬以及處理器的處理速度帶來了很大的壓力。如果我們要克服這些挑戰(zhàn),就必須采

15、用某種編碼方式對圖像進行可逆的有效的壓縮處理。數(shù)字圖像壓縮編碼的目的就是通過壓縮,減小圖片的內存,用盡可能最少的比特數(shù)來表征一幅圖像,同時盡可能的保持原來圖像的視覺效果,這必然要求我們對圖像編碼方式以及解碼算法進行深入研究,目前,這個課題已將越來越受到人們的重視,成為近些年信息技術中的核心和熱點。如果能夠有好的編碼技術,將大大提升圖像信息的傳輸以及存儲能力。1.2 JPEG圖像的發(fā)展歷史及簡介在數(shù)十年的歲月里,越來越多的的圖像壓縮方法和相關理論已經(jīng)被提出,可以分為傳統(tǒng)的壓縮編碼方法和圖像編碼的新方法。傳統(tǒng)的編碼技術,包括脈沖編碼調制、量化、熵編碼等十種編碼方式。但是隨著這些傳統(tǒng)編碼方法的進一步

16、應用,已經(jīng)發(fā)現(xiàn)了這些方法的不足之處:比如在傳統(tǒng)編碼方法中由于正交變換的差頻局部化,變換系數(shù)的丟失對原始圖像的原來結構的影響。所以,在量化編碼不可以用特定的方法;高的壓縮比也會造成圖像邊緣虛化的發(fā)生從而發(fā)現(xiàn)嚴重的塊效應。由于JPEG目前在圖像壓縮領域取得了廣泛運用,因此,它已經(jīng)成為了全世界的在圖像處理與分析領域的一個標準。同時,他在全球圖像壓縮領域中,已經(jīng)成為其中核心的部分。 JPEG本身僅僅只描述了如何把圖像信息轉換為字節(jié)流的數(shù)據(jù),然而無法描述如何把這些字節(jié)在任何特定的存儲介質密封起來。.jpeg /.jpg是使用得比較多的圖像文件的格式,由一個圖像處理的聯(lián)合會組織編制的,是一種會丟失部分信息

17、的圖像壓縮格式,同時也是一種能夠給保持原因視覺效果的壓模式。特別是采用高壓縮比以后,圖像質量將會得到一定的恢復,但是最后減壓之后明顯會減少,如果我們需要高質量的圖像效果,則高壓縮比的方式就不適合使用了。不過,JPEG壓縮技術已經(jīng)非常先進和成熟,它通過有損壓縮的形式來刪除圖像數(shù)據(jù)的冗余,從而獲得非常高的壓縮率,顯示了一個非常接近原始圖像的視覺效果。換一句話來說,用盡可能最少的存儲空間來存儲較完整的圖像是能夠實現(xiàn)的。JPEG本身也是一種比較常用的穩(wěn)定的圖像格式,可以根據(jù)實際的需要來調節(jié)圖像的質量,通過設定相應的壓縮比可以獲取能夠滿足內存存儲的需求,同時支持多級別的分向壓縮,壓縮比從10:1到40:

18、1,通常壓縮比越大,圖像數(shù)據(jù)丟失就越嚴重,圖像的品質自然也就很差;相反,圖像品質就越好。例如,你能夠將20.3kb BMP位圖文件壓縮到1.37mb。實際上,你能夠在圖像質量和文件大小之間找到一個適當?shù)钠胶恻c?,F(xiàn)在處理的主要是高頻部分,針對JPEG壓縮的。在日常生活中,顏色占得分量也是比較多的,在網(wǎng)絡上面的運用也是相對完整 。在圖像的傳輸過程中,花費時間也能夠得到減少,這樣就大大的提高了傳輸時需要的時間,工作效率也會隨之增強。1.3 JPEG圖像在DCT中壓縮的作用圖像壓縮這門技術起源于古老的數(shù)字電視信號。到現(xiàn)已經(jīng)有了悠久的歷史。隨著科技的進步,圖像處理的方式也逐步完善,處理的方式也出現(xiàn)了多樣

19、化。圖像壓縮技術也隨之得到了比較好的發(fā)展?,F(xiàn)在主要的熱點是DCT的變換、以及圖像的處理。在本文中,將對最廣泛使用的圖像壓縮算法進行檢討,并討論了它們的優(yōu)點和缺點,以及它們的發(fā)展前景。在JPEG算法原理里,把圖像以一塊一塊的方式存在,它們之間不互相干擾,也不會重疊。這些塊我們再將它們劃分為二維離散余弦變換。它們之間的系數(shù)是沒有關系的。常用的JPEG主要有以下的特點: 它有幾處優(yōu)點:它已經(jīng)形成了國際化的標準;以及在中端和高端比特率中的圖像質量有一個有效的保證。也有如下的缺點:就是在處理過程中,圖像已被分成了塊。在處理過程中會產(chǎn)生方塊效應。很難用高斯過程來描述。系數(shù)在量化的時候也會丟失一部分數(shù)據(jù)。而

20、且在另一方面圖像的壓縮比例在當前來看還不太高,還需進一步的努力。JPEG在對圖像進行壓縮的過程中,會出現(xiàn)方塊效應。而方塊效應主要體現(xiàn)在信號上面。在這個過程中,圖像壓縮數(shù)據(jù)在高頻量的數(shù)據(jù)是可以省略的,但是低頻量上的數(shù)據(jù)包含了一些圖像的基本數(shù)據(jù)。因此,圖像壓縮過程中必須保證低頻數(shù)據(jù)不被丟失。它是相當于對交疊在一起的數(shù)據(jù)進行離散余弦的變換。這種方式不僅將大大減少壓縮數(shù)據(jù)對圖像的影響,而且將大大提高壓縮的穩(wěn)定性。1.4 本文研究的主要內容在本文畢設中,是以matlab為平臺來進行開發(fā)研究。主要研究的是JPEG圖像在matlab中的使用。分析JPEG圖像的原理,以及對原理的升入研究。Matlab這個平臺

21、對于初學者來說是比較實用的,本次的設計師用DCT的算法來進行研究。首先,需要理解DCT算法的使用和了解,利用matlab來進行圖像的仿真。本次論文的主要研究內容如下:第一章為matlab及JPEG的基礎部分,初步的介紹了本文課題研究的方向及意義。還有之后介紹當前圖像壓縮技術的發(fā)展現(xiàn)狀和未來發(fā)展的方向。 本次論文主要根據(jù)以往和當今離散余弦變換在圖像壓縮中的應用經(jīng)驗,對這次的研究來作一個總結。主要總結了本次論文的主要研究核心的技術,第二章主要介紹了JPEG圖像壓縮方面的發(fā)展及意義和現(xiàn)狀,包括圖像壓縮的相關標準、技術指標和相關分類等等,討論了圖像壓縮編碼及離散余弦變換的模型的相關原理等;第三章介紹了

22、離散余弦變換的matlab,介紹了MATLAB圖像處理工具箱的應用方法,然后概述了JPEG的基本原理、以及離散余弦變換相關算法的實現(xiàn)等,并在本次論文中實現(xiàn)離散余弦變換的圖像壓縮;第四章主要介紹了離散余弦變換的matlab界面,介紹的圖形用戶界面功能,采用MATLAB代碼的圖像壓縮編碼和界面操作過程中討論的設計思路和邏輯;在論文的最后,提出了本文的相關結論,提出了需要解決的問題,并提出改進步驟。2 圖像壓縮編碼原理2.1 DCT變換的來源在目前信號的變換編碼處理方法中,一般情況下通過將一組相關的基函數(shù)的進行信號分解,就能夠得到信號的變換域表示法,在變換域中,根據(jù)信號在相關特性上比較集中的特點,把

23、重點放在特征提取和分析特點兩個部分進行研究。從19世紀20年代以來,傅里葉變換在信號處理方面的應用,是目前應用最廣泛的一種分析手段。DCT變換在現(xiàn)實運用比較廣泛,它可以實現(xiàn)在頻域中進行高精準的定位,也就是具有很高的分辨率,而它在時域中是不具有任何定位性或分辨能力的,但它能夠反映的所有相關信號的時間域特征,但它不能提供任何相關的時頻率信息。事實上,在我們的日常生活所用到的信號平穩(wěn)的,其他的頻率的特點是隨時間來進行變化的。分析傅立葉變換的這種信號,雖然可以知道頻率信息包含的信息是什么,但不能知道具體信息的頻率在哪一段時間內,因此不能提供這些信號所有完整性的信息。顯然,傅立葉變換不適合實時(或瞬時)

24、頻域特征信息 離散余弦變換(DCT),其實際上就是一種轉換分析信號的方法,如果要在變換的過程中去除來分析的信號,從而提取其特征,我們就需要不得不適當?shù)臉嬙煲唤M基函數(shù),而且這組基函數(shù)必須是以某種形式非常類似于我們所需要表示的數(shù)據(jù),甚至必須具有與數(shù)據(jù)相類似的相關結構。在人們日常生活中。通常情況下遇到的信號是在時域和頻域都同時具有相關性。在空間上相隔比較近的樣值間的相關性,相比于相隔較遠樣值的大得多,然而在頻域上通常是呈帶狀的。為了分析和表示這樣的信號,我們要求相關的基函數(shù)在空間域和頻域都是局域性的。因為離散余弦函數(shù)的頻域分辨率與時域分辨率具有反比例的關系,剛好與實際信號長時為低頻、短時高頻的特性基

25、本一致,不僅可以準確的定位信號的瞬間跳變,同時還能夠呈現(xiàn)信號的整體變化規(guī)律率。綜上所述,離散余弦變換是一種比較理想的進行信號處理的數(shù)學工具6,在信號處理及其圖像處理領域具有很好的優(yōu)勢,以及良好的實時性。2.2基于DCT的JPEG圖像壓縮編碼步驟1、顏色空間的轉換和采樣JPEG的文件目前都是使用的顏色空間為1982年推薦的電視圖像數(shù)字化標準CCIR 601(現(xiàn)為ITU-RB T.601)。在數(shù)字化的標準中,信號的變換必須是在時域中進行的,因此需要采用 8位的數(shù)字來表示代碼。其中Y表示其亮度,CbCr表示其色度。將RGB模式的全彩色圖像轉換到YCbCr模式,通常采用公式(2-1), (2-1)逆變

26、換公式為: (2-2)2、 二維離散余弦變換通常,二維離散余弦正變換公式如下:式中x,y,u,v=0,1,2.n-1; 其中當u,v=0時:其它都為1;二維離散余弦逆變換公式為:(2-3)JPEG目前是將圖像分割成數(shù)個8×8的子塊,每一個子塊的數(shù)值在-128到127之間。同時,采用余弦變換可以得出相關的64個變換系數(shù)8。變換公式,如圖所以: (2-4)2.3圖像壓縮處理技術基本理論圖像數(shù)據(jù)壓縮的核心問題,就是能否在兼顧圖像質量的條件下,采用更少的數(shù)據(jù)量來表示圖像,從而大大提高圖像實時傳輸?shù)男室约翱焖俅鎯Φ乃俣?,這就是我們在信息編碼中信源編碼的基本含義。也就是說,前者在解碼

27、后可以最大程度還原圖像的視覺效果,盡可能的減少信息的丟失;然而后者在解碼時只能近似原圖像壓縮是通過刪除圖像數(shù)據(jù)中冗余的或者采用壓縮高頻量的方法來減少數(shù)據(jù)量,從而實現(xiàn)相關圖像的壓縮。實際上,壓縮過程和解壓過程這兩個過程是一個可逆過程,實際也就是相對于編碼和解碼的過程,壓縮技術分為缺失壓縮和完全壓縮兩種,其實缺失壓縮會造成數(shù)據(jù)量的丟失,而完全壓縮會按照相關編碼對所有數(shù)據(jù)進行保留和恢復。 假設有一個沒有事先備份的信道,所傳輸?shù)男畔閍i,1iN,發(fā)生的事件在發(fā)生幾率上是可以判斷的,記為P(ai)。則其信息量定義為: (2-5)由此可見一個消息出現(xiàn)的可能性越小,其信息量就越多,其出現(xiàn)對信息的貢獻量越大

28、,反之亦然7。信源的平均信息量稱為“熵”(entropy),可以表示為: (2-6)對其取二為底的對數(shù)時,也可寫成如下 (2-7)在圖像壓縮過程中,比較重要衡量指標就是壓縮比。一般通過下列公式可以計算壓縮比在進行圖像壓縮編碼的過程中通常分為兩個過程,第一個過程為利用相關的分析模型和變換模型對圖像信號進行處理的;另一個過程是利用變換過程中信號分析和變換特性,再根據(jù)相關的編碼方式對相關數(shù)進行量化處理,編碼器與解碼器的結構分別如圖所示。圖像編碼壓縮模型如圖所示:原始數(shù)據(jù)量化器DCT變換量化編碼壓縮圖像數(shù)據(jù) 圖2.1圖像編碼壓縮模型 首先就是采集數(shù)據(jù),對要處理原圖像的相關圖像信息進行相關采集,然后對采

29、集到數(shù)據(jù)進行DCT量化處理,也就是將信息從頻域中轉化到時域中進行分析,這樣做也是便于進行相關的編碼分析和處理。最后在進行進一步量化處理,然后進行相應的壓縮編碼,最后,就可以實現(xiàn)圖像數(shù)據(jù)的壓縮。這種壓縮方式屬于有損壓縮,因此需要保證其穩(wěn)定的可恢復性。3 圖像壓縮的MATLAB實現(xiàn)3.1離散余弦變換的定義及原理圖像的二維離散余弦變換(Discrete Cosine Transform)簡稱DCT變換是在最小均方誤差條件下求出的一種最佳正交變換,這種變換在信號和圖像領域獲得廣泛的使用,大多數(shù)情況下,為了保證圖像的質量以及增強其傳輸?shù)乃俾?,一般使用DCT變換編碼對相關圖像信息進行必要壓縮處理,并已經(jīng)成

30、為大多數(shù)圖像編碼技術國際標準的核心,實際上,JPEG圖像格式的壓縮算法采用的就是DCT變換算法。DCT變換的本質為標準余弦函數(shù)變換,其運算速度非??焖?,可以大大提高壓縮以及數(shù)據(jù)處理的效果12,JPEG算法目前已經(jīng)成為JPEG世界標準,它是世界上第一有關圖像彩色、灰度、靜止圖像的全球標準。在編碼過程中,JPEG算法首先通過把RGB分量分化為兩種分量亮度分量和色差分量,緊接著將相關圖像進行分解,最后變成 8×8的像素塊,隨后將每一個個8×8像素塊直接導入矩陣的全部值進行平均運算,剩下的63個系數(shù)將作為交流量的系數(shù),其中每一個系數(shù)都表示一定的壓縮量,緊跟著在離散余弦變換的基礎上,

31、對圖像數(shù)據(jù)量進行矩陣量化。在解壓的過程中,第一步是對原來已經(jīng)編碼量化的相關系數(shù)進行逆向的解碼處理,接下來就就可以求逆量化并使用離散余弦變換的逆變換將DCT每一個相關的系數(shù)變成為8×8數(shù)據(jù)信息塊,這樣便于對每個信息塊進行壓縮操作。離散余弦變換的傳統(tǒng)算法就是一種基于FFT(快速傅里葉變換)的基本算法,這種算法就是一種快速的傅里葉變換,目前廣泛運用圖像處理,視頻處理和信號處理領域中。本論文中主要采用一種全新的變換方法基于DCT變換矩陣算法3。這種變換矩陣的方法是非常適合做8×8或16×16的圖像塊的離散余弦變換,因為它具有很快的運算速度,便于處理器快速的處理。本文主要采

32、用MATLAB工具庫中dctmtx函數(shù)來計算變換矩陣。要實現(xiàn)A的二維離散余弦變換,只需計算D*A*D。這種計算有時會比利用函數(shù)dct2更快,特別是計算大量小的相同尺寸DCT時,因為矩陣D只需計算一次就可以了,因此具有很快的速度12。舉一個例子來說,在進行圖像的JPEG壓縮時,就需要不斷地進行變換量化,得到相關的子像素模塊,如果要快速實現(xiàn)這種操作,第一步就是要調用函數(shù)dctmtx得到矩陣D,即利用語句D=dctmtx(8),然后,對每一個圖像塊執(zhí)行運算B=D*A*D。因為變換矩陣D是一個實正交的8x8矩陣,將其進行二維逆DCT為A=D*B*D。顯然,這種調用方式相比于其他的函數(shù)要更快,更準確。關

33、于DCT變換的算法,實際上是一種對高頻信息量壓縮的處理方式,對其低頻信息量進行完整的保留,從而達到最大程度保留原始圖像信息,以恢復圖像原本的視覺效果的過程。3.2離散余弦變換的算法實現(xiàn)第一步是讀取指定的圖像文件X,然后調用dctmtx函數(shù)對圖像X進行DCT變換,最終可以得到矩陣T,就是采用語句D=dctmtx(8),接下來,對每一個像素塊進行矩陣運算B=T*矩陣x*T。隨后就可以調用二值掩膜算法對DCT的系數(shù)進行相應壓縮,通常情況下,只保留DCT變換的10個壓縮后的系數(shù)就可以了。最后在對整個圖像進行逆DCT變換,也就是進行圖像的重構,并在計算機上進行顯示。整個算法的處理過程如下圖所示:離散余弦

34、算法流程圖導入圖片利用DCT對圖像進行余弦變換對圖像每個不同8*8數(shù)據(jù)進行矩陣處理陣利用二值掩膜只保留DTC變換的10個系數(shù) 逆DCT變換重構圖像顯示圖片圖3.1 離散余弦算法流程圖 3.3圖形用戶界面介紹傳統(tǒng)的用戶界面一般是指用戶與計算機之間進行相互信息和數(shù)據(jù)交流的應用平臺,目前已經(jīng)有多種人機交互方式相繼出現(xiàn),目前已經(jīng)從指令集的交互方式,發(fā)展至以圖形界面操作為主的更簡單直觀交互形式?,F(xiàn)在,圖形界面己在人機交互方式中占核心地位,這主要是因為其能夠更簡單,更靈活,更直觀,更快速的實現(xiàn)人機的交互通信。目前基于各種操作系統(tǒng)的用戶UI的開發(fā)設計已經(jīng)非常普遍和重要11。因為不是所用用戶都是專業(yè)

35、的計算機人員,所以界面的設計與使用必須十分方便,大多數(shù)功能均需要采用菜單按鈕和圖標,用戶可以僅僅通過圖標、按鈕文字就可以輕松的進行相應的操作。圖形用戶界面(Graphical User Interfaces,簡稱GUI)是一種圖形化的人機溝通界面,它是在操作系統(tǒng)的幫助下,實現(xiàn)圖像信息快速轉換為及其指令的過程,大大提高了用戶使用的方便性和靈活性,而這些界面上會設計許多必要的按鈕、窗口、菜單、圖標、根據(jù)、鍵盤操作等對象,以方便可以借助這些用戶界面快速調用MATLAB工具來進行圖像和信號的運算處理操作。GUI是將來圖像分析和處理的發(fā)展方向,因為圖像的視覺認知在一定程度上更容易被人們所接受。所以,采用

36、用戶界面的方式進行圖像和信號處理,甚至進行人機交互的信息傳輸,將大大降低用戶的操作難度,增強用戶對處理過程的認知。 圖像文件讀取在我們壓縮圖像之前首先需要讀取圖像的像素點,以便進行后續(xù)處理。此部分可分為三個過程:原始圖像載入,顏色模式轉換以及離散余弦變換,第一步是讀取指定的圖像文件,然后調用dctmtx函數(shù)對圖像進行DCT變換,從而獲得矩陣T,使用語句:D=dctmtx(8),最后,對每一個圖像塊進行相應的矩陣操作:B=P1*x*P2。(1) 圖像文件的讀取。MATLAB中一般是直接調用工具庫中imread函數(shù)來實現(xiàn)圖像文件的讀取操作的。其語法為: A=imread(filename,fmt)

37、 X,map=imread(filename,fmt) ,=imread(filename) Filename:圖像文件名;fmt:圖像文件格式(2) 顏色模式轉換及采樣(3) DCT變換(4) 對整幅圖像進行DCT變換,具體程序實現(xiàn):RGB=imread(autumn,BMP); %從內存中讀取BMP格式的真彩色圖像I=rgb2gTay(RGB); %將真彩色圖像RGB轉換為灰度級亮度圖像II=im2double(I); %將I變換為雙精度格式I1=idct2(I); %對I進行二維DCT,返回的I1包含DCT系數(shù)I1=idct2(I1); %求二維DCT逆變換,重構圖像subplot(2,

38、2,1); imshow(I);subplot(2,2,2); imshow(I2);subplot(2,2,3); imshoa,(I1);subplot(2,2,4); imshow(abs(I-I2);figrue,mesh(I1); title(變換譜三維彩色圖)colorbar(vert); %在垂直軸旁增加一顏色等級條在MATLAB中,可以調用image函數(shù)來顯示圖像,其語法格式為:Image(C) image就是用來顯示原始圖像相關數(shù)據(jù)的,也就是在圖像上顯示x,y軸,能夠很容易看到圖像的像素情況。所謂量化過程其實就是一個對圖像壓縮比的控制過程。在這個過程中可以去除高頻量,但是會造

39、成一些高頻信息的丟失。不過人類對高頻量一般都不會很敏感。因此不會對處理后的圖像的視覺效果有所影響。其實對多數(shù)的圖象信息都是存在于低頻量中,經(jīng)過量化這一過程后,在頻率很高的空間上,就會出現(xiàn)一連串的數(shù)字0。3“Z”字掃描矢量中出現(xiàn)的連續(xù)的數(shù)字0片段,可以使用一些處理壓縮掉。比如有一組矢量(64個的后63個,已按z字形掃描得到)是57,45,0,0,0,0,23,0-30-16,0,0,1,0,0,0,0,0,0,0, 0經(jīng)過RLC壓縮后就是(0,57) (0,45) (4,23) (1,-30) (0,-16) (2,1), EOB 是一個結束符,說明以后的部分都是0了,一般用(0,0) 來表示E

40、OB。不過,假設這一串數(shù)字不以0結束,就沒必要用EOB。 圖像文件輸出YUVI=cat(3,uint8(YI),uint8(UI),uint8(VI);%經(jīng)過DCT變換和量化后的YUV圖像 figure,imshow(YUVI),title('經(jīng)過DCT變換和量化后的YUV圖像'); RI=YI-0.001*UI+1.402*VI; GI=YI-0.344*UI-0.714*VI; BI=YI+1.772*UI+0.001*VI; RGBI=cat(3,RI,GI,BI);%經(jīng)過DCT變換和量化后的YUV圖像 RGBI=uint8(RGBI); figure,imshow RG

41、BI (),title('經(jīng)過DCT變換和量化后的RGB圖像'); imwrite(RGBI,'L:UsersYi FanDesktopend.jpg'); %保存壓縮圖像 從這段輸出圖像代碼中可以看出,JPEG預處理圖像經(jīng)過了DCT變化和量化后,就保存在桌面上。其實就是經(jīng)過兩次DCT變換,在頻域中對相關圖像進行像素處理。這樣一來就可以對圖像進行壓縮了。在離散余弦變換處理中得到的64個系數(shù)中,低頻分量包含了圖像的亮度、色度等核心信息。在從空間域到頻域的變換中,圖像中的緩慢變化比快速變化往往更易引起用戶的重視,所以在重建圖像時,往往更重視低頻量,有時候甚至直接壓縮

42、掉高頻量。因而在編碼過程中可以對高頻量進行去除, 這樣就可以達到一種壓縮的效果,這也是圖像量化的根本依據(jù)。4 運行結果及分析4.1 程序流程圖StartImread( )909 讀取圖像dctmtx(8) 產(chǎn)生一個CT變換舉證 矩陣量化處理 DCT變換 DCT變換 DCT變換 圖像輸出 DCT變換End圖4.1 程序流程圖從該流程圖可以看出這個MATLAB程序的執(zhí)行過程,首先就是讀取在指定的路徑中獲取相關的圖像信息,緊接著就是通過這些圖像像素信息,生成一個8x8的舉證,便于后期的量化處理,以及進行DCT變換處理,將一些特定部分像素點進行刪減,最終實現(xiàn)圖像壓縮。其實我們很容易發(fā)現(xiàn)其實壓縮的核心就

43、是DCT變。4.2 MATLAB仿真結果這一章節(jié),筆者將進行仿真演示,重點演示MATLAB的軟件操作,并且給出相關的操作過程。首先打來MATLAB軟件后,如圖4.2所示,圖4.2 MATLAB主界面圖在該界面的左上角,點擊新建圖標會彈出如圖4.3所示的編輯窗體,在該窗體即可編寫代碼,圖4.3 編譯窗體代碼編寫完成后,點擊第二排菜單中綠色的箭頭圖標(運行按鈕),即可進行編譯,但是之前你需要將相應的處理圖片放在你自己設定的路徑下,以便讓系統(tǒng)可以找到處理的圖像。運行結果如圖4.4所示,圖4.4 運行結果4.3 實驗結果及分析上一小節(jié)筆者演示仿真的過程,這一章節(jié)我們一起來研究和分析放在的結果,如下圖4

44、.5所示,是處理前的圖片: 圖4.5 原圖像下面是處理后的最終圖片,如圖4.6所示, 圖4.6 壓縮后的圖像運行MATLAB程序后,顯示如上幾幅圖所示的圖像,點擊運行圖表按鈕,在桌面上會立即生成上面兩幅圖片。進過對比,我們不難發(fā)現(xiàn),兩幅圖片的整體視覺效果基本一致,清晰度區(qū)別不大。說明經(jīng)過DCT變換壓縮處理后的圖像,與之前圖像相比效果基本一致,這種壓縮效果讓人比較滿意。而且原來圖像的大小為13.3Kb,占用內存16.0kb,字節(jié)數(shù)16384b,壓縮之后的圖像大小為8.57k,占用內存12k,字節(jié)數(shù)12288B,很明顯,壓縮后圖像的大小以及內存的消耗明顯降低,達到了很好的壓縮效果。另外,如果將這種

45、壓縮方式作為一種小軟件在Windows平臺上使用,具有操作靈活簡單,處理速度快等優(yōu)勢,具有很好的推廣價值。總結論文首先簡單闡述了該課題的研究的背景、圖像信息壓縮技術的發(fā)展經(jīng)歷和未來發(fā)展的基本思路和方向、DCT中壓縮的作用等,并在第一章的最后重點論述了本文研究的主要內容以及含義。然后論文又討論了圖像壓縮的編碼原理,闡述了涉及到相關問題,接著有簡單介紹了DCT(離散余弦變換)的來源,同時論文也講述了jpeg圖像壓縮的編碼過程和闡述壓縮處理技術的基本理論。在前面兩個部分的基礎上,論文就開始進入matlab程序設計的核心內容,包括圖像文件讀取、圖像文件的輸出等一列程序設計過程,并對某些可能難以理解的地

46、方加以闡述和說明。最后,介紹仿真的相關情況,驗證程序是否正確??偟膩碚f,這一次畢業(yè)設計我確實受益匪淺,從接到這個論題,到自己親身開始思考,我都學到了許多。包括對matlab的認識,圖像壓縮的認識以及程序的設計思路和設計邏輯等方面都有長足的進步。我覺得這次畢業(yè)設計可以說是對我大學學習的一個很好的檢驗,同時,也為自己以后參與工作之中做一個很好的鋪墊和準備。讓我認識自己能力,找準自己的不足點,加強相關點的學習和認知。從另外一個角度來說,也是對自己以后進步的一次鼓勵和鍛煉。本次的畢業(yè)設計,在通過我的指導老師劉曉麗老師的幫助和到圖書館查閱各種資料,對于圖像壓縮的掌握有了很大的提高,對于自己不懂的知識也完

47、善了學習的方法。對于編程的把握又有了進一步的提高,通過本次畢業(yè)設計,我發(fā)現(xiàn)自己的編程和糾偏能力都有了很大程度的提升,不過設計過程中遇到的問題很多,但在自己及老師的耐心工作下,它們還是被我們逐個解決,學會了如何面對困難、處理難題,讓我知道了只有自己真正的掌握了,困難的東西自然變得不困難。 最后敬請各位專家、老師和同學對論文的不足和謬誤之處提出寶貴的指導意見和建議,謝謝。參考文獻1 劉 秀敏. 基于MATLAB的DCT變換在JPEG圖像壓縮中的應用M. 航空航天出版社, 2005.2 崔春艷. 基于DCT變換的數(shù)字圖像壓縮技術及其Matlab實現(xiàn). 中國紡織出版社, 2003.3 鮑振博

48、, 李連江. 凸輪動態(tài)仿真的Matlab實現(xiàn)J. 煤礦機械, 2006.4 曹玉茹;鄭戟明. 基于Matlab的圖像壓縮實現(xiàn)J. 計算機工程與設計;2009.5 陳勇;郭金旭. 一種改進的圖像壓縮方法及其Matlab實現(xiàn)大眾科技, 武漢理工大學學報(信息與管理工程版).2007.6 李莉. 基于DA算法的二維DCT的FPGA實現(xiàn)J.現(xiàn)代電子技術.2006.7 鐘文榮,陳建發(fā). 二維DCT算法的高速芯片設計J;廈門大學學報(自然科學版).2005.8 Solid Warehouse Material Management System Based on ERP and Bar Cod Techn

49、ology, International Journal od Plant Engineering and ManagementJ.20049 Choong Moon Lee. The Sillieon Vallery edage M,Stab-ford University Press.2001.致謝在短短4個月的畢業(yè)設計的過程中,我不僅學到許多以前在課堂上沒有接觸的知識和方法,讓我的實踐操作能力得到了很高的提升。而且還收獲了濃濃的同學之誼,師生之情。因此,我需要特別要感謝在整個畢業(yè)設計過程中耐心幫助我的同學們和堅持指導我的老師們,是他們給了我完成課題設計的信心,持之以恒的決心,使得我能夠克

50、服一個又一個的難題,最終順利完成我的畢業(yè)設計!讓我感觸最深的是我尊敬的老師*老師,她在matlab編程設計上的造詣讓我深深的佩服,當我有疑問向她請教時她總是能夠很清晰的找到我問題的關鍵點,完美為我闡述問題的本質和核心,正是劉曉麗老師的悉心指導讓我在程序編寫上少走了很多彎路,最終編寫完成了完整可行的程序代碼。并且在最后的仿真階段,*老師更是犧牲自己的休息時間為我指導,我要向她表示由衷的感謝!最后,我要再次感謝一直耐心指導,不厭其煩的*老師,感謝陪我一起過關斬將,攻堅克難的室友,感謝學校將實驗室有限的資源對我們開放的大力支持,感謝所有朋友在生活上、精神上和知識上對我無私的幫助,時常和他們討論我在設

51、計過程中遇到的問題,他們了我很多寶貴的意見和想法,為我提供了很多的參考書目,在我最需要的時候給我鼓勵和幫助,在這里我深深說一句:謝謝你們! 附件1 圖像JPEG壓縮的matlab程序RGB=imread('c:UsersyifanDesktop1.jpg');%讀取圖片 RGB=imresize(RGB,168,224);%因為1.jpg大小為169*220,所以我改為168*224 imwrite(RGB,'c:UsersyifanDesktopstart.jpg'); %保存壓縮前圖像 %下面是對RGB三個分量進行分離,此時他們依然為整數(shù) R=RGB(:,:

52、,1); G=RGB(:,:,2); B=RGB(:,:,3); figure,imshow(RGB),title('原來的RGB圖像'); %下面是進行測試:由壓縮前.jpg,壓縮后.jpg,壓縮后后.jpg,壓縮后后后.jpg的大小可以知道,matlab自身對圖像有著壓縮功能 imwrite(RGB,'c:UsersyifanDesktop壓縮前.jpg'); %保存壓縮前圖像 %由于1.jpg和壓縮前.jpg大小差距很大,從中可以看出matlab對圖像進行了壓縮 RGB=imread('c:UsersyifanDesktop壓縮前.jpg'

53、);%讀取圖片 imwrite(RGB,'c:UsersyifanDesktop壓縮后.jpg'); %保存壓縮前圖像 RGB=imread('c:UsersyifanDesktop壓縮后.jpg');%讀取圖片 imwrite(RGB,'c:UsersyifanDesktop壓縮后后.jpg'); %保存壓縮前圖像 RGB=imread('c:UsersyifanDesktop壓縮后后.jpg');%讀取圖片 imwrite(RGB,'c:UsersyifanDesktop壓縮后后后.jpg'); %保存壓縮前圖

54、像 %測試結束 %RGB->YUV Y=0.299*double(R)+0.587*double(G)+0.114*double(B); U=-0.169*double(R)-0.3316*double(G)+0.5*double(B); V=0.5*double(R)-0.4186*double(G)-0.0813*double(B); YUV=cat(3,Y,U,V);%YUV圖像 figure,imshow(uint8(YUV),title('通過計算得到的YUV圖像') T=dctmtx(8);%產(chǎn)生一個8*8的DCT變換舉證 %進行DCT變換 BY BU BV是double類型 BY=blkproc(Y,8 8,'P1*x*P2',T,T'); BU=blkproc(U,8 8,'P1*x*P2',T,T'); BV=blkproc(V,8 8,'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論