用VC實(shí)現(xiàn)圖像的離散余弦變換畢業(yè)設(shè)計(jì)_第1頁(yè)
用VC實(shí)現(xiàn)圖像的離散余弦變換畢業(yè)設(shè)計(jì)_第2頁(yè)
用VC實(shí)現(xiàn)圖像的離散余弦變換畢業(yè)設(shè)計(jì)_第3頁(yè)
用VC實(shí)現(xiàn)圖像的離散余弦變換畢業(yè)設(shè)計(jì)_第4頁(yè)
用VC實(shí)現(xiàn)圖像的離散余弦變換畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文) 題題 目目用用 VC+VC+實(shí)現(xiàn)圖像的離散余弦變換實(shí)現(xiàn)圖像的離散余弦變換 目錄 目錄.I 摘要 .III ABSTRACT.IV 文獻(xiàn)綜述 .V 前言 .VI 1 引言 .1 1.1背景 .1 1.2意義 .1 1.3現(xiàn)狀與發(fā)展 .2 2 系統(tǒng)總體設(shè)計(jì) .4 2.1系統(tǒng)的開發(fā)環(huán)境 .4 2.2系統(tǒng)開發(fā)的內(nèi)容 .5 2.3系統(tǒng)需要實(shí)現(xiàn)的功能 .6 2.4GDI 與 GDI+基本介紹 .6 2.5系統(tǒng)總流程圖 .8 3 正交變換知識(shí)概述 .9 3.1圖像處理中的正交變換 .9 3.2傅立葉變換的基本概念 .9 3.3離散余弦變換基本概念 .13 4 圖像文件格式 .16 4.1圖

2、像的基本類型 .16 4.2位圖的格式 .18 4.3位圖數(shù)據(jù)的讀取與顯示 .19 5 圖像離散余弦變換實(shí)現(xiàn) .22 5.1AAN 方法介紹 .22 5.2實(shí)現(xiàn)步驟 .23 5.3結(jié)果分析 .23 6 圖像離散余弦 逆變換實(shí)現(xiàn) .25 6.1正變換的相關(guān)參數(shù)存儲(chǔ) .25 6.2根據(jù)圖像數(shù)據(jù)逆變換 .25 7 系統(tǒng)測(cè)試及效果 .27 7.1打開圖片測(cè)試 .27 7.2分塊 DCT 變換測(cè)試 .27 7.3逆變換測(cè)試 .28 7.4系統(tǒng)性能分析 .28 8 全文總結(jié) .29 致謝 .30 參考文獻(xiàn) .31 摘要 本文研究圖像的 正交變換之一離散余弦變換, 使用 VC+編碼具體實(shí)現(xiàn) 了 AAN 快速

3、算法,大 大提高了處理速度 。 本系統(tǒng)還實(shí)現(xiàn)了圖 像文件的讀、寫及顯示,先將 正變換后的 位圖圖像 信息 存儲(chǔ)在文件中,然后從文件中讀取位圖數(shù)據(jù),把這些數(shù)據(jù)經(jīng)過(guò)離散余弦逆變換 , 最后再將變換后的數(shù)據(jù)以位圖顯示出來(lái) 。本文重點(diǎn)介紹了 離散余弦變換的原理 及其實(shí)現(xiàn)的方法 。 本文對(duì)離散余弦變換的基本原理、數(shù)學(xué)依據(jù)及程序的實(shí)現(xiàn)過(guò)程做了細(xì)致的研 究,并對(duì) DCT 的變換圖像和反變換的還原圖像進(jìn)行了測(cè)試。 關(guān)關(guān)鍵鍵詞詞: 圖像正交變換,離散余弦變換 (DCT),AAN快速算法 Abstract This article works on discrete cosine transformation w

4、hich is one of orthogonal transformation of image. AAN algorithm of DCT programmed in Visual C+ platform, experimental results show that it is effection. This system also fulfill the reading、writing and displaying operations of bitmap file. Firstly, we save the positive transforming information of i

5、mage file as text file. Then, we read the image data from text file to do DCT. At last, we display the transformed data in a way of bitmap format. This article emphasizes on the theory of discrete cosine transformation and the way how to achieve it. This article carefully researches on fundamental p

6、rinciple、mathematic basis and the arithmetic of discrete cosine transformation. Besides, we test the images of positive and negative transformation. Key words: orthogonal transformation of image, discrete cosine transformation (DCT), AAN speed method 文獻(xiàn)綜述 圖圖像像格格式式、圖圖像像正正交交變變換換相相關(guān)關(guān)文文獻(xiàn)獻(xiàn)概概述述 圖像是現(xiàn)代信息社會(huì)中

7、最基本的信息。數(shù)字圖像處理的研究對(duì)象是圖像處理 技術(shù),這是計(jì)算機(jī)技術(shù)的重要分支和發(fā)展方向。 文獻(xiàn) Error! Reference source not found.介紹了 Visual C+的開發(fā)環(huán)境及靜 止、視頻圖像壓縮編碼中用道的主要編碼算法,如:傅立葉變換、離散余弦變換、 小波變換、熵編碼、運(yùn)動(dòng)估計(jì)等,并對(duì)多個(gè)國(guó)際標(biāo)準(zhǔn)進(jìn)行了深入的研究和分析, 如 JPEG、JPEG2000、H.261 、H.263 和 H.26L 等,同時(shí)給出了其中主要算法的Visual C+源程序。 文獻(xiàn) Error! Reference source not found.對(duì)傅立葉變換的特性進(jìn)行了分析, 包括產(chǎn)生背

8、景、數(shù)學(xué)理論、算法,并對(duì)傅立葉變換和快速傅立葉變換作了比較。 文獻(xiàn) Error! Reference source not found.則介紹了圖像變換在信息隱藏中的 應(yīng)用。 文獻(xiàn) Error! Reference source not found.介紹了離散余弦變換編碼的現(xiàn)狀與 發(fā)展趨勢(shì)。 文獻(xiàn) Error! Reference source not found.Error! Reference source not found.主要介紹數(shù)字圖像處理的理論與方法, 介紹了各種數(shù)字圖像處理的算法 及編程實(shí)現(xiàn)技術(shù)。主要內(nèi)容包括:位圖基礎(chǔ)、圖像的顯示、圖像的幾何變換、圖 像灰度變換、圖像的平滑處理

9、、圖像銳化處理及邊緣檢測(cè)等。在圖像的變換域 處理及應(yīng)用中,對(duì)本文研究的圖像正交變換做了詳細(xì)的說(shuō)明。 文獻(xiàn) Error! Reference source not found.-Error! Reference source not found.是有關(guān)離散余弦變換的編程的相關(guān)計(jì)算機(jī)實(shí)現(xiàn)。很有幫助。 文獻(xiàn) Error! Reference source not found.-Error! Reference source not found.對(duì)圖像格式、圖像讀取顯示的原理,算法給出了細(xì)致的說(shuō)明。 MFC 相相關(guān)關(guān)文文獻(xiàn)獻(xiàn)介介紹紹 文獻(xiàn) Error! Reference source not fou

