畢業(yè)論文---圖像特效輸出的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩56頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要</b></p><p>  隨著計(jì)算機(jī)電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)字圖像處理進(jìn)入高速發(fā)展時(shí)期。由于某些特殊原因,一些圖像的效果不能夠達(dá)到人們的要求,因此需要對(duì)圖像做一些再加工,即利用計(jì)算機(jī)進(jìn)行特殊的處理,稱(chēng)為圖像特效處理。隨著對(duì)數(shù)字圖像處理研究的深入,圖像特效處理的應(yīng)用越來(lái)越廣泛,其發(fā)展?fàn)顩r也受到了人們的廣泛關(guān)注。</p><p>

2、;  本文針對(duì)目前圖像特效處理的需求,主要研究幾種基本的數(shù)字圖像處理算法,以達(dá)到人們所期望得到的各種不同的效果。并在基于Windows系統(tǒng)的Visual C++6.0集成開(kāi)發(fā)環(huán)境下,使用VC編碼實(shí)現(xiàn)這些算法。在點(diǎn)運(yùn)算處理中,介紹了灰度直方圖、灰度分布均衡化、灰度化處理、灰度線(xiàn)性變換和二值化處理幾種算法,算法設(shè)計(jì)原理是將輸入像素點(diǎn)的灰度值通過(guò)算法實(shí)現(xiàn)改變其相應(yīng)輸出點(diǎn)的灰度值。在幾何變換中,介紹了圖像的平移、圖像的縮放和圖像的鏡像變換幾種算

3、法,這些算法主要是根據(jù)某種矩陣運(yùn)算來(lái)寫(xiě)的,有其固定的數(shù)學(xué)計(jì)算方法。在圖像的增強(qiáng)中,介紹了圖形的平滑和圖像的銳化算法,其算法的設(shè)計(jì)原理是根據(jù)一個(gè)固定小區(qū)域的幾個(gè)像素灰度值設(shè)置某個(gè)像素的灰度值,通常有其固定模板。在圖像特效處理中,介紹了圖像反色、圖像曝光、浮雕處理、霓虹處理和馬賽克幾種算法,這些算法主要是針對(duì)真彩色圖像,通過(guò)固定的公式計(jì)算改變其像素的R、G、B的分量值,從而改變像素的顏色,達(dá)到不同的顏色變換效果。</p>&l

4、t;p>  本文具體給出了這些算法的設(shè)計(jì)思想及算法描述,并通過(guò)程序?qū)崿F(xiàn)。最后將其效果圖與原始圖像進(jìn)行了比較。</p><p>  關(guān)鍵詞 數(shù)字圖像處理;圖像算法;圖像特效處理;Visual C++6.0</p><p><b>  Abstract</b></p><p>  With the development of the com

5、puter electronics and computer technology, digital image processing into the high-speed development period. For some special reasons, the effect of a number of images can not be met, and thus the need for images to do so

6、me further processing, namely the use of special computer processing, known as image processing effects. With the digital image processing to study in depth, image effects processing of the application of more and more w

7、idely, and its development ha</p><p>  In this paper, the image effects to deal with the current demand for basic research in several digital image processing algorithms in order to achieve what people expec

8、t different results. Processing of the points on the histogram, a balanced distribution of gray, gray-scale processing, gray-linear transformation and binarization processing of several algorithms. Algorithm design princ

9、iple is to enter the gray value of pixels through the algorithm to change its output points corresponding gray v</p><p>  Enhancement of the image on the smooth graphics and image sharpening algorithm. The d

10、esign principle of the algorithm is based on a fixed number of small regions of a pixel value of gray-scale pixel value, usually a fixed template. Effects in image processing, introduced the anti-color images, image expo

11、sure, relief treatment, processing and mosaic neon several algorithms, These algorithms are mainly for the true color images, through a fixed formula to change its pixel R, G, B sub-value, thus c</p><p>  In

12、 this paper, given the specific design of these algorithms and the algorithm description, and program. Finally, the effect of map and image are compared.</p><p>  Keywords Digital Image Processing;Image Alg

13、orithm;Image effects processing;Visual C++6.0</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p><b>  第1章 緒論1</b>

14、;</p><p>  1.1 課題背景1</p><p>  1.2 發(fā)展?fàn)顩r1</p><p>  1.3 課題的目的和意義2</p><p>  1.4 論文結(jié)構(gòu)3</p><p>  第2章 編程環(huán)境和編程工具4</p><p>  2.1 Visual C++6.0簡(jiǎn)介

15、4</p><p>  2.2 Win32基本編程概念5</p><p>  2.3 Visual C++6.0的MFC庫(kù)和程序框架5</p><p>  2.4 本章小結(jié)7</p><p>  第3章 數(shù)字圖像處理算法設(shè)計(jì)原理8</p><p>  3.1 數(shù)字圖像處理基礎(chǔ)8</p><

16、;p>  3.1.1數(shù)字圖像處理概述8</p><p>  3.1.2 圖像類(lèi)型9</p><p>  3.1.3 圖像格式9</p><p>  3.2 圖像點(diǎn)運(yùn)算處理12</p><p>  3.2.1點(diǎn)運(yùn)算基本概念12</p><p>  3.2.2灰度直方圖12</p><

17、p>  3.2.3灰度分布均衡化14</p><p>  3.2.4灰度化處理14</p><p>  3.2.5灰度線(xiàn)性變換16</p><p>  3.2.6二值化處理17</p><p>  3.3 圖像的幾何變換18</p><p>  3.3.1圖像的平移18</p><

18、p>  3.3.2圖像的鏡像變換19</p><p>  3.3.3圖像的縮放20</p><p>  3.4 圖像的增強(qiáng)21</p><p>  3.4.1圖像的平滑21</p><p>  3.4.2圖像的銳化22</p><p>  3.5 圖像特效處理23</p><p&g

19、t;  3.5.1圖像反色23</p><p>  3.5.2圖像曝光23</p><p>  3.5.3浮雕處理24</p><p>  3.5.4霓虹處理25</p><p>  3.5.5馬賽克25</p><p>  3.5 本章小結(jié)26</p><p>  第4章 程序的測(cè)

20、試與實(shí)現(xiàn)27</p><p>  4.1 待處理圖像的表示和存儲(chǔ)27</p><p>  4.1.1待處理圖像的表示27</p><p>  4.1.2圖像的存儲(chǔ)28</p><p>  4.2 圖像點(diǎn)運(yùn)算處理29</p><p>  4.2.1灰度直方圖29</p><p>  4

21、.2.2分布均衡化圖像30</p><p>  4.2.3灰度化圖像31</p><p>  4.2.4灰度線(xiàn)性變換圖像32</p><p>  4.2.5二值化圖像33</p><p>  4.3 圖像的幾何變換36</p><p>  4.3.1平移圖像36</p><p>  

22、4.3.2縮放圖像37</p><p>  4.3.3水平鏡像圖像38</p><p>  4.3.4垂直鏡像圖像39</p><p>  4.4 圖像的增強(qiáng)40</p><p>  4.4.1中值濾波圖像40</p><p>  4.4.2 梯度銳化圖像41</p><p>  4

23、.5 圖像特效處理43</p><p>  4.5.1 反色圖像43</p><p>  4.5.2 曝光圖像43</p><p>  4.5.3 浮雕圖像44</p><p>  4.5.4 霓虹圖像45</p><p>  4.5.5 馬賽克圖像46</p><p>  4.6

24、本章小結(jié)47</p><p><b>  結(jié)論48</b></p><p><b>  參考文獻(xiàn)49</b></p><p><b>  致謝50</b></p><p><b>  附錄1I</b></p><p>&l