10、nd.圍繞面向?qū)ο笏枷爰捌湓?Visual C+語(yǔ)言中的應(yīng)用而展開,著重介紹Visual C+的語(yǔ)言基礎(chǔ),力求使讀者在學(xué) 習(xí) Visual C+的過(guò)程中逐步掌握面向?qū)ο蟮乃枷牒头椒ā?文獻(xiàn) Error! Reference source not found.從剖析實(shí)例入手,詳細(xì)介紹了使用 Visual C+進(jìn)行可視化 Windows 應(yīng)用程序開發(fā)所需的基本原理和概念,并設(shè)計(jì) 了豐富的范例和實(shí)驗(yàn)。 前言 本文提取出了用 Visual C+實(shí)現(xiàn)圖像離散余弦正交變換的實(shí)現(xiàn)過(guò)程,并結(jié) 合有關(guān)基本概念對(duì)正交變換的特征進(jìn)行了分析和研究,有助于圖像變換、信息隱 藏等方向的工作者對(duì)圖像的研究。本文主要分為八章

11、。 第一章主要介紹了進(jìn)行圖像正交變換分析和研究的背景、意義及發(fā)展前景方 向。 第二章對(duì)整個(gè)正交變換系統(tǒng)做了簡(jiǎn)要介紹。 第三章給出了正交變換數(shù)學(xué)原理公式及其分析方法。 第四章介紹了圖像的基本格式、讀取方法,并對(duì)圖像格式之一BMP 做了 詳細(xì)的說(shuō)明。 第五章給出了圖像離散余弦變換的算法分析、程序?qū)崿F(xiàn)方法及結(jié)果分析。 第六章特別對(duì)離散余弦變換的逆過(guò)程做了研究。 第七章對(duì)系統(tǒng)的結(jié)果做了測(cè)試。 第八章全文所使用的方法、結(jié)果以及目的和意義做了全面的總結(jié),是全文的 概括。 本文的完成得到了戴祖旭博士的幫助和指導(dǎo),在此向他表示衷心的感謝。 王艾樹 2008-06-09 于武漢工程大學(xué)理學(xué)院 1 引言 1.1

12、背景 1974 年由 Ahmed 和 Rao 提出的離散余弦變換,至今已有30 年歷史。此間, DCT 編碼已發(fā)展成為 JPEG , MPEG , H.26x 等圖像/視頻編碼標(biāo)準(zhǔn)中的核心。 離散余弦變換( DCT for Discrete Cosine Transform)Error! Reference source not found.是與傅立葉變換Error! Reference source not found.相關(guān)的一種變換,它類似于離散 傅立葉變換( DFT for Discrete Fourier Transform),但是只使用實(shí)數(shù)。離散余弦 變換相當(dāng)于一個(gè)長(zhǎng)度大概是它兩倍的

13、離散傅立葉變換,這個(gè)離散傅立葉變換是對(duì) 一個(gè)實(shí)偶函數(shù)進(jìn)行的(因?yàn)橐粋€(gè)實(shí)偶函數(shù)的傅立葉變換仍然是一個(gè)實(shí)偶函數(shù)), 在有些變形里面需要將輸入或者輸出的位置移動(dòng)半個(gè)單位(DCT 有 8 種標(biāo)準(zhǔn)類 型,其中 4 種是常見的 )。 離散余弦變換 (DCT)已經(jīng)成為數(shù)字信號(hào)處理和圖像處理的一種重要手段,但 是其直接算法的計(jì)算量太大,速度太慢。在1988 年,Y.Arai , T.Agui, and M.Nakajima 提出的一種快速算法 AAN 算法后,極大地提高了離散余弦變換的 速度。正是 AAN 算法的出現(xiàn),才使離散余弦變換得以廣泛應(yīng)用。 離散余弦變換是數(shù)字圖像處理研究中的常用變換,它將圖像數(shù)據(jù)由時(shí)

14、域變換 為頻率域, 然后再進(jìn)行處理,在許多情況下能提高圖像處理的速度。這是信息 隱藏與數(shù)字水印研究工作的數(shù)學(xué)基礎(chǔ)。用VC+開發(fā)圖像的離散余弦正交變換 程序,可以為進(jìn)一步的信息隱藏 Error! Reference source not found.研究工作提供一個(gè)實(shí) 驗(yàn)平臺(tái),為進(jìn)一步開發(fā)信息隱藏工具軟件提供必要的組件。 1.2 意義 此外,圖像的正交變換被廣泛地運(yùn)用于圖像特征提取、圖像增強(qiáng)、圖像復(fù)原、 圖像壓縮和圖像識(shí)別等領(lǐng)域。正交變換是信號(hào)分析學(xué)科中的一個(gè)重要部分,它是 計(jì)算機(jī)圖像處理的前續(xù)課程。多年來(lái),變換理論在圖像處理 (頻域法處理) 中起著關(guān)鍵作用。本文將介紹對(duì)圖像使用正交變換的離散余

15、弦變換的過(guò)程。 正交變換是數(shù)字圖像信息處理中的重要技術(shù)。目前,人們應(yīng)用在圖像信息隱藏、 圖像置亂中的技術(shù)主要基于時(shí)域(空間域),即根據(jù)圖像像素點(diǎn)的坐標(biāo)和顏色值的變 化,達(dá)到隱藏或置亂的目的。這樣的結(jié)果將使人們得到一幅雜亂無(wú)章的圖像,使得 破譯者很容易發(fā)現(xiàn)這是經(jīng)過(guò)加密的圖像而去破譯它。這使得正交變換尤為重要。 圖像變換在數(shù)字圖像處理與分析中起著很重要的作用,是一種常用的、有效 有分析手段。圖像變換的目的在于:使圖像處理問(wèn)題簡(jiǎn)化;有利于圖像特征提??; 有助于從概念上加強(qiáng)對(duì)圖像信息的理解。 離散余弦變換,經(jīng)常被信號(hào)處理和圖像處理使用,用于對(duì)信號(hào)和圖像(包括 靜止圖像和運(yùn)動(dòng)圖像)進(jìn)行有損數(shù)據(jù)壓縮。這是

16、由于離散余弦變換具有很強(qiáng)的 “能量集中 “特性:大多數(shù)的自然信號(hào)(包括聲音和圖像)的能量都集中在離散 余弦變換后的低頻部分,而且當(dāng)信號(hào)具有接近馬爾科夫過(guò)程(Markov processes)的統(tǒng)計(jì)特性時(shí),離散余弦變換的去相關(guān)性接近于K-L 變換 Karhunen-Love 變換-它具有最優(yōu)的去相關(guān)性 )的性能。 傅立葉變換是數(shù)字圖 像處理技術(shù)的基礎(chǔ),其通過(guò)在時(shí)空域和頻率域來(lái)回切換圖像,對(duì)圖像的信息特征 進(jìn)行分析和提取,簡(jiǎn)化了計(jì)算工作量,被喻為描述圖像信息的第二種語(yǔ)言,廣泛 應(yīng)用于圖像變換,圖像編碼與壓縮,圖像分割,圖像重建中 ,因此,深入研究 和掌握傅立葉變換及其擴(kuò)展形式的特性 ,是很有價(jià)值的