25、t;b>  附錄2VIII</b></p><p><b>  附錄3XVI</b></p><p><b>  第1章 緒論</b></p><p><b>  1.1 課題背景</b></p><p>  隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,數(shù)字圖像處理技術(shù)越

26、來(lái)越引起人們的關(guān)注。圖像處理技術(shù)基本可以分成兩大類(lèi):模擬圖像處理(Analog Image Processing)和數(shù)字圖像處理(Digtal Image Processing)。數(shù)字圖像處理是指將圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并利用計(jì)算機(jī)進(jìn)行處理的過(guò)程。其優(yōu)點(diǎn)是處理精度高,處理內(nèi)容豐富,可進(jìn)行復(fù)雜的非線(xiàn)性處理,有靈活的變通能力,一般來(lái)說(shuō)只要改變軟件就可以處理內(nèi)容。</p><p>  數(shù)字圖像處理技術(shù)的發(fā)展涉及信息科學(xué)

27、、計(jì)算機(jī)科學(xué)、數(shù)學(xué)、物理學(xué)以及生物學(xué)等學(xué)科,因此數(shù)理及相關(guān)的邊緣學(xué)科對(duì)圖像處理科學(xué)的發(fā)展有越來(lái)越大的影響。近年來(lái),數(shù)字圖像處理技術(shù)日趨成熟,它廣泛應(yīng)用于空間探測(cè)、遙感、生物醫(yī)學(xué)、人工智能以及工業(yè)檢測(cè)等許多領(lǐng)域,并促使這些學(xué)科產(chǎn)生了新的發(fā)展。</p><p><b>  1.2 發(fā)展?fàn)顩r</b></p><p>  數(shù)字圖像處理技術(shù)是20世紀(jì)60年代隨著計(jì)算機(jī)技術(shù)和VL

28、SY Very Large Scale Integration的發(fā)展而產(chǎn)生、發(fā)展和不斷成熟起來(lái)的一個(gè)新興技術(shù)領(lǐng)域,它在理論上和實(shí)際應(yīng)用中都取得了很大的成就。</p><p>  視覺(jué)是人類(lèi)最重要的感知手段,圖像又是視覺(jué)的基礎(chǔ)。早期圖像處理的目的是改善圖像質(zhì)量,它以人為對(duì)象,以改善人的視覺(jué)效果為目的。圖像處理中輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像。常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等。首次獲得

29、成功應(yīng)用的是美國(guó)噴氣推進(jìn)實(shí)驗(yàn)室(JPL)。他們對(duì)航天探測(cè)器徘徊者7號(hào)在1964年發(fā)回的幾千張?jiān)虑蛘掌M(jìn)行圖像處理,如幾何校正、灰度變換、去除噪聲等,并考慮了太陽(yáng)位置和月球環(huán)境的影響。隨后又對(duì)探測(cè)飛船發(fā)回的近十萬(wàn)張照片進(jìn)行更為復(fù)雜的圖像處理,獲得了月球的地形圖、彩色圖及全景鑲嵌圖,為人類(lèi)登月創(chuàng)舉奠定了基礎(chǔ),也推動(dòng)了數(shù)字圖像處理這門(mén)學(xué)科的誕生。在以后的宇航空間技術(shù)探測(cè)研究中,數(shù)字圖像處理技術(shù)都發(fā)揮了巨大的作用。</p><

30、;p>  數(shù)字圖像處理技術(shù)取得的另一個(gè)巨大成就是在醫(yī)學(xué)上。1972年英國(guó)EMI公司工程師Housfield發(fā)明了用于頭顱診斷的X射線(xiàn)計(jì)算機(jī)斷層攝影裝置,也就是我們通常所說(shuō)的CT(Computer Tomograph)。CT的基本方法是根據(jù)人的頭部截面的投影,經(jīng)計(jì)算機(jī)處理來(lái)重建截面圖像,成為圖像重建。1975年EMI公司又成功研制出全身用的CT裝置,獲得了人體各個(gè)部位鮮明清晰的斷層圖像。1979年,這項(xiàng)無(wú)損傷診斷技術(shù)被授予諾貝爾獎(jiǎng),

31、以表彰它對(duì)人類(lèi)做出的劃時(shí)代貢獻(xiàn)。</p><p>  從20世紀(jì)70年代中期開(kāi)始,隨著計(jì)算機(jī)技術(shù)和人工智能、思維科學(xué)研究的迅速發(fā)展,數(shù)字圖像處理技術(shù)向更高、更深層次發(fā)展。人們已開(kāi)始研究如何用計(jì)算機(jī)系統(tǒng)解釋圖像,類(lèi)似人類(lèi)視覺(jué)系統(tǒng)理解外部世界,這被稱(chēng)為圖像理解或計(jì)算機(jī)視覺(jué)。很多國(guó)家,特別是發(fā)達(dá)國(guó)家投入更多的人力、物力到這項(xiàng)研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的視覺(jué)計(jì)算理論,

32、這個(gè)理論成為計(jì)算機(jī)視覺(jué)領(lǐng)域其后十多年的主導(dǎo)思想。</p><p>  20世紀(jì)80年代末期,人們開(kāi)始將其應(yīng)用于地理信息系統(tǒng),研究海圖的自動(dòng)讀入、自動(dòng)生成方法。數(shù)字圖像處理技術(shù)的應(yīng)用領(lǐng)域不斷拓展。</p><p>  數(shù)字圖像處理技術(shù)的大發(fā)展是從20世紀(jì)90年代初開(kāi)始的。自1986年以來(lái),小波理論與變換方法迅速發(fā)展,它克服了傅立葉分析不能用于局部分析等方面的不足之處,被認(rèn)為是調(diào)和分析半個(gè)世紀(jì)

33、以來(lái)工作之結(jié)晶。Mallat在1988年有效地將小波分析應(yīng)用于圖像分解和重構(gòu)。小波分析被認(rèn)為是信號(hào)與圖像分析在數(shù)學(xué)方法上的重大突破。隨后數(shù)字圖像處理技術(shù)迅猛發(fā)展,到目前為止,圖像處理在圖像通訊、辦公自動(dòng)化系統(tǒng)、地理信息系統(tǒng)、醫(yī)療設(shè)備、衛(wèi)星照片傳輸及分析和工業(yè)自動(dòng)化領(lǐng)域的應(yīng)用越來(lái)越多。</p><p>  進(jìn)入21世紀(jì),隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展和相關(guān)理論的不斷完善,數(shù)字圖像處理技術(shù)在許多應(yīng)用領(lǐng)域受到廣泛重視并取得了

34、重大的開(kāi)拓性成就。該技術(shù)成為一門(mén)引人注目、前景遠(yuǎn)大的新型學(xué)科。</p><p>  1.3 課題的目的和意義</p><p>  目前,數(shù)字圖像處理技術(shù)已經(jīng)滲透到社會(huì)生活的各個(gè)領(lǐng)域,如地理信息系統(tǒng)中二維、三維電子地圖的自動(dòng)生成、修復(fù)等;教育領(lǐng)域各種輔助教學(xué)系統(tǒng)研究、制作中;流媒體技術(shù)領(lǐng)域等等。數(shù)字圖像處理技術(shù)在航空航天、工業(yè)生產(chǎn)、醫(yī)療診斷、資源環(huán)境、氣象及交通監(jiān)測(cè)、文化教育等領(lǐng)域的廣泛的應(yīng)

35、用,創(chuàng)造了巨額的社會(huì)價(jià)值;但是還遠(yuǎn)遠(yuǎn)不能滿(mǎn)足社會(huì)需求,自身也在不斷完善和發(fā)展,有很多新的方面要探索。它必將向更深入、更完善的方向發(fā)展:處理算法更優(yōu)化,處理速度更快,實(shí)現(xiàn)圖形的智能生成、處理、識(shí)別和理解。</p><p>  為適應(yīng)社會(huì)的需求及發(fā)展,數(shù)字圖像處理技術(shù)必將得到更廣泛的發(fā)展。本文所做的圖像點(diǎn)運(yùn)算處理,圖像的幾何變換和圖像的增強(qiáng)算法都是數(shù)字圖像特效處理的最基礎(chǔ)算法,以及一些常用的特技處理算法,旨在了解并學(xué)

36、習(xí)數(shù)字圖像處理技術(shù)。</p><p><b>  1.4 論文結(jié)構(gòu)</b></p><p>  論文共分為四章,內(nèi)容包括:緒論、編程環(huán)境和編程工具、數(shù)字圖像處理算法設(shè)計(jì)原理、程序的測(cè)試與實(shí)現(xiàn)。</p><p>  第1章為緒論。介紹了所研究題目的課題背景及其發(fā)展?fàn)顩r,并介紹了研究課題的目的和意義。</p><p>  

37、第2章為編程環(huán)境和編程工具。介紹了本文中程序設(shè)計(jì)所用的Visual C++6.0集成開(kāi)發(fā)環(huán)境,基于的操作系統(tǒng)Win32的一些基本概念以及封裝了Windows消息的MFC類(lèi)庫(kù)。</p><p>  第3章為數(shù)字圖像處理算法設(shè)計(jì)原理。介紹了數(shù)字圖像處理的一些基本概念,并具體介紹了一些常用的圖像處理算法的基本思想及其實(shí)現(xiàn)方法。</p><p>  第4章為程序的測(cè)試與實(shí)現(xiàn)。介紹了第3章中所寫(xiě)算法

38、的實(shí)現(xiàn)結(jié)果,并針對(duì)其所用算法的主要步驟進(jìn)行了簡(jiǎn)單介紹。</p><p>  第2章 編程環(huán)境和編程工具</p><p>  2.1 Visual C++6.0簡(jiǎn)介</p><p>  Visual C++是Microsoft公司推出的一種高度綜合性能的開(kāi)發(fā)環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。用它開(kāi)發(fā)的程序具有運(yùn)行速度快、可移植能力強(qiáng)等特點(diǎn)。由于Visual C

39、++本身就是一個(gè)圖形的開(kāi)發(fā)界面,它提供了豐富的關(guān)于位圖操作的函數(shù),對(duì)開(kāi)發(fā)圖像處理系統(tǒng)提供了極大的方便。因此,它已經(jīng)成為開(kāi)發(fā)Win32程序、包括圖形圖像處理程序的主要開(kāi)發(fā)工具。C++作為一種面向?qū)ο蟮恼Z(yǔ)言,具有最好的運(yùn)行效率,它有多個(gè)產(chǎn)品,但是Visual C++作為一個(gè)功能強(qiáng)大的可視化應(yīng)用程序開(kāi)發(fā)工具,是計(jì)算機(jī)界公認(rèn)的最優(yōu)秀的應(yīng)用開(kāi)發(fā)工具之一,受到軟件開(kāi)發(fā)人員的青睞,包括Microsoft在內(nèi)的許多軟件公司都把Visual C++作為自

40、己產(chǎn)品的開(kāi)發(fā)平臺(tái)。Visual C++不僅支持傳統(tǒng)的軟件開(kāi)發(fā)方法,更重要的是它能支持面向?qū)ο?,可視化的開(kāi)發(fā)風(fēng)格。</p><p>  Visual C++具有以下優(yōu)點(diǎn):提供了面向?qū)ο蟮膽?yīng)用程序框架MFC(Microsoft Foundation Class),簡(jiǎn)化了程序員的編程工作,提高了模塊的可重用性;提供了基于CASE技術(shù)的可視化軟件自動(dòng)生成和維護(hù)工具AppWizard、Visual Studio、WzarB

41、ar等,實(shí)現(xiàn)了直觀(guān)、可視的程序設(shè)計(jì)風(fēng)格,方便地編寫(xiě)和管理各種類(lèi),維護(hù)程序代碼,已成為工業(yè)化標(biāo)準(zhǔn)的MFC類(lèi)庫(kù)得到了開(kāi)發(fā)商和軟件開(kāi)發(fā)工具的支持;封裝了Windows的API函數(shù)、USER、KERNEL、GDI函數(shù)類(lèi),簡(jiǎn)化了編程的創(chuàng)建、維護(hù)窗口的許多復(fù)雜的工作??傊?,Visual C++是開(kāi)發(fā)運(yùn)行于Widows NT環(huán)境下的Win32應(yīng)用程序的可視化編程工具中最重要的成員之一,為軟件開(kāi)發(fā)人員提供了完整的編輯編譯和調(diào)試工具。它是建立在全面封裝W

42、in32 API(Application Programming Interface)的MFC類(lèi)庫(kù)(Microsoft Foundation Class Library)的基礎(chǔ)上,從而很關(guān)鍵地縮短了Windows 的應(yīng)用程序開(kāi)發(fā)周期。Windows操作系統(tǒng)本身大部分是用C或C+</p><p>  2.2 Win32基本編程概念</p><p>  Windows程序分為“程序代碼”和“U

43、I(User Interface用戶(hù)接口)資源”兩大部分,最后以RC編譯器整合為一個(gè)完整的EXE文檔。所謂UI資源是指功能菜單、對(duì)話(huà)框外貌、程序圖標(biāo)、光標(biāo)形狀等等東西。這些UI資源的實(shí)際內(nèi)容(二進(jìn)制代碼)是借助各種工具產(chǎn)生,并以各種擴(kuò)展名的形式存在,如.ico、.bmp、.cur等等。程序員必須在一個(gè)所謂的描述文檔(.rc)中描述它們。RC編譯器(RC.EXE)讀取RC文件的描述后將所有UI資源文件集中制作出一個(gè).RES文件,再與程序代

44、碼結(jié)合在一起,這才是一個(gè)完整的Windows可執(zhí)行文件。眾所周知,Windows支持動(dòng)態(tài)鏈接。換句話(huà)說(shuō),應(yīng)用程序所調(diào)用的Windows API函數(shù)是在“執(zhí)行時(shí)期”才連接上的。并不是擴(kuò)展名為.dll者才是動(dòng)態(tài)鏈接函數(shù)庫(kù),事實(shí)上.exe、.dll、.fcn、.mod、.drv、.ocx都是所謂的動(dòng)態(tài)鏈接函數(shù)庫(kù)。Windows程序所調(diào)用的函數(shù)可分為C Runtimes以及Windows API兩大部分。所有Windows程序都必須載入Wind

45、ows.h。早期這是一個(gè)巨大的頭文件,大約有500行左右,Visual C++4</p><p>  如果對(duì)應(yīng)用程序獲得各種“輸入”進(jìn)行分類(lèi),可以分為由硬件裝置所產(chǎn)生的輸入(如鼠標(biāo)移動(dòng)或鍵盤(pán)被按下),放在系統(tǒng)隊(duì)列中,以及有Windows系統(tǒng)或其它Windows程序傳送過(guò)來(lái)的消息,放在程序隊(duì)列中。以應(yīng)用程序的眼光來(lái)看,消息就是消息,來(lái)自哪里或放在哪里其實(shí)并沒(méi)有太大區(qū)別,反正程序調(diào)用GetMessage API就取得