17、 。 而從傅立葉變換的性質(zhì)可知,當(dāng)一函數(shù)為偶函數(shù)時(shí),其傅立葉變換的虛部為 零,因而不需計(jì)算,只計(jì)算余弦項(xiàng)變換,這就是余弦變換。因此余弦變換是傅立 葉變換的特例,余弦變換是簡(jiǎn)化傅立葉變換的重要主法。近年來(lái),余弦變換在壓 縮編碼中得到廣泛的應(yīng)用。 1.3 現(xiàn)狀與發(fā)展 在文獻(xiàn) Error! Reference source not found.中,離散余弦變換 (DCT)用于圖 像編碼是 1974 年由 Ahmed 和 Rao 提出的。對(duì)于離散余弦變換,盡管Shapiro 的 EZW 以及 Said 等人的 SPIHT 小波編碼的成功應(yīng)用,對(duì)傳統(tǒng)的DCT 編碼提 出了挑戰(zhàn),但 Xiong 等人利川嵌

18、入式 DCT 塊變換之間的直流相關(guān)性,以及對(duì) DCT 后的系數(shù)進(jìn)行策略性重組或?qū)邮紻CT 同樣具有小波多分辨率圖像的分解 特性。此外,基于層次嵌入式DCT、形狀自適應(yīng) DCT,截短 DCT,感興趣 Ix:域 支撐 DCT 以及形態(tài) DCT 等改進(jìn)形式的編碼,都是將基于DCT 變換編碼推向 更高層次。就 DCT 改進(jìn)的變換,以及 DCT 系數(shù)的應(yīng)用,如利用 DCT 系數(shù)實(shí) 現(xiàn)信息隱藏等,也使得基于常規(guī)的DCT 變換編碼有了更廣闊的應(yīng) )用與發(fā)展空 間,是未來(lái)的發(fā)展方向。 它的應(yīng)用也挺廣范的,例如,在靜止圖像編碼標(biāo)準(zhǔn)JPEG 中,在運(yùn)動(dòng)圖像 編碼標(biāo)準(zhǔn) MJPEG 和 MPEG 的各個(gè)標(biāo)準(zhǔn)中都使用了

19、離散余弦變換。在這些標(biāo)準(zhǔn)制 中都使用了二維的第二種類型離散余弦變換,并將結(jié)果進(jìn)行量化之后進(jìn)行熵編碼。 這時(shí)對(duì)應(yīng)第二種類型離散余弦變換中的n 通常是 8,并用該公式對(duì)每個(gè) 8x8 塊 的每行進(jìn)行變換,然后每列進(jìn)行變換。得到的是一個(gè)8x8 的變換系數(shù)矩陣。其 中(0,0)位置的元素就是直流分量,矩陣中的其他元素根據(jù)其位置表示不同頻率的 交流分類。 離散余弦變換也經(jīng)常被用來(lái)使用譜方法來(lái)接偏微分方程,這時(shí)候離散余弦變 換的不同的變量對(duì)應(yīng)著數(shù)組兩端不同的奇 /偶邊界條件。 離散余弦變換也經(jīng)常被用來(lái)使用譜方法來(lái)接偏微分方程,這時(shí)候離散余弦變 換的不同的變量對(duì)應(yīng)著數(shù)組兩端不同的奇 /偶邊界條件。 2 系統(tǒng)總

20、體設(shè)計(jì) 對(duì)圖像的正交變換的研究是一個(gè)具有很大意義的研究課題,它在許多方面都 有重要的應(yīng)用。本文研究的離散余弦正交變換是其中的一個(gè)子部分,它們是最基 本最重要的。本章對(duì)正交變換的介紹,不僅會(huì)讓讀者了解到圖像變換的基礎(chǔ)知識(shí), 還會(huì)讓讀者明白研究圖像變換的實(shí)際意義。 2.1 系統(tǒng)的開發(fā)環(huán)境 面向?qū)ο蟪绦蛟O(shè)計(jì)( ObjectOriented Programming,OOP)Error! Reference source not found.方法已出現(xiàn)近 30 年,在 20 世紀(jì) 90 年代已經(jīng)成為程序設(shè)計(jì)的主流 方向。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言是現(xiàn)代程序開發(fā)的工具,任何一個(gè)優(yōu)秀的應(yīng)用程序 開發(fā)人員都必須至少

21、熟悉一種面向?qū)ο蟮木幊陶Z(yǔ)言。 采用 C+來(lái)進(jìn)行圖象編程的主要原因是,與Java 和 C#等現(xiàn)代編程語(yǔ)言相 比,C+在程序運(yùn)行的效率、內(nèi)存使用的可控性和編程的靈活性上具有優(yōu)勢(shì)。 Visual C+6.0 為用戶提供了一套良好的可視化開發(fā)環(huán)境,主要包括文本編 輯器、資源編輯器、工程創(chuàng)造工具和Debugger 調(diào)試器等。用戶可以在集成環(huán)境 中創(chuàng)建工程、打開工程,建立、打開和編輯文件,編譯、鏈結(jié)、運(yùn)行和調(diào)試應(yīng)用 程序。 程序包含兩類基本元素,即數(shù)據(jù)和操作數(shù)據(jù)的指令集(稱為代碼)。傳統(tǒng)的 程序設(shè)計(jì)語(yǔ)言以設(shè)計(jì)代碼為核心,程序設(shè)計(jì)實(shí)際上是指定程序指令的先后順序, 數(shù)據(jù)表示必須適應(yīng)代碼的設(shè)計(jì)。模塊化程序設(shè)計(jì)方

22、法將完成某一功能的指令集組 成一個(gè)相對(duì)獨(dú)立的程序模塊(即函數(shù)或過(guò)程),使得程序的結(jié)構(gòu)清晰,便于有效 的維護(hù),對(duì)程序設(shè)計(jì)技術(shù)有很大的促進(jìn),隨著程序規(guī)模的增大,各模塊之間的相 互影響導(dǎo)致一些難于測(cè)試,難以定位發(fā)現(xiàn)問(wèn)題,增加程序開發(fā)和維護(hù)的困難。面 向?qū)ο蟪绦蛟O(shè)計(jì)方法就是在這種背景下出現(xiàn)和發(fā)展起來(lái)的。 面向?qū)ο蟪绦蛟O(shè)計(jì)方法主要以數(shù)據(jù)為中心,代碼是圍繞著需要處理的數(shù)據(jù)而 設(shè)計(jì)的。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言具有如下的特征: 1.對(duì)象的類描述 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言將程序描述的事情看成一個(gè)整體,稱為對(duì)象,對(duì)象是 包含數(shù)據(jù)和代碼的完全獨(dú)立的實(shí)體。同一類對(duì)象具有相同的性質(zhì)和方法,每一個(gè) 具體的對(duì)象都是類的一個(gè)實(shí)體,創(chuàng)

23、建對(duì)象就是把類實(shí)例化。 2.封裝性 封裝性是 OOP 的核心技術(shù),是面向?qū)ο蟪绦蛘Z(yǔ)言將數(shù)據(jù)和處理數(shù)據(jù)的方法 組合在類中,并具有模塊化和信息隱藏的特征。類是一個(gè)獨(dú)立的模塊,類的內(nèi)部 狀態(tài)描述數(shù)據(jù)對(duì)程序的其他部分是不可見的,類只向外界公布其具有public 屬性的數(shù)據(jù)和代碼,并構(gòu)成類和外界的接口。外界不能直接對(duì)類進(jìn)行修改,而只 能通過(guò)這個(gè)接口把信息傳給類,并由類定義對(duì)內(nèi)部數(shù)據(jù)進(jìn)行修改,外界不能決定 這種修改的結(jié)果,只能得到類進(jìn)行操作所得出的反應(yīng)。封裝性能防止類與外界的 非法交互和訪問(wèn),避免外界對(duì)對(duì)象內(nèi)部狀態(tài)的錯(cuò)誤修改,確保類這一模塊的真正 的獨(dú)立性,以保證程序的安全運(yùn)行。 3.多態(tài)性 不同的類或?qū)?/p>

24、象對(duì)外界傳入的相同信息能夠根據(jù)自身的性質(zhì)作出不同的反應(yīng), 這就是多態(tài)性。不同的類或?qū)ο罂梢酝ㄟ^(guò)設(shè)計(jì)自己專有的處理外界傳入信息的方 法來(lái)實(shí)現(xiàn)多態(tài)性。 4.繼承性 繼承性是指一個(gè)類可以派生出的新的類。新類可以繼承原類的定義的性質(zhì)和 方法,還能在原類定義的性質(zhì)和方法之外加入自身定義的性質(zhì)和方法。通過(guò)繼承 性,能形成類之間的層次結(jié)構(gòu)。 2.2 系統(tǒng)開發(fā)的內(nèi)容 關(guān)于用 VC+方法,實(shí)現(xiàn)圖像的正交變換,包括離散余弦正交變換及其逆變 換。由于采用了 GDIPLUS 方法對(duì)圖像進(jìn)行讀取 ,所以圖像格式可為 jpg,bmp, gif,彩色和灰度圖像均可 ,但是圖像經(jīng)讀取之后,其數(shù)據(jù)全部轉(zhuǎn)換成RGB 色, 灰度圖

25、像的 R,G 和 B 數(shù)據(jù)相同。通過(guò)本程序可以進(jìn)行圖像的正逆變換,變換 矩陣的大小可選擇,但均為2 的 N 次方階,在正變換同時(shí)保存圖像頻率域 ,及 逆變換時(shí)所需的信息。 逆變換也可以單獨(dú)完成,即通過(guò)讀文件得到相關(guān)參數(shù),便可以直接進(jìn)行圖像 逆變換,得到逆變換后的圖像。得到的圖像也可以和原來(lái)圖像進(jìn)行比較。 2.3 系統(tǒng)需要實(shí)現(xiàn)的功能 本文所介紹的圖像正交變換實(shí)現(xiàn)以下過(guò)程 (圖像格式為 jpg,bmp, gif): a)圖像文件讀寫操作實(shí)現(xiàn) ; b)圖像文件的顯示實(shí)現(xiàn) ; c)離散余弦變換 正逆變換; d)保存正變換過(guò)程得到頻率域參數(shù) (寫入文本文件 ); e)讀文件,逆變換 (讀取文本文件 )。

26、 2.4 GDI 與 GDI+基本介紹 GDI 在 Windows 中定義為 Graphics Device Interface,即圖形設(shè)備接口,是 Windows API(Application Programming Interface)的一個(gè)重要組成部分。它是 Windows 圖形顯示程序與實(shí)際物理設(shè)備之間的橋梁,GDI 使得用戶無(wú)需關(guān)心具 體設(shè)備的細(xì)節(jié),而只需在一個(gè)虛擬的環(huán)境(即邏輯設(shè)備)中進(jìn)行操作。它的橋梁 作用體現(xiàn)在: (1)用戶通過(guò)調(diào)用 GDI 函數(shù)將邏輯空間的操作轉(zhuǎn)化為具體針對(duì)設(shè)備驅(qū)動(dòng)程 序的調(diào)用。 為實(shí)現(xiàn)圖形設(shè)備無(wú)關(guān)性, Windows 的繪圖操作在一個(gè)設(shè)備描述表 上進(jìn)行。用

27、戶擁有自己的 “邏輯坐標(biāo) ”系統(tǒng),它獨(dú)立于實(shí)際的物理設(shè)備,與 “設(shè)備坐標(biāo) ”相對(duì)應(yīng)。開發(fā) Windows 應(yīng)用程序時(shí),程序員關(guān)心的是邏輯坐標(biāo), 我們?cè)谶壿嬜鴺?biāo)系上繪圖,利用GDI 將邏輯窗口映射到物理設(shè)備上。 (2)GDI 能檢測(cè)具體設(shè)備的能力,并依據(jù)具體的設(shè)備以最優(yōu)方式驅(qū)動(dòng)這些設(shè) 備,完成真實(shí)的顯示。 GDI 函數(shù)大致可分類為:設(shè)備上下文函數(shù)(如 GetDC、CreateDC、DeleteDC)、 畫線函數(shù)(如 LineTo、Polyline、Arc)、 填充畫圖函數(shù)(如 Ellipse、FillRect、Pie)、畫圖屬性函數(shù)(如 SetBkColor、SetBkMode、SetTextC

28、olor)、文本、字體函數(shù)(如 TextOut、GetFontData)、位圖函數(shù)(如 SetPixel、BitBlt、StretchBlt)、坐標(biāo) 函數(shù)(如 DPtoLP、LPtoDP、ScreenToClient、ClientToScreen)、映射函數(shù) (如 SetMapMode、SetWindowExtEx、SetViewportExtEx)、元文件函數(shù)(如 PlayMetaFile、SetWinMetaFileBits)、區(qū)域函數(shù)(如 FillRgn、FrameRgn、InvertRgn)、路徑函數(shù)(如 BeginPath、EndPath、StrokeAndFillPath)、裁剪函

29、數(shù)(如 SelectClipRgn、SelectClipPath)等。 GDI 雖然使程序員得到了一定程度的解脫,但是其編程方式仍很麻煩。譬如, 顯示一張位圖,程序員需要進(jìn)行 “裝入位圖 讀取位圖文件頭信息 啟用設(shè)備 場(chǎng)景調(diào)色板變換 ”等一連串操作。而有了 GDI+,這些問(wèn)題便迎刃而解了。 顧名思義, GDI+是 GDI 的增強(qiáng)版。它是微軟在 Windows 2000 以后操作系 統(tǒng)中提供的新接口,其通過(guò)一套部署為托管代碼的類來(lái)展現(xiàn),這套類被稱為 GDI+的“托管類接口 ”。GDI+主要提供了以下三類服務(wù): (1)二維矢量圖形: GDI+提供了存儲(chǔ)圖形基元自身信息的類(或結(jié)構(gòu)體)、 存儲(chǔ)圖形基