46、一個(gè)消息,程序的生命靠它來(lái)推動(dòng)。所有的GUI系統(tǒng),包括UNIX的X Window以及OS/2的Presentation Manager,都像這樣,是以消息為基礎(chǔ)的事件驅(qū)動(dòng)程序。</p><p>  2.3 Visual C++6.0的MFC庫(kù)和程序框架</p><p>  MFC庫(kù)是Microsoft Windows API。如果您同意C++語(yǔ)言是當(dāng)今重要的應(yīng)用程序開(kāi)發(fā)工具的標(biāo)準(zhǔn)的話(huà),您一

47、定會(huì)說(shuō)對(duì)于Windows有C++的編程接口是應(yīng)該的事。Microsoft的接口就是MFC庫(kù)。</p><p>  應(yīng)用程序框架所產(chǎn)生的應(yīng)用程序使用了標(biāo)準(zhǔn)化的結(jié)構(gòu)。任何程序員在考慮大的項(xiàng)目時(shí),都會(huì)首先設(shè)計(jì)自己的程序結(jié)構(gòu),問(wèn)題在于不同的程序員所設(shè)計(jì)的程序是截然不同的,因此對(duì)于該項(xiàng)目的新增成員來(lái)說(shuō),想要學(xué)習(xí)和掌握它的結(jié)構(gòu)就比較困難了。MFC庫(kù)應(yīng)用程序框架則采用了自己的應(yīng)用程序結(jié)構(gòu),并且這種結(jié)構(gòu)在許多軟件環(huán)境及項(xiàng)目中都得

48、到了證實(shí)。因此可以放心地去使用MFC庫(kù)來(lái)進(jìn)行Windows程序設(shè)計(jì)。用不著擔(dān)心MFC庫(kù)的這種結(jié)構(gòu)會(huì)降低程序的靈活性。使用MFC庫(kù)時(shí),在任何時(shí)候都可以調(diào)用Win32函數(shù),因此可以最大限度地使用Windows。</p><p>  應(yīng)用程序所產(chǎn)生的應(yīng)用程序代碼短而且運(yùn)行速度快?;氐揭郧?6位的時(shí)代,可以建立一個(gè)少于20KB的獨(dú)立的EXE文件?,F(xiàn)在,Windows程序變大了,一個(gè)原因是32位代碼本身就大。Win16程序

49、即使在大模式編譯環(huán)境下,使用的也是16位地址的堆棧變量和全局變量,而Win32程序?qū)λ械淖兞亢统A慷际褂?2位地址,而且常常使用32位的整數(shù),因?yàn)?2位整數(shù)比 16位整數(shù)更有效率。另一方面,新的C++異常處理代碼也占用了不少內(nèi)存。</p><p>  以前的20KB的程序沒(méi)有貼邊工具欄、拆分窗口、打印預(yù)覽功能,或者控件包容支持——而用戶(hù)對(duì)現(xiàn)在的程序則非常期望這些功能。MFC程序比原來(lái)更大,因?yàn)樗鼈冏龅母唷⒆龅?/p>

50、更好。幸運(yùn)的是,現(xiàn)在可以很容易地建立動(dòng)態(tài)鏈接到MFC代碼(和C運(yùn)行時(shí)代碼)的程序,所以程序大小又降下來(lái)了——從192KB降到大約20KB。當(dāng)然,程序的運(yùn)行還需要一些大的DLL(Dynamic Linked Library 動(dòng)態(tài)鏈接庫(kù))的支持,好在現(xiàn)在這已經(jīng)習(xí)以為常了。</p><p>  至于速度也是要考慮的,編譯器在產(chǎn)生編譯代碼時(shí)做了優(yōu)化,因而執(zhí)行速度也是很快的,但您可能會(huì)注意到在啟動(dòng)時(shí)裝入相應(yīng)的DLL時(shí)有一點(diǎn)

51、遲疑。</p><p>  MFC庫(kù)應(yīng)用程序框架的功能非常豐富,而且,一般的類(lèi)庫(kù)只是一種可以用來(lái)嵌入在任何程序中的孤立的類(lèi)的集合。但應(yīng)用程序框架卻定義了程序的結(jié)構(gòu),這為程序員編程帶來(lái)了極大的方便,只需繼承封裝好的類(lèi)便能實(shí)現(xiàn)強(qiáng)大的功能。</p><p><b>  2.4 本章小結(jié)</b></p><p>  本章先簡(jiǎn)單介紹了本文程序的開(kāi)發(fā)環(huán)境—

52、—基于Windows系統(tǒng)下的Visual C++6.0集成開(kāi)發(fā)環(huán)境,然后介紹了Win32編程的一些基本概念,最后介紹了MFC(微軟基礎(chǔ)類(lèi)庫(kù)),MFC也是Visual C++6.0受到廣大程序設(shè)計(jì)人員喜愛(ài)的重要原因。</p><p>  第3章 數(shù)字圖像處理算法設(shè)計(jì)原理</p><p>  3.1 數(shù)字圖像處理基礎(chǔ)</p><p>  3.1.1數(shù)字圖像處理概述&l

53、t;/p><p>  圖像是以柵格結(jié)構(gòu)存儲(chǔ)畫(huà)面內(nèi)容,柵格結(jié)構(gòu)將一幅圖劃分為均勻分布的柵格,每個(gè)柵格稱(chēng)為像素,顯示地記錄每一像素的光度值(亮度或彩色),所有像素位置按規(guī)則方式排列,像素位置的坐標(biāo)值卻是有規(guī)則地隱含。圖像由數(shù)字陣列信息組成,用以描述圖像中各像素點(diǎn)的強(qiáng)度和顏色,因此圖像適合于表現(xiàn)含有大量細(xì)節(jié)(如明暗變化、場(chǎng)景復(fù)雜和多種顏色等)的畫(huà)面,并可直接、快速地在屏幕上顯示出來(lái)。</p><p>

54、;  一般來(lái)說(shuō),圖像處理包括以下幾個(gè)方面:</p><p>  1.點(diǎn)運(yùn)算:主要是針對(duì)圖像的像素進(jìn)行加、減、乘、除等運(yùn)算。點(diǎn)運(yùn)算可以有效地改變圖像的直方圖分布。</p><p>  2.幾何處理:主要包括圖像的坐標(biāo)轉(zhuǎn)換,例如:平移、縮放、旋轉(zhuǎn)等。幾何處理是最常見(jiàn)的圖像處理手段。</p><p>  3.圖像增強(qiáng):主要是為了突出圖像中的重要信息,同時(shí)減弱或者去除不重要

55、的信息。常用方法有直方圖增強(qiáng)和偽彩色增強(qiáng)等。</p><p>  4.圖像復(fù)原:主要目的是去除干擾和模糊,從而恢復(fù)圖像的本來(lái)面目。例如去噪聲復(fù)原處理。</p><p>  5.圖像形態(tài)學(xué)處理:圖像形態(tài)學(xué)是數(shù)學(xué)形態(tài)學(xué)的延伸,是一門(mén)獨(dú)立的研究學(xué)科。利用圖像形態(tài)學(xué)處理技術(shù),可以實(shí)現(xiàn)圖像的腐蝕、細(xì)化和分割等效果。</p><p>  6.圖像編碼:主要是利用圖像信息的統(tǒng)計(jì)特

56、征和人類(lèi)視覺(jué)系統(tǒng)的特性對(duì)圖像進(jìn)行編碼,以達(dá)到壓縮圖像的目的。</p><p>  7.圖像重建:主要是利用采集的數(shù)據(jù)來(lái)重建出圖像。</p><p>  8.模式識(shí)別:模式識(shí)別也是數(shù)字圖像處理的一個(gè)新興的研究方向,當(dāng)今的模式識(shí)別方法通常有三種:統(tǒng)計(jì)識(shí)別法、句法結(jié)構(gòu)模式識(shí)別法和模糊識(shí)別法。</p><p>  在本文中主要介紹圖像的點(diǎn)運(yùn)算,幾何變換和圖像增強(qiáng)等幾個(gè)方面。