30、元繪制方式信息的類以及實(shí)際進(jìn)行繪制的類。 (2)圖像處理:大多數(shù)圖片都難以劃定為直線和曲線的集合,無(wú)法使用二維 矢量圖形方式進(jìn)行處理。因此, GDI+為我們提供了 Bitmap、Image 等類,它 們可用于顯示、操作和保存BMP、JPG、GIF 等圖像格式。 (3)文字顯示: GDI+支持使用各種字體、字號(hào)和樣式來(lái)顯示文本。GDI 接口是基于函數(shù)的,而 GDI+是基于 C+類的對(duì)象化的應(yīng)用程序編程接口,因此 使用起來(lái)比 GDI 要方便。 在本論文的程序中,是在 GDI+平臺(tái)上進(jìn)行程序的編寫。 2.5 系統(tǒng)總流程圖 圖像文件讀取 正變換圖像顯示頻域信息保存 原始圖像顯示 DCT 變換 從文本讀

31、取信息 IDCT 變換 逆變換圖像顯示 圖 2-1 系統(tǒng)總流程圖 3 正交變換知識(shí)概述 3.1 圖像處理中的正交變換 數(shù)字圖象處理 Error! Reference source not found.的方法主要分為兩大類:一類是空 域的處理方法(或稱空域法)。把圖象變換到頻道域可以從另外一個(gè)角度來(lái)分析 圖象的特性,其基本線性運(yùn)算式是嚴(yán)格可逆的,并且每一個(gè)變換都存在自己的正 交函數(shù)集,滿足一定的正交條件,因此,也可以將其稱作酉變換。正如表示空間 的一個(gè)矢量可以用不同的坐標(biāo)系一樣,變換的途徑雖然不同,但是它們都是空域 圖象的變換域表示式。 目前,在圖象處理技術(shù)中,正交變換正被廣泛的運(yùn)用于圖象的特征