57、</p><p>  3.1.2 圖像類(lèi)型</p><p>  我們知道,任何顏色都由紅,綠,藍(lán)三原色組成。在PC的顯示系統(tǒng)中,顯示的圖像是由一個(gè)個(gè)像素組成的,而每一個(gè)像素的顏色由紅,綠,藍(lán)三原色組合而成。</p><p>  數(shù)字圖像的顏色深度表示每一像素的顏色值所占的二進(jìn)制位數(shù)。顏色深度越大,則能表示的顏色數(shù)目越多,顏色深度不同就產(chǎn)生不同類(lèi)的圖像文件,在計(jì)算機(jī)中

58、常常使用如下類(lèi)型的圖像文件。</p><p><b>  1.單色圖像</b></p><p>  單色圖像每個(gè)像素點(diǎn)僅占一位,其值只有0或1,因?yàn)閳D像中的每個(gè)像素需1位信息,常把單色圖像稱(chēng)為一位圖像。單色圖像具有比較簡(jiǎn)單的格式,一般由黑色區(qū)域和白色區(qū)域組成。</p><p><b>  2.灰度圖像</b></p&

59、gt;<p>  灰度圖像的存儲(chǔ)文件帶有圖像顏色表,此顏色表共有256項(xiàng),圖像顏色表每一表項(xiàng)有紅,綠,藍(lán)顏色分量組成,并且紅,綠,藍(lán)顏色分量值都相等。</p><p><b>  3.偽彩色圖像</b></p><p>  偽彩色圖像與灰度圖像相似,存儲(chǔ)文件也帶有圖像顏色表,只是顏色中的紅,綠,藍(lán)顏色分量不全相等。</p><p>

60、;  4.24位真彩色圖像</p><p>  具有全彩色照片表達(dá)能力的圖像為24位真彩色圖像,24位真彩色圖像存儲(chǔ)文件中不帶有圖像顏色表,圖像中每一像素由R、G、B三分量組成,每個(gè)分量各占8位,每個(gè)像素需24位。</p><p>  3.1.3 圖像格式</p><p>  在圖像處理中,比較常見(jiàn)的圖像格式有BMP、JPG和TIFF等,下面對(duì)這幾類(lèi)圖像進(jìn)行簡(jiǎn)要介紹

61、。此外,還有PNG、PCX和GIF等格式。</p><p><b>  1.BMP圖像</b></p><p>  BMP格式的圖像在Windows系統(tǒng)中比較常見(jiàn),幾乎所有的Windows上的應(yīng)用軟件都支持這種圖像文件。Windows有兩種位圖,一種是DDB(Device Dependent Bitmap)—設(shè)備相關(guān)位圖,一種是DIB(Device Independe

62、nt Bitmap)—設(shè)備無(wú)關(guān)位圖。由于DIB位圖包含調(diào)色板信息,并且可以在不同的機(jī)器或者系統(tǒng)中顯示位圖所固有的圖像,因此主要研究DIB位圖。DIB位圖存儲(chǔ)時(shí)通常以BMP為后綴。</p><p>  BMP格式的圖像包含了一個(gè)DIB,DIB是標(biāo)準(zhǔn)的Windows位圖格式。BMP位圖一般分為四個(gè)部分:文件頭、信息頭、調(diào)色板和圖像數(shù)據(jù)。值得注意的是,有些BMP圖像,例如24色(真彩色)圖像不需要調(diào)色板,這種圖像的信息

63、頭之后緊跟著的就是圖像數(shù)據(jù)。BMP圖像的文件結(jié)構(gòu)如圖3-1所示。</p><p>  圖3-1 BMP文件結(jié)構(gòu)示意圖</p><p>  第一部分為位圖文件頭BITMAPFILEHEADER,它是一個(gè)結(jié)構(gòu),其定義如下:</p><p>  typedef struct tagBITMAPFILEHEADER</p><p><b>

64、;  {</b></p><p>  WORD bfType;//位圖文件的類(lèi)型,必須為BMP</p><p>  DWORD bfSize;//位圖文件的大小,以字節(jié)為單位</p><p>  WORD bfReserved1;//位圖文件保留字,不用考慮</p><p>  WORD bfReserved

65、2; //位圖文件保留字,不用考慮</p><p>  DWORD bfOffBits;//從文件頭到實(shí)際的位圖數(shù)據(jù)的偏移字節(jié)數(shù)</p><p>  }BITMAPFILEHEADER,FAR*LPBITMAPFILEHEADER,</p><p>  *PBITMAPFILEHEADER;</p><p>  第二部分為位圖信息頭BIT

66、MAPINFOHEADER,它也是一個(gè)結(jié)構(gòu),其定義如下:</p><p>  typedef struct tagBITMAPINFOHEADER</p><p><b>  {</b></p><p>  DWORD biSize;//本結(jié)構(gòu)所占用字節(jié)數(shù)</p><p>  LONGbiWidth;//位圖的寬

67、度,以像素為單位</p><p>  LONGbiHeight;//位圖的高度,以像素為單位</p><p>  WORDbiPlanes;//必須為1</p><p>  WORDbiBitCount;//每個(gè)像素所需要的位數(shù)</p><p>  DWORD biCompression;//位圖壓縮類(lèi)型</p>

68、<p>  DWORD biSizeImage;//位圖大小,字節(jié)為單位</p><p>  LONG biXPelsPerMeter;//位圖水平分辨率,每米像素?cái)?shù)</p><p>  LONG biYPelsPerMeter;// 位圖垂直分辨率,每米像素?cái)?shù)</p><p>  DWORD biClrUsed;//位圖實(shí)際使用

69、顏色表中的顏色數(shù)</p><p>  DWORD biClrImportant;//位圖顯示過(guò)程中重要的顏色數(shù)</p><p>  }BITMAPINFOHEADER,FAR *LPBITMAPFILEHEADER,*PBITMAPINFOHEADER;</p><p>  第三部分為調(diào)色板(Palette)。有些位圖需要調(diào)色板,有些位圖,如真彩色圖,不需要

70、調(diào)色板,它們的BITMAPINFOHEADER后面直接是位圖數(shù)據(jù)。</p><p>  調(diào)色板實(shí)際上是一個(gè)數(shù)組,其實(shí)就是一張RGB表,用以說(shuō)明位圖中的顏色,它有若干個(gè)表項(xiàng),每一個(gè)表項(xiàng)是一個(gè)RGBQUAD類(lèi)型的結(jié)構(gòu),定義一種顏色。RGBQUAD結(jié)構(gòu)的定義如下:</p><p>  typedef struct tagRGBQUAD</p><p><b> 

71、 {</b></p><p>  BYTErgbBlue;//該顏色的藍(lán)色分量</p><p>  BYTErgbGreen;//該顏色的綠色分量</p><p>  BYTErgbRed;//該顏色的紅色分量</p><p>  BYTErgbReserved;//保留值</p>

72、<p>  }RGBQUAD;</p><p>  第四部分就是實(shí)際的圖像數(shù)據(jù)。對(duì)于用到調(diào)色板的位圖,圖像數(shù)據(jù)就是該像素顏在調(diào)色板中的索引值,對(duì)于真彩色圖,圖像數(shù)據(jù)就是實(shí)際的R、G、B值。下面就2色,16色,256色位圖和真彩色位圖分別介紹。</p><p>  對(duì)于2色位圖,用1位就可以表示該像素的顏色(一般0表示黑,1表示白),所以一個(gè)字節(jié)可以表示8個(gè)像素。</p&

73、gt;<p>  對(duì)于16色位圖,用4位可以表示一個(gè)像素的顏色,所以一個(gè)字節(jié)可以表示2個(gè)像素。</p><p>  對(duì)于256色位圖,一個(gè)字節(jié)剛好可以表示1個(gè)像素。</p><p>  對(duì)于真彩色圖,三個(gè)字節(jié)才能表示1個(gè)像素。</p><p><b>  2.JPEG圖像</b></p><p>  JPE

74、G (Joint Photographic Experts Group) 是由國(guó)際標(biāo)準(zhǔn)組織 (ISO) 和國(guó)際電報(bào)電話(huà)咨詢(xún)委員會(huì)為靜態(tài)圖像所建立的第一個(gè)數(shù)字圖像壓縮標(biāo)準(zhǔn)。JPEG壓縮的效果比較好,能達(dá)到較高的壓縮比。通過(guò)JPEG壓縮后的圖像信息可能有所丟失,但這是在人眼允許的范圍內(nèi)的。鑒于JPEG良好的壓縮性能,JPEG格式的圖像在網(wǎng)絡(luò)上非常流行。</p><p><b>  3.TIFF圖像</

75、b></p><p>  TIFF (Tag Image File Format) 圖像可以在一個(gè)圖像文件中存儲(chǔ)多幅圖像,除了文件頭之外,TIFF圖像中的數(shù)據(jù)沒(méi)有固定順序。TIFF圖像的格式比較復(fù)雜,但是主要由文件頭標(biāo)志信息和圖像數(shù)據(jù)組成。另外,在TIFF文件中還可以定義個(gè)人的標(biāo)志信息。</p><p>  在本文中,為了使其更具有基礎(chǔ)性及廣泛應(yīng)用性,均使用以24位BMP格式的圖像進(jìn)

76、行研究。</p><p>  3.2 圖像點(diǎn)運(yùn)算處理</p><p>  3.2.1點(diǎn)運(yùn)算基本概念</p><p>  點(diǎn)運(yùn)算定義:點(diǎn)運(yùn)算(Point Operation)是一種既簡(jiǎn)單又重要的技術(shù),它能讓用戶(hù)改變圖像數(shù)據(jù)占據(jù)的灰度范圍。一幅輸入圖像經(jīng)過(guò)點(diǎn)運(yùn)算后將產(chǎn)生一幅新的輸出圖像,由輸入像素點(diǎn)的灰度值決定相應(yīng)輸出像素點(diǎn)的灰度值。</p><p&

77、gt;  3.2.2灰度直方圖</p><p>  灰度直方圖是灰度值的函數(shù),描述的是圖形中具有該灰度值的像素的個(gè)數(shù),其橫坐標(biāo)表示像素的灰度級(jí)別,縱坐標(biāo)是該灰度出現(xiàn)的頻率(像素的個(gè)數(shù))。直方圖能反映出圖像的灰度范圍、每個(gè)灰度級(jí)的頻數(shù)、灰度分布情況、整幅圖像的亮度等,它是對(duì)圖像進(jìn)行處理的重要依據(jù)。</p><p>  灰度直方圖的另一種定義:假設(shè)有一幅由函數(shù)D(x,y)所定義的連續(xù)圖像,它平

78、滑地從中心的高灰度級(jí)變化到邊沿的低灰度級(jí)。我們可以選擇某一灰度級(jí)D1,然后定義一條輪廓線(xiàn),該輪廓線(xiàn)連接了圖像上所有具有灰度級(jí)D1的點(diǎn)。所得到的輪廓線(xiàn)形成了包圍灰度級(jí)大于等于D1的區(qū)域的封閉曲線(xiàn)。將一幅連續(xù)圖像中被具有灰度級(jí)D的所有輪廓線(xiàn)所包圍的面積稱(chēng)為該圖像的閾值面積函數(shù)A(D)。直方圖計(jì)算公式可定義為式3-1。</p><p><b>  (式3-1)</b></p><

79、;p>  式中,D表示灰度級(jí);H(D)表示圖像的直方圖;A(D)表示閾值面積函數(shù)</p><p>  由式3-1可以得出結(jié)論:一幅連續(xù)圖像的直方圖是其面積函數(shù)的導(dǎo)數(shù)的負(fù)值。負(fù)號(hào)的出現(xiàn)是由于隨著D的增加A(D)在減小。如果將圖像看成是一個(gè)二維的隨機(jī)變量,則面積函數(shù)相當(dāng)于其累積分布函數(shù),而灰度直方圖相當(dāng)于其概率密度函數(shù)。</p><p>  對(duì)于離散函數(shù),我們固定D為1,則式3-1變?yōu)槭?/p>

80、3-2。</p><p><b>  (式3-2)</b></p><p>  在本文中,主要研究24位真彩色位圖的灰度直方圖的設(shè)計(jì)算法。由于真彩色圖像的亮度值由紅、綠、藍(lán)三個(gè)分量共同決定,因此,讀取彩色圖像的亮度實(shí)際上是讀取其中每個(gè)像素的R、G、B值。首先要分別對(duì)各像素的R、G、B值分別進(jìn)行灰度轉(zhuǎn)換,然后根據(jù)公式3-3進(jìn)行計(jì)算。</p><p&g

81、t;<b>  (式3-3)</b></p><p>  式中,Y表示某像素的灰度值,R表示某像素的紅色分量,G表示某像素的綠色分量,B表示某像素的藍(lán)色分量</p><p>  計(jì)算此像素的灰度值,并將此灰度值的計(jì)數(shù)器加1。</p><p>  例如:假設(shè)某一像素的R、G、B值分別為45、100、200,則根據(jù)公式計(jì)算出此像素的灰度值為Y=94

82、。將圖像的每個(gè)像素值都計(jì)算完之后,根據(jù)算法中式3-4進(jìn)行計(jì)算。</p><p>  P[i] = Y[i]/ (lHeight * lWidth * 1.0f) (式3-4)</p><p>  式中,i表示灰度值;lHeight表示圖像的高度;lWidth表示圖像的寬度;Y[i]表示灰度值為i的像素的個(gè)數(shù);P[i]表示灰度值為i的像素個(gè)數(shù)所占總像素個(gè)數(shù)的比率</

83、p><p>  計(jì)算此灰度值的像素個(gè)數(shù)所占總像素個(gè)數(shù)的比率。當(dāng)把灰度值從0到255之間的所有像素個(gè)數(shù)比率計(jì)算出來(lái)之后,就形成了該圖像的灰度直方圖。</p><p>  下面介紹一下灰度直方圖的幾個(gè)基本性質(zhì):</p><p>  1.表征了圖像的一維信息。只反映圖像中像素不同灰度值出現(xiàn)的次數(shù)(或頻數(shù))而未反映像素所在位置。</p><p>  2.

84、與圖像之間的關(guān)系是多對(duì)一的映射關(guān)系。一幅圖像唯一確定出與之對(duì)應(yīng)的直方圖,但不同圖像可能有相同的直方圖。</p><p>  3.子圖直方圖之和為整圖的直方圖。</p><p>  3.2.3灰度分布均衡化</p><p>  灰度均衡有時(shí)也稱(chēng)直方圖均衡,其基本思想是對(duì)在圖像中像素個(gè)數(shù)多的灰度級(jí)進(jìn)行展寬,而對(duì)像素個(gè)數(shù)少的灰度級(jí)進(jìn)行縮減,從而達(dá)到清晰圖像的目的。通過(guò)點(diǎn)運(yùn)

85、算使輸入圖像轉(zhuǎn)換為在每一灰度級(jí)上都有相同的像素點(diǎn)數(shù)的輸出圖像(即輸出的直方圖是平的)。這對(duì)于在進(jìn)行圖像比較和分割之前將圖像轉(zhuǎn)化為一致的格式是十分有益的。</p><p>  圖像經(jīng)過(guò)分布均衡化之后,圖像直方圖趨于平坦化,且灰度間隔被拉大,從而有利于圖像的分析和識(shí)別。然而,從理論上來(lái)說(shuō),直方圖均衡化就是通過(guò)變換函數(shù)將原圖的直方圖調(diào)整為平坦的直方圖,然后用此均衡直方圖校正圖像。而實(shí)際上直方圖均衡化修正后的圖像直方圖并

86、不是十分均衡的,這是因?yàn)樵诓僮鬟^(guò)程中,原直方圖上頻數(shù)較小的某些灰度級(jí)數(shù)要并入一個(gè)或幾個(gè)灰度級(jí)中。</p><p>  在本文的第四章我們可以看到一幅圖經(jīng)過(guò)灰度均衡化之后的灰度直方圖與原始圖像的灰度直方圖的比較結(jié)果,并據(jù)此了解灰度均衡化的效果。</p><p>  3.2.4灰度化處理</p><p>  顏色可以分為黑白色和彩色,黑白色指顏色中不包含任何的彩色成分,