32、提取、圖 象增強(qiáng)、圖象復(fù)原、圖象識(shí)別以及圖象的變換編碼等領(lǐng)域中,下面將簡(jiǎn)要介紹 傅立葉變換和離散余弦變換。 3.2 傅立葉變換的基本概念 傅立葉變換 Error! Reference source not found.是一種常見的正交變換,在數(shù)字圖像 處理中應(yīng)用離散傅立葉變換的概念。它的數(shù)學(xué)定義如下:如果),(yxf為一個(gè) M*N 的數(shù)字圖像,則其傅立葉變換為: 1 0 1 0 )(2 ),(),( M x N y N yv M x j eyxfF (3-1) 1 0 1 0 )(2 ),( 1 ),( MN v N yv M x j evuF MN yxf (3-2) 其中:1, 2 , 1

33、 , 0;1, 2 , 1 , 0NyMx 當(dāng)圖像為方陣時(shí),即 M=N,則二維離散傅立葉變換公式為: 1 0 1 0 )(2 ),(),( N x N y N yx j eyxfF (3-3) 1 0 1 0 )(2 2 ),( 1 ),( NN v N yx j evuF N yxf (3-4) 為降低傅立葉變換的計(jì)算量,節(jié)省運(yùn)算時(shí)間,在1965 年,Cooley 和 Tukey 提出了一種快速傅立葉變換( FFT)算法。 FFT 算法采用蝶形運(yùn)算方法, 可以大大提高算法效率。例如, 8 點(diǎn) FFT 算法一共需要 12 次復(fù)數(shù)乘法運(yùn)算和 24 次復(fù)數(shù)加法運(yùn)算,而 8 點(diǎn) DFT 的直接定義計(jì)

34、算方法一共需要64 次復(fù)數(shù)乘法 運(yùn)算和 56 次復(fù)數(shù)加法運(yùn)算。 3.2.1 傅立葉變換的性質(zhì) 傅立葉變換具有很多方便運(yùn)算處理的性質(zhì)。下面列出二維傅立葉變換的一些 重要性質(zhì)。 (1) 線性 傅立葉變換是一個(gè)線性變換 Fa f(x,y)bf(x,y)a Ff(x,y)b Ff(x,y) (3-5) (2) 可分離性 一個(gè)二維傅立葉變換可以用二次一維傅立葉變換來(lái)實(shí)現(xiàn)。推導(dǎo)如下: ( , )( , )exp2 ()F uf x yjuxy dxdy ( , )exp(2)exp(2)f x yjuxjy dxdy ( , )exp(2)exp(2)f x yjux dxjy dy ( , )exp(2

35、)F f x yjy dy ( , ) yx F Ff x y (3-6) (3) 平移性 傅立葉變換具有平移的特性,推導(dǎo)如下: )(2exp),(),( 0000 yuxjuFyyxxfF (3-7) ),()(2exp),( 0000 uuFyxujyxfF (3-8) (4) 共軛性 如果函數(shù)),(yxf的傅立葉變換為),(uF,),(yxf的傅立葉變換的共軛函 數(shù)為:),( * uF,那么: ),(Fv)(u, * vuF (3-9) (5) 尺度變換特性 如果函數(shù)),(yxf的傅立葉變換為),(vuF,a,b 是兩個(gè)標(biāo)量,那么: ),(),(vuaFyxafF (3-10) ),(

36、1 ),( b v a u F ab byaxfF (3-11) (6) 旋轉(zhuǎn)不變性 如果空間域函數(shù)旋轉(zhuǎn)角度為 0 ,則在變換域中該函數(shù)的傅立葉變換函數(shù)也 將旋轉(zhuǎn)相同的角度。表達(dá)式如下: ),(),( 00 kFrfF (3-12) 該式是在極坐標(biāo)下的傅立葉變換表達(dá)式。 (7) 對(duì)稱性 函數(shù)的傅立葉變換具有對(duì)稱性,相應(yīng)的表達(dá)式為: ),(),(vufyxFF (3-13) (8) 相關(guān)定理 如果),(yxf和),(yxg為兩個(gè)二維時(shí)域函數(shù),則可以定義相關(guān)運(yùn)算o 如下: dadbbyaxgbafyxogyxf),(),(),(),( 則: * ( , )( , )( , )( , )F f x

37、yg x yF u vG u v (3-14) ),(),(),(),( * vuoGvuFyxgyxfF (3-15) 其中),(vuF為),(yxf函數(shù)的傅立葉變換,),(vuG為函數(shù)),(yxg的傅立葉變 換),( * yxg為),(yxg的共軛,),( * vuG為),(vuG的共軛。 (9) 卷積定理 如果),(yxf和,g x y 為兩個(gè)二維時(shí)域函數(shù),那么可以定義卷積運(yùn)算如下: dadbbyaxgbafyxgyxf),(),(),(*),( (3-16) 則: ),(),(),(*),(vuGvuFyxgyxfF (3-17) ),(*),(),(),(vuGvuFyxgyxfF

38、(3-18) 其中),(vuF為函數(shù)),(yxf的傅立葉變換,),(yxg的傅立葉變換為),(vuG。 3.2.2 快速傅立葉變換 現(xiàn)在,離散傅立葉變換已成為數(shù)字信號(hào)處理的重要工具,但是它的計(jì)算量較 大,運(yùn)算時(shí)間長(zhǎng),在某種程度上限制了它的使用。為了解決這一矛盾,引用了快 速傅立葉變換 Error! Reference source not found.的思想??焖俑盗⑷~變換并不是一種新 的變換方式,它是離散傅立葉變換的一種算法,這種方法是建立在分析離散傅立 葉變換中的多余運(yùn)算的基礎(chǔ)上,進(jìn)而消除這些重復(fù)工作的思想指導(dǎo)下得到的,從 而在運(yùn)算中節(jié)省了大量的計(jì)算時(shí)間,達(dá)到快速運(yùn)算的目的。快速傅立葉變換

39、具有 很高的計(jì)算效率也具有很強(qiáng)的適用性,這使得快速傅立葉變換在數(shù)字圖象處理中 具有更為廣泛的應(yīng)用。 快速傅立葉變換的實(shí)現(xiàn)步驟為: (1) 開辟存儲(chǔ)空間用以保存加權(quán)系數(shù) i W及中間變量; (2) 采用頻率分解法進(jìn)行蝶形運(yùn)算; (3) 重新排列序列順序; (4) 釋放存儲(chǔ)空間。 3.3 離散余弦變換基本概念 圖象處理中常用的正交變換除了傅立葉變換以外,還有其他一些有用的正交 變換,離散余弦就是其中的一種。離散余弦變換表示為DCT。 3.3.1 離散余弦變換的定義 一維序列離散余弦變換的定義 7可以由下式表示: 1 1 0 0 N N x Ff x (3-19) 1 2 0 21 cos 2 N

40、N x xu F uf x N (3-20) 其中: F u 是第u個(gè)余弦變換系數(shù), u是廣義頻率變量 , 1,2,.,1fN ; f x 是時(shí)域 N 點(diǎn)序列, 0,1,2,.,1xN 。 一維離散余弦反變換 IDCT 由下式表示: 1 12 1 21 0cos 2 N NN u xu f xFF u N (3-21) 把上述的一維 DCT 推廣到二維離散變換,表達(dá)式如下: 11 00 2121 ,coscos 22 NN xy xuyv F u va u a vf x y NN (3-22) 逆變換可以表示為: 11 00 2121 ,coscos 22 NN uv xuyv f x ya

41、u a v F u v NN (3-23) 其中:空域和變換域元素矩陣維數(shù)為N; yx,是像素空間的坐標(biāo), ,0,1,2,.,1x yN ; vu,是 DCT 空間的坐標(biāo), 7 , 1 , 0,vu; ,f x y 是二維空間域的元素; ,F u v 為經(jīng)過(guò)二維離散余弦變換后的變換域元素; 式中系數(shù)為 12 0,11aa xxN NN 3.3.2 離散余弦變換的計(jì)算 與傅立葉變換一樣,離散余弦變換自然可以從定義出發(fā)進(jìn)行計(jì)算。但是在實(shí) 際中為了減少計(jì)算量,使得計(jì)算更加方便,需要尋找一種快速算法 Error! Reference source not found.。 以一維離散余弦變換為例,對(duì)快速

42、算法進(jìn)行推導(dǎo)。對(duì)于 F u ,可以寫成 以下的形式: 1 0 (21) 1 2 0 (21) 1 2 0 212 cos 2 2 Re 2 Re N x xu N j N x xu N j N x xu F uf x NN f xe N f x e N (3-24) 其中Re代表取實(shí)部。對(duì)于時(shí)域數(shù)據(jù)進(jìn)行如下的延拓: 0,1,2,.,1 0,1,.,21 e f xxN f xN NN (3-25) 則 e fx 的離散余弦變換可以寫成: 21 0 21 0 (21) 21 2 0 2 21 22 0 1 0 2(21) cos 2 2 Re 2 Re N e x N e x xup N j N

43、 e x uxu N jj NN e x Ffx N xu F ufx NN fx e N efx e N (3-26) 由式 3-26 可得 2 21 2 0 xu N j N e x fx e 是2N點(diǎn)的離散傅立葉變換。所以在做離散余弦變 換的時(shí)候,可以把序列的長(zhǎng)度延長(zhǎng)為 2N,然后做離散傅立葉變換,產(chǎn)生的結(jié)果 取實(shí)部就可以得到結(jié)果。 同理,在做反變換時(shí),首先在變換空間把 F u 做如下的延拓: 0,1,2,.,1 0,1,.,21 e F uuN F u uN NN (3-27) 這樣,反變換可以表示 : 21 1 21 21 2 1 2 21 22 1 2 21 22 1 2 2112

44、 0cos 2 12 0Re 12 0Re 12 0Re 122 0Re N ee u xu N j N ee u xuu N jj NN ee u xuu N jj NN ee u u j N ee xu f xFF u NNN FF ue NN FF uee NN FF u ee NN FF u e NNN A AA A 2 21 2 0 xu N j N u e (3-28) 由式 3-28 可知,離散余弦反變換快速算法可以由 2 u j N e F u e A 的2N點(diǎn)反傅 立葉變換快速算法實(shí)現(xiàn)。 4 圖像文件格式 4.1 圖像的基本類型 除了語(yǔ)音之外,圖像是人類獲取信息的另外一個(gè)重要

45、來(lái)源,大約70%的信 息是通過(guò)人眼獲得的圖像信息。圖像信號(hào)是指將圖像作為一種二維信號(hào),采用數(shù) 字信號(hào)處理的方法來(lái)對(duì)圖像進(jìn)行描述。今后為了表示方便,圖像信號(hào)就稱為圖像。 在近代科學(xué)研究、軍事技術(shù)、工農(nóng)業(yè)生產(chǎn)、氣象、醫(yī)學(xué)等領(lǐng)域中,人們?cè)絹?lái)越多 地利用圖像來(lái)認(rèn)識(shí)和判斷事物,解決實(shí)際問(wèn)題。例如:人們利用人造衛(wèi)星所拍攝 的地面照片,來(lái)分析獲取地球資源、全球氣象和污染情況,利用“和平號(hào)”宇宙 飛船所拍攝的月球表面照片,分析月球的形成。在醫(yī)學(xué)上,通過(guò)CT 斷層掃描, 醫(yī)生可以觀察和診斷人體內(nèi)部是否有病變組織。在公安偵破中,采用指紋提取并 處理進(jìn)行破案。在軍事上,目標(biāo)的自動(dòng)識(shí)別和自動(dòng)跟蹤都需要進(jìn)行圖像處理 E

46、rror! Reference source not found.。 下面的介紹本文用到的圖像的基本類別: (1)索引圖象 索引圖像包括一個(gè)數(shù)據(jù)矩陣 X 和一個(gè)色圖矩陣 MAP。其中, X 可以是 無(wú)符號(hào) 8 位整型、無(wú)符號(hào) 16 位整型或者雙精浮點(diǎn)型數(shù)據(jù); MAP 是一個(gè)包 含三列、若干行的數(shù)據(jù)陣列,其每一個(gè)元素的值均為0,1之間的雙精度浮點(diǎn) 型數(shù)據(jù)。 MAP 矩陣的每一行分別表示紅色、綠色和藍(lán)色的顏色值。索引圖象是 從像素值按照一定的規(guī)律到顏色映射值的一種圖象。 (2)灰度圖象 灰度圖(Graysacle)是指只含亮度信息,不含色彩信息的圖像。因此,要表示 灰度圖,就要把亮度值進(jìn)行量化,通