87、僅由黑色和白色組成。在RGB顏色模型中,如果R=G=B,則顏色(R,G,B)表示一種黑白顏色;其中R=G=B的值叫做灰度值,所以黑白色又叫做灰度顏色。彩色和灰度之間可以相互轉(zhuǎn)化,由彩色轉(zhuǎn)化為灰度的過(guò)程叫做灰度化處理;由灰度轉(zhuǎn)化為彩色的過(guò)程稱(chēng)為偽彩色處理。在本文中,只介紹灰度化處理。</p><p>  灰度化就是使彩色的R,G,B分量值相等的過(guò)程。彩色圖像中的每個(gè)像素的顏色都由R、G、B三個(gè)分量決定,而每個(gè)分量有

88、256種值可取,這樣一個(gè)像素點(diǎn)可以有1600多萬(wàn)(255*255*255)的顏色的變化范圍。而灰度圖像是R、G、B三個(gè)分量相同的一種特殊的彩色圖像,由于R,G,B的取值范圍是0~255,其一個(gè)像素點(diǎn)的變化范圍為0~255,所以灰度的級(jí)別只有256級(jí),即灰度圖像僅能表現(xiàn)256種顏色(灰度)?;叶葓D像的描述與彩色圖像一樣仍然反映了整幅圖像的整體和局部的色度和亮度等級(jí)的分布和特征。</p><p>  灰度化處理的方法

89、主要有如下三種:</p><p>  1.最大值法:使R,G,B的值等于3個(gè)值中最大的一個(gè),即采用公式3-5。</p><p><b>  (式3-5)</b></p><p>  最大值法會(huì)形成亮度很高的灰度圖像。</p><p>  2.平均值法:使R,G,B的值求出平均值,即采用公式3-6。</p>

90、<p><b>  (式3-6)</b></p><p>  平均值法會(huì)形成較柔和的灰度圖像。</p><p>  3.加權(quán)平均值法:根據(jù)重要性或其他指標(biāo)給R,G,B賦予不同的權(quán)值,并使R,G,B的值加權(quán)平均,即采用公式3-7。</p><p><b>  (式3-7)</b></p><p&

91、gt;  式中,WR表示R(即紅色分量)的權(quán)值;WG表示G(即綠色分量)的權(quán)值;WB表示B(即藍(lán)色分量)的權(quán)值</p><p>  當(dāng)WR,,WG,WB取不同的值時(shí),加權(quán)平均值法就將形成不同的灰度圖像。</p><p>  在本文中采用加權(quán)平均值的方法對(duì)24位真彩色位圖進(jìn)行灰度化處理,由于人眼對(duì)綠色的敏感度最高,對(duì)紅色的敏感度次之,對(duì)藍(lán)色的敏感度最低,因此使WG>WR>

92、WB將得到較合理的灰度圖像。實(shí)驗(yàn)和理論推導(dǎo)證明,使用公式3-8。</p><p><b>  (式3-8)</b></p><p>  計(jì)算出灰度值Y,令R=G=B=Y。此時(shí),能得到最合理的灰度圖像。</p><p>  3.2.5灰度線(xiàn)性變換</p><p>  圖像的灰度變換主要是針對(duì)獨(dú)立的像素點(diǎn)進(jìn)行處理,通過(guò)改對(duì)圖

93、像上各個(gè)像素點(diǎn)的灰度值x按某個(gè)函數(shù)T()變換到y(tǒng)。例如為了提高圖像的清晰度需要將圖像的灰度級(jí)整個(gè)范圍或其中某一段(AB)擴(kuò)展或壓縮到(A’B’);需要顯示出圖像的細(xì)節(jié)部分等都要求采用灰度變換方法?;叶茸儞Q有時(shí)又被稱(chēng)為圖像的對(duì)比度增強(qiáng)或?qū)Ρ榷壤?。假定輸入圖像中的一個(gè)像素的灰度級(jí)為Z,經(jīng)過(guò)T(Z)函數(shù)變換后輸出圖像對(duì)應(yīng)的灰度級(jí)為Z1,其中要求Z和Z1都要在圖像的灰度范圍之內(nèi),根據(jù)T()形式可以將灰度變換分為線(xiàn)性變換和非線(xiàn)性變換。具體應(yīng)用中

94、采用何種T()需要根據(jù)變換的要求而定。在本小節(jié)中我們介紹的是灰度的分段線(xiàn)性變換。分段線(xiàn)性變換是將圖像灰度區(qū)間分成兩段乃至多段,本文中分成三段進(jìn)行處理。</p><p>  設(shè)置原圖中的兩個(gè)灰度值x1,x2(假設(shè)x1<x2),經(jīng)過(guò)線(xiàn)性變換后將原圖在x1和x2之間的灰度拉伸到區(qū)間y1和y2中。</p><p>  1.當(dāng)某像素i的灰度值小于x1時(shí),先判斷x1與0的大小。</p>

95、;<p>  (1)當(dāng)x1>0時(shí),利用線(xiàn)性變換函數(shù)bMap[i]=y1*i/x1,求出經(jīng)過(guò)線(xiàn)性變換后的該像素的灰度值為bMap[i]。</p><p>  (2)當(dāng)x1=0,則直接給像素i賦值為0。</p><p>  2.當(dāng)像素i的灰度值小于x2時(shí),先要判斷x1是否等于x2。</p><p>  (1)當(dāng)x1≠x2時(shí),利用線(xiàn)性變換函數(shù)bMap[

96、i] = ((y2 – y1) * (i – x1) / (x2 – x1)) + y1,求出經(jīng)過(guò)線(xiàn)性變換后的該像素的灰度值變?yōu)閎Map[i]。</p><p>  (2)當(dāng)x1=x2時(shí),則直接給像素i賦值為y1。</p><p>  3.當(dāng)像素i的灰度值小于256時(shí),先要判斷x2是否等于255。</p><p>  (1)當(dāng)x2≠255時(shí),利用線(xiàn)性變換函數(shù)bMap