47、常是劃分成0 一 255 共 256 個(gè)級(jí)別, 0 表 示最暗, 255 表示最亮。在 BMP 格式的圖像中,可以使用 256 級(jí)的調(diào)色板來(lái) 表示灰度圖。這個(gè)調(diào)色板的每一項(xiàng)的RGB 值都是相同的,也就是說(shuō)從 (0, 0, 0), (1, 1, 1)一直到(255,255, 255)。在圖像中實(shí)際存儲(chǔ)的是調(diào)色板索引值,也就是該 像素值在調(diào)色板中位于第幾行。 一幅灰度圖像是一個(gè)數(shù)據(jù)矩陣I,而矩 I 中的數(shù)據(jù)均代表了在一定范圍內(nèi)的 顏色灰度值。計(jì)算機(jī)一般把灰度圖像存儲(chǔ)為單一的數(shù)據(jù)矩陣,數(shù)據(jù)矩陣中的每個(gè) 元素分別代表了圖像中的像素。矩陣中的元素可以是雙精度的浮點(diǎn)類型、8 位或 16 位無(wú)符號(hào)的整數(shù)類型

48、。 (3)RGB 圖 RGB 圖像,即真彩圖像,在計(jì)算機(jī)中存儲(chǔ)為數(shù)據(jù)矩陣。數(shù)組中的元素定義 了圖像中每一個(gè)像素的紅、綠、藍(lán)顏色值。它的每一個(gè)像素都要用3 個(gè)字節(jié)分 別表示 RGB 值。需要指出的是, RGB 圖像不使用 Windows 色圖。像素的顏 色由保存在像素位置上的紅、綠、藍(lán)的灰度值的組合來(lái)確定。圖形文件格式 RGB 圖像存儲(chǔ)為 24 位的圖像,紅、綠、藍(lán)分別占 8 位,這樣可以有 1000 多萬(wàn)種顏色(即 224=16 777 213)。 計(jì)算機(jī)中的 RGB 數(shù)組可以是雙精度的 浮點(diǎn)類型、 8 位或 16 位無(wú)符號(hào)的整數(shù)類型。在 RGB 的雙精度型數(shù)組中,每 一種顏色用在 0 和 1

49、 之間的數(shù)值表示。由于位真彩色圖像所需的存儲(chǔ)空 間很大,處理速度較慢,當(dāng)需要存儲(chǔ)空間不大,并且要求實(shí)時(shí)快速處理圖像時(shí), 一般都要利用相應(yīng)的位位圖對(duì)其進(jìn)行近似處理,因此位位圖是圖像技術(shù)中涉 及范圍比較廣泛的一種圖像表示方法。 圖形圖象處理 Error! Reference source not found.是計(jì)算機(jī)領(lǐng)域中的一個(gè)重要課題, 在人們的日常生活中應(yīng)用也非常的廣泛。而圖像格式則是圖像處理技術(shù)中的基礎(chǔ) 部分。只有深入了解了圖像格式,才能實(shí)現(xiàn)各種格式的轉(zhuǎn)換,進(jìn)行圖像的變換處 理等。目前流行的圖像格式種類繁多,如 BMP、TIFF,PNG,GIF,JPEG,SWF,SVG 等,此外還有一些非主

50、流的圖像格式如 DXF ,WMF,LIC,TGA 等,這些圖像格式都有其各自的優(yōu)缺點(diǎn),適用于不同的場(chǎng) 合。本文分析了兩種具有代表性的圖像文件格式并給出了VC+的讀取顯示實(shí) 現(xiàn)方法。 圖像文件一般由文件頭和圖像點(diǎn)陣數(shù)據(jù)兩部分構(gòu)成,文件頭中一般包含文件 標(biāo)志,圖像尺寸,顏色數(shù)等信息,這些信息由圖像提供者定義;圖像點(diǎn)陣數(shù)據(jù)包 含該圖像的每一點(diǎn)的顏色信息。 對(duì)于各種不同的圖象文件格式,其文件頭所包含的信息不盡相同,其中重要 的是含有該文件所存儲(chǔ)的圖像信息的存儲(chǔ)格式說(shuō)明,對(duì)于圖像處理程序來(lái)說(shuō),首 先就是讀取要處理的圖象文件文件頭信息,獲得所有必需的信息,再據(jù)此讀取圖 象點(diǎn)陣數(shù)據(jù)進(jìn)行相應(yīng)處理并正確顯示。

51、4.2 位圖的格式 BMPError! Reference source not found.是 Microsoft Windows 操作系統(tǒng)所支持的主 要圖象文件格式之一,其格式簡(jiǎn)單,適應(yīng)性強(qiáng),但這種文件格式是非壓縮的,故 此文件所占的磁盤空間較大。在 MFC 中也對(duì) BMP 文件格式提供了很好的支 持。 BMP 位圖文件的結(jié)構(gòu)如下圖所示 ,包括位圖文件頭結(jié)構(gòu) BITMAPFILEHEADER、位圖信息頭結(jié)構(gòu) BITMAPINFOHEADER、位圖顏色表 RGBQUAD 和位圖象素?cái)?shù)據(jù)四個(gè)部分。 位圖文件頭結(jié)構(gòu) BITMAPFILEHEADER 位圖信息頭結(jié)構(gòu) BITMAPINFOHEADE

52、R 位圖顏色表格 RGBQUAD(調(diào)色板 PALETTE) 位圖像素?cái)?shù)據(jù) 圖 4-1 BMP 位圖文件的結(jié)構(gòu) 附:真彩色圖不需要調(diào)色板。 再此列出與寬度相關(guān)的部分,這些與寬度相關(guān)的成員變量在位圖信息頭結(jié)構(gòu) BITMAPINFOHEADER 中,其原型為: typedef struct tagBITMAPINFOHEADER DWORD biSize; 說(shuō)明 BITMAPINFOHEADER 結(jié)構(gòu)所需的字節(jié)數(shù) LONG biWidth; 說(shuō)明位圖的寬度,以像素為單位 LONG biHight; 說(shuō)明位圖的高度,以像素為單位 WORD biplanes; 說(shuō)明目標(biāo)設(shè)備的位平面數(shù),必須為1 WORD

53、 biBitcount; 說(shuō)明每一個(gè)像素的位數(shù),必須為1,4,8,24 WORD biCompression; 說(shuō)明一個(gè)壓縮位圖的壓縮類型,有以下幾種類型: BI-RGB,BI-RLE8,BI-RLE4 WORD biSizeImage; 說(shuō)明位圖的大小,以字節(jié)為單位,如果位圖為BI- RGB 格式,那么該成員置為 0 才有效 LONG biXPelsPerMeter;說(shuō)明位圖的目標(biāo)設(shè)備的水平分辨率 LONG biYPelsPerMeter; 說(shuō)明位圖的目標(biāo)設(shè)備的垂直分辨率 DWORD biClrUsed; 說(shuō)明實(shí)際使用的顏色表中的顏色變址數(shù) DWORD biClrImportant; 重要顏