97、[i] = ((255–y2) * (i–x2) / (255–x2)) + y2,求出經(jīng)過(guò)線(xiàn)性變換后的該像素的灰度值變?yōu)閎Map[i]。</p><p>  (2)當(dāng)x2=255時(shí),則直接給像素i賦值為255。</p><p>  根據(jù)這種方法對(duì)圖像中的所有像素進(jìn)行操作,得出線(xiàn)性變換后的圖像。</p><p>  3.2.6二值化處理</p><

98、;p>  一幅圖像包括目標(biāo)物體、背景還有噪聲,怎樣從多值的數(shù)字圖像中只取出目標(biāo)物體,最常用的方法就是設(shè)定某一閾值T,用T將圖像的數(shù)據(jù)分成兩大部分:大于T的像素群和小于T的像素群。這是研究灰度變換最特殊的方法,稱(chēng)為圖像的二值化。二值化處理就是把圖像f(x,y)分成目標(biāo)物體和背景兩個(gè)領(lǐng)域。二值化是數(shù)字圖像處理中一項(xiàng)最基本的變換方法,通過(guò)非零取一、固定閾值、雙固定閾值等不同的閾值化變換方法,使一幅灰度圖變成了黑白二值圖像,將我們所需的目

99、標(biāo)部分從復(fù)雜的圖像背景中脫離出來(lái)。</p><p>  閾值處理的操作過(guò)程是先由用戶(hù)指定或通過(guò)算法生成一個(gè)閾值,如果圖像中某像素的灰度值小于該閾值,則將該像素的灰度值設(shè)置為0或255,否則灰度值設(shè)置為255或0。</p><p>  閾值化的變換函數(shù)表達(dá)式為公式3-9。</p><p><b>  (式3-9)</b></p>&

100、lt;p>  式中,T表示指定的閾值</p><p>  閾值T就像個(gè)門(mén)檻,比它大的就是白,比它小的就是黑。該變換函數(shù)是階躍函數(shù),只需給出閾值點(diǎn)T即可,經(jīng)過(guò)閾值處理后的圖像變成了一幅黑白二值圖,閾值處理是灰度圖轉(zhuǎn)二值圖的一種常用方法。在本文中分別介紹非零元素取一法、固定閾值法和雙固定閾值法三種方法。</p><p><b>  1.非零元素取一法</b><

101、/p><p>  非零元素取一法是最基礎(chǔ)的二值化算法。就是對(duì)于灰度圖像f,若某像素灰度值為零,則其灰度值不變,仍為零;對(duì)于灰度值不為零的像素,將其像素值全部變?yōu)?55。非零元素取一法的閾值T=1。 </p><p>  非零元素取一法的變換表達(dá)式定義為式3-10。</p><p><b>  (式3-10)</b></p><p

102、><b>  2.固定閾值法</b></p><p>  在某種意義上非零元素取一法也可以理解稱(chēng)為一種特殊的固定閾值法,因?yàn)樗拈撝的J(rèn)為1。固定閾值法就是為灰度圖像f設(shè)定一個(gè)閾值T,把灰度值小于給定閾值T的像素置為0,大于閾值T的像素置為255,從而對(duì)灰度圖像實(shí)現(xiàn)二值化變換。</p><p>  固定閾值法的變換表達(dá)式定義為式3-11。</p>

103、<p>  (式3-11) 式中,T為指定閾值</p><p><b>  3.雙固定閾值法</b></p><p>  相對(duì)于非零取一法和固定閾值法,雙固定閾值法預(yù)先設(shè)置了兩個(gè)閾值T1和T2,且T1<T2,當(dāng)對(duì)圖像進(jìn)行處理時(shí),如果某個(gè)像素的灰度值小于T1則置0(或者255);如果大于T1并且小于T2時(shí),則置255(或者0);如果大于T2時(shí),則置0(或

104、者255)??筛鶕?jù)具體情況選擇雙固定閾值法是用0-255-0型或是255-0-255型。</p><p>  0-255-0型固定閾值法的變換函數(shù)表達(dá)式定義為式3-12。 </p><p><b>  (式3-12)</b></p><p>  式中,T1表示指定的較小的閾值;T2表示指定的較大的閾值</p><p> 

105、 在本文的雙固定閾值法的算法中,設(shè)置了一個(gè)標(biāo)記mode,當(dāng)mode=0時(shí),選擇的是0-255-0型,當(dāng)mode=1時(shí),選擇的是255-0-255型。</p><p>  3.3 圖像的幾何變換</p><p>  3.3.1圖像的平移</p><p>  圖像平移就是將圖像中所有的點(diǎn)都按照指定的平移量水平、垂直移動(dòng)。平移后的圖像上的每一點(diǎn)都可以在原圖像中找到對(duì)應(yīng)的點(diǎn)

106、。</p><p>  假設(shè)(x0,y0)為原圖像上一點(diǎn),圖像的水平平移量為x,圖像的垂直平移量為y,則平移后點(diǎn)(x0,y0)的坐標(biāo)則變?yōu)?x1,y1)。顯然(x0,y0)和(x1,y1)滿(mǎn)足公式3-13。</p><p><b>  (式3-13)</b></p><p>  如果對(duì)于新圖像中的(x1,y1)像素,不在(x1,y1)原圖范圍內(nèi)

107、,說(shuō)明此點(diǎn)被移出顯示區(qū)域,可以直接將它的像素值設(shè)置為0或255(對(duì)于灰度圖就是黑色或者是白色),在本文中統(tǒng)一將其設(shè)置為255,即白色。</p><p>  例如:在本文的程序中,對(duì)于非真彩色圖,如果某像素在原DIB中的坐標(biāo)為(280,135),水平平移量為m_Xmove=100,垂直平移量為m_Ymove=60,則平移后該像素在新DIB中的坐標(biāo)為(380,195),根據(jù)算法中的公式判斷,若380>heigh

108、t,或195>wide,該像素超出顯示區(qū)域的范圍,則直接將其設(shè)置為255,即為白色。否則,將該像素復(fù)制到點(diǎn)坐標(biāo)(380,195)處。</p><p>  另外,需要注意的是在DIB中,圖像的保存是從下到上、從左到右依次存儲(chǔ)的,即圖像的第一行其實(shí)保存在最后一行的位置。因此在計(jì)算像素的位置坐標(biāo)時(shí)需要注意公式的使用。</p><p>  例如:在計(jì)算第i行,第j個(gè)像素時(shí),根據(jù)公式3-14計(jì)

109、算,而不是公式3-15,在其他算法中也需要注意。</p><p>  lpSrc = p_data + lLineBytes * (height-1-i) + j (式3-14)</p><p>  式中,p_data表示起始像素的位置;lLineBytes表示圖像每行的字節(jié)數(shù);height表示圖像的行數(shù);lpSrc表示該像素所在的位置</p><p

110、>  lpSrc = p_data + lLineBytes * i + j (式3-15)</p><p>  3.3.2圖像的縮放</p><p>  在圖像縮放中,產(chǎn)生的圖像中的像素可能在原圖中找不到相應(yīng)的像素點(diǎn),這樣就必須進(jìn)行近似處理。一般的方法是直接賦值為和它最相近的像素值,也可以通過(guò)一些插值算法來(lái)計(jì)算。后者處理效果要好些,但是運(yùn)算量也相應(yīng)

111、增加很多。在本文中采用直接前一種方法,直接賦值為最相近的像素值。</p><p>  假設(shè)圖像的縮放比率為t,那么原圖中的點(diǎn)(x0,y0)對(duì)應(yīng)于新圖中的點(diǎn)(x1,y1)的轉(zhuǎn)換公式為式3-16。</p><p><b>  (式3-16)</b></p><p>  在本文中,圖像的縮放算法設(shè)計(jì)方法如下:</p><p>

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論