54、色的索引數(shù) 4.3 位圖數(shù)據(jù)的讀取與顯示 在文獻(xiàn) Error! Reference source not found.中的相關(guān)術(shù)語(yǔ):在圖像處理中, 可能會(huì)經(jīng)常遇到一些專業(yè)詞匯。為了方便交流,先來(lái)了解一下術(shù)語(yǔ)。 1.像素:數(shù)字化圖像是對(duì)物理圖像進(jìn)行采樣,把物理圖像劃分為若干個(gè)采樣 方格,這些小的采樣方格就是像素。我們通常所說(shuō)的屏幕分辨率為,也就是說(shuō)屏 幕上每行有 1024 個(gè)像素,共有 768 行。 2. RGB 色彩系統(tǒng) : 自然界中的所有顏色都可以由紅綠藍(lán) (Red, Green, Blue) 3 原色組成。以 R 分量為例,可以人為地把它分成0 到 255 共 256 個(gè)等級(jí)。其 中,0

55、表示不含有紅色分量,而 255 表示含有 100%的紅色分量。對(duì)于 G 分量 和 B 分量,可以按照同樣的方式進(jìn)行劃分。這樣,根據(jù)R, G, B 分量不同的組 合,就可以表示出 256 x 256 x 256(約 1600 萬(wàn))種顏色。 3.調(diào)色板:一個(gè)字節(jié) (Byte)有 8 位(bit ),可以表示 2 的 8 次方共 256 個(gè)數(shù)。 那么,如果每一個(gè)像素都要用RGB 分量來(lái)表示,則每一個(gè)像素需要3 個(gè)字節(jié)。 這將會(huì)使圖像文件變得非常大。由于RGB 分量可以表示 1600 萬(wàn)種顏色,而實(shí) 際中的圖像并非都用到這么多的顏色,比如二值圖像、16 色圖像和 256 色圖 像等。這時(shí),可以使用一種

56、叫做顏色表的方法來(lái)達(dá)到壓縮數(shù)據(jù)量的目的。以一幅 大小為 256 x 256 的 256 色圖像為例。如果按照 RGB 分量各用一個(gè)字節(jié)的方式 來(lái)存儲(chǔ),那么該圖像需要占據(jù)256 x 256 x 3 個(gè)字節(jié)的空 1J。但是該圖像只有 256 色,我們可以建立一張 RG 盡的顏色表,表中的每一行對(duì)應(yīng)圖像中的一種顏 色,如圖 4-1 所示。 圖 1 調(diào)色板示意圖 本文使用 BMP 格式的位圖圖像文件作為輸入圖像數(shù)據(jù),主要用到三個(gè)函 數(shù) OnFileOpen、OpenBMP、OnDraw。 程序的第一部分,首先通過(guò) VC+ MFC 向?qū)Ы⒁粋€(gè)單文檔的工程。向 文檔類中添加成員函數(shù)和成員變量。定義編寫成

57、員函數(shù) (BMP 文件打開函數(shù) OpenBMP),使用的是 CFile 類的 CFile()函數(shù)。重新定義文件下拉菜單中的打 開項(xiàng),使它與 BMP 文件打開函數(shù)對(duì)應(yīng)上。再次修改 OnDraw 函數(shù),實(shí)現(xiàn)打 開后的 BMP 圖像文件的顯示功能,在這里通過(guò) SetPixel 函數(shù)把讀到內(nèi)存中 的圖像數(shù)據(jù)顯示在屏幕上,由于 BMP 圖像數(shù)據(jù)是從下向上排列的,所以顯示 要從最低行開始的。 I.I. 圖像的讀取圖像的讀取Error! Error! ReferenceReference sourcesource notnot found.found. 在位圖的處理中,需要讀取位圖的長(zhǎng)度、寬度及象素的信息。

58、在Visual C+6.0 的所有類庫(kù)中沒有對(duì)這種位圖的讀取函數(shù)。本文針對(duì)該問(wèn)題設(shè)計(jì)了讀取位圖的函數(shù) OpenBMP(),該函數(shù)可根據(jù)讀者的需要加入任何類中。 在類的頭文件中,需要聲明在整個(gè)類中用到的變量及數(shù)組。 BITMAP * pBmp;/存放 BMP 像素信息的動(dòng)態(tài)數(shù)組 unsigned char * m_pImageData /顯示 BMP 的動(dòng)態(tài)數(shù)組 long m_Width,m_Height /圖象 BMP 的寬度、高度 II. 圖圖像像的的顯顯示示 Win32 SDK和MFC封裝的函數(shù)還不能滿足對(duì)于圖像顯示的需要。因此,需要 自己編寫一些圖像顯示用到的函數(shù),正所謂“自己動(dòng)手,豐衣

59、足食 ”。 視圖類的 OnDraw函數(shù): OnDraw函數(shù)是負(fù)責(zé)顯示的,一般的繪圖過(guò)程都放在OnDraw函數(shù)中,工程創(chuàng) 建時(shí)會(huì)自動(dòng)生成該函數(shù)。要修改視圖類的 OnDraw函數(shù)來(lái)顯示圖像,來(lái)實(shí)現(xiàn)圖像 的顯示。 5 圖像離散余弦變換 實(shí)現(xiàn) 問(wèn)題的提出: Fourier 變換的一個(gè)最大的問(wèn)題是:它的參數(shù)都是復(fù)數(shù),在數(shù)據(jù)的描述上相當(dāng) 于實(shí)數(shù)的兩倍。 為此,我們希望有一種能夠達(dá)到相同功能但數(shù)據(jù)量又不大的變換。在此期望 下,產(chǎn)生了 DCT 變換。 5.1 AAN 方法介紹 AANError! Reference source not found.算法是 Y.Arai , T.Agui, and M.Nak

60、ajima 于 1988 年提出的一種快速算法,它也是將二維DCT 分解成行列的一維變換,一 維 N 點(diǎn)的 DCT 變換通過(guò) 2N 點(diǎn)離散傅立葉變換( DFT)來(lái)實(shí)現(xiàn),而 2N 點(diǎn) DFT 又可以通過(guò)快速傅立葉變換( FFT)實(shí)現(xiàn)。一維 8 點(diǎn)的算法流程圖見圖 3- 3 所示。 s0 s4 s2 s6 s5 s1 s7 s3 a1 a2 a3 a4 a5 X0 X1 X2 X3 X4 X5 x6 x7 y0 y4 y2 y6 y5 y1 y7 y3 圖 6-1 一維 8 點(diǎn) AAN 算法流程圖 從一維 AAN 變換的算法流程圖可以看出,其一維8 點(diǎn)變換只需 11 次乘 法和 29 次加法,如果

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論