畢業(yè)設計 圖像銳化處理設計_第1頁
已閱讀1頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  第一章 前言3</b></p><p><b>  第二章 緒論5</b></p><p>  2.1 研究的目的及意義5</p><p>  2.2 國內(nèi)外研究現(xiàn)狀6</p>&l

2、t;p>  2.2.1 國外研究現(xiàn)狀6</p><p>  2.2.2 國內(nèi)研究現(xiàn)狀7</p><p>  2.3 本文主要研究內(nèi)容與結構安排8</p><p>  第三章 算法分析與描述9</p><p>  3.1 數(shù)字圖像處理簡介9</p><p>  3.1.1 數(shù)字圖像處理的特點9</

3、p><p>  3.1.2 數(shù)字圖像處理的目的和主要內(nèi)容10</p><p>  3.2 VC++簡介13</p><p>  3.2.1 Visual C++開發(fā)語言的特點13</p><p>  3.2.2 Visual C++ 6.0 的特點14</p><p>  3.2.3 Visual C++ 6.0

4、及其開發(fā)環(huán)境16</p><p>  3.3 本章小結17</p><p>  第四章 算法分析與描述18</p><p>  4.1 空域微分銳化方法18</p><p>  4.1.1拉普拉斯微分算子函數(shù)20</p><p>  4.1.2 Roberts交叉微分算子函數(shù)22</p>&l

5、t;p>  4.1.3 Prewitt微分算子函數(shù)(平均差分法)23</p><p>  4.1.4 Sobel微分算子函數(shù)(加權平均差分法)24</p><p>  4.2 頻域高通濾波銳化方法26</p><p>  4.2.1理想高通濾波器26</p><p>  4.2.2巴特沃思高通濾波器26</p>

6、<p>  4.2.3指數(shù)高通濾波器26</p><p>  第五章 詳細設計過程28</p><p>  5.1微分算子圖像銳化編程實現(xiàn)說明28</p><p>  5.2理想高通濾波圖像銳化編程實現(xiàn)說明34</p><p>  5.3 Butterworth 高通濾波圖像銳化編程實現(xiàn)說明41</p>&l

7、t;p>  5.4 程序運行中的圖像48</p><p><b>  設計總結51</b></p><p><b>  參考文獻52</b></p><p><b>  致 謝54</b></p><p><b>  第一章 前言</b>&l

8、t;/p><p>  圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著人類活動范圍的不斷擴大,圖像處理的應用領域也將隨之不斷擴大。</p><p>  數(shù)字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉換成數(shù)字信號并利用計算機對其進行處理的過程。 </p><

9、;p>  數(shù)字圖像處理主要研究以下內(nèi)容: 圖像幾何變換;如傅立葉變換、沃爾什變換、離散余弦變換等;圖象銳化處理;圖像編碼壓縮;圖像增強和復原;圖像分割;圖像描述;圖像分類(識別)。</p><p>  在圖像增強過程中,通常利用各類圖像平滑算法消除噪聲,圖像的常見噪聲主要有加性噪聲、乘性噪聲和量化噪聲等。一般來說,圖像的能量主要集中在其低頻部分,噪聲所在的頻段主要在高頻段,同時圖像邊緣信息也主要集中在其高頻

10、部分。這將導致原始圖像在平滑處理之后,圖像邊緣和圖像輪廓模糊的情況出現(xiàn)。</p><p>  為了減少這類不利效果的影響,就需要利用圖像銳化技術,使圖像的邊緣變得清晰。圖像銳化處理的目的是為了使圖像的邊緣、輪廓線以及圖像的細節(jié)變得清晰,經(jīng)過平滑的圖像變得模糊的根本原因是因為圖像受到了平均或積分運算,因此可以對其進行逆運算(如微分運算)就可以使圖像變得清晰。從頻率域來考慮,圖像模糊的實質是因為其高頻分量被衰減,因此

11、可以用高通濾波器來使圖像清晰。但要注意能夠進行銳化處理的圖像必須有較高的性噪比,否則銳化后圖像性噪比反而更低,從而使得噪聲增加的比信號還要多,因此一般是先去除或減輕噪聲后再進行銳化處理。</p><p><b>  第二章 緒論</b></p><p>  2.1 研究的目的及意義</p><p>  圖像是人類獲取信息、表達信息和傳遞信息的重

12、要手段。人出生以后第一次睜開眼睛,首先接收的就是各種各樣的圖像信息,因此有人說,圖像與生俱來是人類生活中最直觀、最豐富和最生動的信息表示形式。國外學者曾做過統(tǒng)計,人們從外界所獲取的信息有70%以上來自于視覺攝取的圖像,與文字或者語言信息相比,圖像包含的信息量更大,具有更廣泛的適用性和更高的使用效率。在當今科學技術迅速發(fā)展的時代,人們越來越多的利用圖像信息來認識和判斷事物,解決實際問題。</p><p>  一幅靜

13、態(tài)圖像可以用一個二維函數(shù) f (x, y)來表示,這里x和y 表示二維空間中坐標點的位置,而f 則代表圖像在點(x, y)的某種性質的數(shù)值。例如常用的圖像一般是灰度圖,這時f表示灰度值,對應客觀圖像被觀察到的亮度。常見的圖像是連續(xù)的,即f (x, y)的值可以是任意實數(shù)。為了適應數(shù)字計算機的處理,必須對連續(xù)圖像函數(shù)進行空間和幅度數(shù)字化,經(jīng)過數(shù)字化后的圖像稱為數(shù)字圖像。數(shù)字圖像是由有限的元素組成的,每個元素都有一個特定的位置和幅值,這些元

14、素稱為圖像元素或像素。而數(shù)字圖像處理是指借用數(shù)字計算機處理數(shù)字圖像。</p><p>  數(shù)字圖像一般可以通過以下三種途徑獲?。?lt;/p><p>  (1)直接由二維離散數(shù)學函數(shù)生成數(shù)字圖像。</p><p> ?。?)將模擬圖像、物理圖像等可見圖像經(jīng)過數(shù)字化處理轉換為數(shù)字圖像,例如將一幅照片通過掃描儀輸入到計算機中,掃描的過程實質上就是一個數(shù)字化過程。</p

15、><p> ?。?)應用光電轉換設備可以直接得到數(shù)字圖像,例如數(shù)字相機使用CCD器件記錄影像,然后把CCD器件的電子信號轉換成數(shù)碼信號,并把所得到的數(shù)字圖像存入存儲器中。</p><p>  無論采取哪種方式所獲取的數(shù)字圖像在數(shù)學上都是一個二維矩陣,因此,數(shù)字圖像處理的實質是將原始圖像變?yōu)槟繕藞D像的過程,實質上是由一個矩陣變?yōu)榱硪粋€矩陣的數(shù)學過程。不管是圖像的放縮、圖像的幾何變換、圖像的灰度變

16、換還是離散余弦等正交變換,本質上都是基于圖像矩陣的數(shù)學運算。</p><p>  獲取圖像信息的目的不僅僅只是為了獲取圖像,更為主要的是對圖像信息進行加工處理,以滿足我們的視覺心理或者應用需求。因此,從某種意義上講,對圖像信息進行處理比圖像獲取更為重要。圖像處理一般是指數(shù)字圖像處理,所謂數(shù)字圖像處理就是指對一個物體的數(shù)學表示,即對一個二維矩陣施加一系列的操作,以得到所期望的結果。雖然某些處理也可以用光學方法或模擬

17、技術實現(xiàn),但它們遠不及數(shù)字圖像處理那樣靈活和方便,因而數(shù)字圖像處理成為圖像處理的主要方面。</p><p>  2.2 國內(nèi)外研究現(xiàn)狀</p><p>  2.2.1 國外研究現(xiàn)狀</p><p>  圖像處理軟件是用于處理圖像信息的各種應用軟件的總稱,現(xiàn)在國外比較流行的數(shù)字圖像處理軟件品種繁多。例如美國Math Works公司出品的MATLAB軟件,功能十分強大,

18、它主要應用于工程計算、信號處理與通訊、圖像處理等領域。MATLAB之所以稱為世界流行的科學計算與數(shù)學應用軟件,是因為它有著強大的矩陣運算和處理功能,具體表現(xiàn)在強大的數(shù)值計算功能、數(shù)據(jù)分析和科學計算可視化功能、強大的符號計算功能、強大的非線性動態(tài)系統(tǒng)建模和仿真功能、靈活的程序接口功能等方面。而數(shù)字圖像處理與矩陣運算具有密切的聯(lián)系,并且MATLAB圖像處理工具箱提供了豐富的圖像處理函數(shù),熟練使用這些函數(shù)可以完成幾乎所有的圖像處理工作。應用M

19、ATLAB進行數(shù)字圖像處理可以節(jié)省大量編寫低層算法源代碼的時間,避免程序設計中的重復勞動,達到事半功倍的效果。另外,新版本的MATLAB在圖形用戶界面(GUI)的制作上作了很大的改善。MATLAB的不足之處是運行程序時需要安裝有MATLAB系統(tǒng),可移植性能差,應用不方便,執(zhí)行速度慢。</p><p>  Microsoft Visual C++,簡稱MSVC、VC++,是微軟公司的C++開發(fā)工具,具有可視化的集成

20、開發(fā)環(huán)境,稱為Visual Studio。具有編輯C 語言,C++等編程語言的能力,從傳統(tǒng)的Windows API 編程到MFC 編程、再到基于組件的編程,Visual C++都為之提供了方便的設計工具,幾乎能夠完成Windows 各個方面的應用。自1993 年Microsoft 公司推出Visual C++1.0 后,隨著其新版本的不斷問世,所開發(fā)出來的應用程序運行速度快,代碼執(zhí)行效率高,并具有一定的可移植性能。因此,Visual C

21、++已成為專業(yè)程序員進行軟件開發(fā)的首先工具。目前最新的版本是Microsoft Visual C++ 2008,Visual C++ 6.0 是其經(jīng)典版本。</p><p>  Photoshop是Adobe公司開發(fā)的世界上最優(yōu)秀的平面圖像處理軟件之一,集圖像掃描、編輯修改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出與一體,在圖像處理及平面設計領域里,Photoshop一直都以界面美觀,操作方便,在圖像處理和電腦繪圖軟件

22、領域里獨占鰲頭。Photoshop的功能非常強大,它支持多種圖像格式和顏色模式,能同時進行多色層處理。其繪畫功能和選取功能能使圖像編輯變得十分方便,圖像變形功能可用來制作特殊的視覺效果。Photoshop還采用開放式的結構,能接受常用的圖像輸入設備。目前最新版本Adobe Photoshop CS4除了包含Adobe Photoshop CS3的所有功能外,還增加了3D和視頻流、動畫、深度圖像分析等。</p><p&

23、gt;  Ulead公司的PhotoImpact是一款以個人用戶多媒體應用為主的圖像處理軟件,其主要功能是改善相片品質,進行簡易的相片處理并支持位圖圖像和矢量圖像的無縫組合,打造3D效果以及在網(wǎng)頁圖像方面的應用。它內(nèi)置的各種效果要比Photoshop更加方便。</p><p>  Painter是一款由加拿大Corel公司開發(fā)的圖形圖像軟件,是最優(yōu)秀的電腦繪畫軟件之一,它結合了photoshop為代表的位圖圖像軟

24、件和Illustrator freehand等為代表的矢量圖形軟件的功能和特點,在圖像編輯合成、特效制作、二維繪圖等方面均有突出表現(xiàn)。</p><p>  2.2.2 國內(nèi)研究現(xiàn)狀</p><p>  國內(nèi)在此領域的研究中最具有代表性的是夢幻科技推出的彩影圖形處理和相片制作軟件,彩影擁有非常智能、傻瓜而功能強大的圖像處理、修復和合成功能。解決了國內(nèi)外圖像處理軟件過于復雜、不易操作的問題,讓

25、所有用戶不需要專業(yè)的圖像美工技能即可輕松點擊并制作出絢麗多彩的圖像特效圖。另外,光影魔術手也是國內(nèi)最受歡迎的圖像處理軟件之一,被《電腦報》、天極、PCHOME等多家權威媒體及網(wǎng)站評為2007年最佳圖像處理軟件。其簡單、易用,每個人都能制作精美相框,藝術照,專業(yè)膠片效果,而且完全免費,不需要任何專業(yè)的圖像技術。其功能主要表現(xiàn)在圖片美容、攝影作品的后期處理方面。</p><p>  新一代在線圖像編輯軟件OPCOL是

26、國內(nèi)領先的在線圖像處理系統(tǒng),它采用最新Flash技術開發(fā),不用下載任何插件,只需flash10的支持即可實現(xiàn)在線圖片編輯,可無縫嵌入主流瀏覽器,具有文件體積小速度快,兼容各種瀏覽器等特點;適于各種自動在線圖片編輯的場合使用,是未來網(wǎng)站的一個新功能和亮點,滿足您的創(chuàng)新需求,解決網(wǎng)站在線圖片編輯難題;通過本編輯軟件提供豐富的接口,能與JSP,PHP,ASP等動態(tài)編程語言完美接口,方便集成,系統(tǒng)數(shù)據(jù)交互采用標準的HTTP協(xié)議。</p&g

27、t;<p>  2.3 本文主要研究內(nèi)容與結構安排</p><p>  本文主要設計的內(nèi)容是:</p><p>  理解分析空域微分銳化方法。</p><p>  理解分析圖像頻域高通濾波銳化方法,特別是理想高通濾波器法、Butterworth濾波器法和指數(shù)形濾波器法。</p><p>  在VC中代碼實現(xiàn)以上算法,并通過調(diào)試,

28、得到所給圖像的變換結果。</p><p>  本文以下的內(nèi)容是這樣安排的:</p><p>  第三章主要講述了數(shù)字圖像的特點及信息;第四章主要講述了圖像銳化處理的方法;第五章主要是VC++編程實現(xiàn)了人機軟件界面;而后為總結與展望,對本課題進行了總結和對課題的展望。</p><p>  第三章 算法分析與描述</p><p>  3.1 數(shù)

29、字圖像處理簡介</p><p>  數(shù)字圖像處理是指用計算機對數(shù)字圖像進行的處理,因此也成為計算機圖像處理。由于數(shù)字圖像在數(shù)學上是一個二維矩陣,所以數(shù)字圖像處理又可以描述為對一個二維矩陣施加一系列操作,以得到所期望的結果。與之相對應的是模擬圖像處理(Analog Image Processing),它包括:電子處理和光學處理,如電視信號處理、遙感圖像處理等都是對模擬信號進行處理的過程,模擬圖像處理一般為實時處理。

30、它的特點是速度快、精度差、靈活性差。</p><p>  3.1.1 數(shù)字圖像處理的特點</p><p><b>  (1)信息量大</b></p><p>  由于數(shù)字圖像在計算機中采用二維矩陣表示和存儲,所以其信息量很大。比如對一幅由512×512個像素組成的電視圖像,其灰度級用8比特的二進制數(shù)來表示,其信息量為</p>

31、;<p>  512×512×8 = 256KB</p><p>  對于這樣大信息量的圖像,雖然我們可以獲取較多的信息,但是如果要對此圖像進行處理,我們必須要用具有相當大內(nèi)存和存儲器的計算機。</p><p> ?。?)數(shù)字圖像占用的頻帶較寬</p><p>  數(shù)字圖像信息占用的頻帶要比語音信息大幾個數(shù)量級。如語音帶寬約為4KH

32、z,而電視圖像的帶寬卻為5.6MHz 左右。所以在成像、傳輸、存儲、處理、顯示等各個環(huán)節(jié)的實現(xiàn)上,技術難度較大,成本亦高,這就對頻帶壓縮技術提出了更高的要求。</p><p> ?。?)數(shù)字圖像像素間相關性大</p><p>  數(shù)字圖像中各個像素的灰度并不是獨立的,其間的相關性很大,就電視畫面而言,同一幀各相鄰像素間的相關系數(shù)可達0.9 以上,而相鄰兩幀之間的相關性比幀內(nèi)相關性一般還要大

33、些,因此圖像信息具有很大的可壓縮性。如果在圖像通信領域中,能夠充分利用數(shù)字圖像的這一特性,將大大提高圖像處理和傳輸?shù)男省?lt;/p><p>  (4)再現(xiàn)性好、適用面寬</p><p>  由于數(shù)字圖像在計算機中采用二維矩陣表示和存儲,這樣計算機容易處理。因此,在傳送和復制圖像時,只在計算機內(nèi)部進行處理,這樣數(shù)據(jù)就不會丟失或遭破壞,保持了完好的再現(xiàn)性。這一點在模擬圖像處理中,幾乎是很難實現(xiàn)

34、的。另外,對于數(shù)字圖像處理來說,圖像可以來自多種信息源,它們可以是可見光圖像,也可以是不可見的多光普圖像;可以是電子顯微鏡圖像,也可以是遙感圖像甚至天文望遠鏡圖像。只要對這些來自不同信息源的圖像數(shù)字化后,都可以采用計算機來處理。</p><p>  (5)圖像信息的視覺效果主觀性大、識別困難</p><p>  經(jīng)過處理后的圖像一般是給人觀察和評價的,因此受人的主觀因素影響較大,比如說興趣

35、、視覺、情緒等。通常情況下,圖像的識別比較困難。如果要求取圖像上某一區(qū)域的面積,利用計算機可以很方便的達到目的,并且精確度很高;但是要計算機識別某一區(qū)域是什么東西,則十分困難。</p><p> ?。?)圖像處理技術綜合性強</p><p>  數(shù)字圖像處理涉及的技術領域相當廣泛,如計算機技術、電子技術、通信技術等。當然,數(shù)學、物理學等領域更是數(shù)字圖像處理的基礎。并且在數(shù)字圖像處理中涉及到

36、硬件、軟件、接口、網(wǎng)絡等多項技術??偠灾?,數(shù)字圖像處理技術的發(fā)展涉及越來越多的基礎理論知識,它是一項涉及多學科的綜合性技術。</p><p>  3.1.2 數(shù)字圖像處理的目的和主要內(nèi)容</p><p>  數(shù)字圖像處理就是利用計算機系統(tǒng)對數(shù)字圖像進行各種特定的處理。通常情況下,對圖像進行處理主要以下3 個目的:</p><p>  一是提高圖像的可觀性,以獲得所

37、期望的結果。例如如對圖像進行灰度變換、幾何變換、濾波等從而改善圖像的質量以達到所需的、清晰的效果;二是對圖像數(shù)據(jù)進行編碼和壓縮,以便于解決數(shù)據(jù)量與存儲和傳輸?shù)拿?。三是特征提取,以便于計算機進行圖像分析。比如常用作模式識別的預處理,這就涉及到特征參數(shù)的提取問題。</p><p>  不管圖像處理是何種目的,都需要計算機系統(tǒng)對圖像數(shù)據(jù)進行輸入、分析加工和輸出,因此數(shù)字圖像處理研究的內(nèi)容主要有以下幾個方面:</

38、p><p>  (1)圖像數(shù)字化:圖像數(shù)字化是將一幅圖像從其原來的形式轉換為數(shù)字形式的處理過程。轉換是不失真的,即原始圖像未被破壞掉。數(shù)字化過程包括掃描、采樣和量化三個步驟。所謂掃描是按照一定的先后順序對一幅圖像進行遍歷的過程;采樣是將在空間上連續(xù)分布的圖像轉換成離散的圖像點;量化是將采樣得到的灰度值轉換為離散的整數(shù)值。經(jīng)過這三個步驟,可以得到一幅數(shù)字圖像。</p><p> ?。?)圖像增強

39、:圖像增強用以改善供人觀看的圖像的主觀質量。當無法知道圖像質量下降的原因時,可以采用圖像增強技術來改善圖像的質量。由于圖像增強技術是用于改善圖像視感質量而不是針對某種退化所采取的一種方法,所以很難預測哪一種特定技術才是最好的,只能通過實驗和分析誤差來選擇一種合適的方法。況且接受者是人,處理結果質量的好壞就受觀看者的心理、情緒、愛好等主觀因素的影響,所以效果的評價只是相對的。直方圖修正、邊緣增強等是其常用手段??偟膩碚f,圖像增強以清晰為目

40、標。</p><p>  (3)圖像復原:與圖像增強相似,圖像復原的目的也是改善圖像的質量。圖像復原可以看作是圖像退化的逆過程,是將圖像退化的過程加以估計,建立退化的數(shù)學模型后,補償退化過程造成的失真,以便獲得未經(jīng)干擾退化的原始圖像或原始圖像的最優(yōu)估值,從而改善圖像質量。</p><p> ?。?)圖像分割:把圖像分成區(qū)域的過程就是圖像分割。圖像中通常包含多個對象,例如,一幅航空照片,可以

41、分割為居民區(qū)、工業(yè)區(qū)、草原和湖泊等區(qū)域。好的圖像分割應具備以下三個特征,一是分割出來的各區(qū)域對某種特質而言具有相似性,區(qū)域內(nèi)部是連通的且沒有過多小孔;二是相鄰區(qū)域對分割所依據(jù)的性質有明顯的差異;三是區(qū)域邊界是明確的。但是到目前為止,對圖像分割的好壞進行評價還沒有統(tǒng)一的準則,因此,圖像分割時圖像分析和計算機視覺中的經(jīng)典難題。</p><p> ?。?)圖像分析:圖像分析主要是對圖像中感興趣的目標進行檢測和測量,以獲

42、得它們的客觀信息,從而建立對圖像的描述。圖像分析分3 步進行,即分割、描述和分類。人類視覺系統(tǒng)的優(yōu)越性,使得人類可以方便的從一幅圖像中找出感興趣的物體或區(qū)域,而對于計算機而言,要做到這一點卻需要給它以客觀測度,使之按照顏色、灰度等把一些物體或區(qū)域加以分離,這叫分割。再用適當?shù)臄?shù)學語言來表示已分離區(qū)域或物體的機構與統(tǒng)計性質,或表示區(qū)域間的關系,得出一種簡練的表達方式,這稱為描述。圖像經(jīng)分割、描述之后就較容易對之做進一步的分類與識別處理。如

43、果說圖像處理是一個從圖像到圖像的過程,則圖像分析就是一個從圖像到數(shù)據(jù)的過程。這里的數(shù)據(jù)可以是目標特征的測量結果,或是基于測量的符號表示,它們描述了目標的特點和性質。</p><p> ?。?)圖像重建:圖像重建的目的是根據(jù)二維平面圖像數(shù)據(jù)構造出三維物體的圖像。它與圖像增強不同,圖像增強的輸入是圖像,輸出也是圖像,而圖像重建輸入的是某種數(shù)據(jù),輸出是圖像。醫(yī)學上廣為采用的計算機層析掃描術(CT)就是一例。它是利用超聲

44、波、X 射線、核磁共振等手段取得物體的許多幅來自不同角度的反應物體內(nèi)部的投影圖,然后再通過計算獲得物體內(nèi)部的圖像。實際上就是將多幅斷層二維平面數(shù)據(jù)重建成可描述人體組織器官的三維結構的圖像。三維重建技術目前已成為虛擬現(xiàn)實技術及科學可視化技術的重要基礎。</p><p> ?。?)圖像變換:圖像變換是指通過一種數(shù)學映射的方法,將空域中的圖像信息轉換到頻域或時頻域等空間上進行分析的數(shù)學手段。最常采用的變換有傅里葉變換、

45、離散余弦變換和小波變換等。</p><p>  (8)圖像壓縮編碼:圖像是一種重要的信息資源,經(jīng)常需要保存起來,為此需要按一定的格式存入計算機。數(shù)字圖像的特點之一是數(shù)據(jù)量龐大。盡管現(xiàn)在有大容量的存儲器,但仍不能滿足對圖像數(shù)據(jù)(尤其是動態(tài)圖像、高分辨率圖像)處理的需要。此外,由于圖像需要在不同設備之間進行傳輸,而圖像的傳輸也需要占用通信資源,因此為了節(jié)省存儲空間,合理地利用通信資源,需要研究圖像壓縮技術。如果數(shù)據(jù)不

46、壓縮,則需要在存儲和傳輸中占很大的容量和帶寬,因而增加了成本。另外,利用人類的視覺特性,可對圖像的視覺冗余進行壓縮,由此來達到減小描述圖像的數(shù)據(jù)量的目的。圖像編碼主要是采用不同的表達方法以減少表示圖像所需的數(shù)據(jù)量,從本質上來說,圖像編碼與壓縮就是對要處理的圖像源數(shù)據(jù)按一定的規(guī)則進行變換和組合,從而達到以盡可能少的代碼來表示盡可能多的數(shù)據(jù)信息。壓縮通過編碼來實現(xiàn),或者說編碼帶來壓縮的效果,所以一般把此項處理稱為壓縮編碼。</p>

47、;<p>  3.2 VC++簡介</p><p>  Visual C++是微軟公司推出的一種高度綜合性能的開發(fā)Win32 環(huán)境程序,面向對象的可視化集成編程系統(tǒng)。自其誕生以來,因其易用性和良好的用戶界面,一直是Windows 環(huán)境下最主要的開發(fā)工具。而且由于Visual C++本身就是一個圖形的開發(fā)界面,提供了豐富的關于位圖操作的函數(shù),所以對開發(fā)圖像處理系統(tǒng)提供了極大的方便。它現(xiàn)在已經(jīng)成為開發(fā)W

48、in32 程序,包括圖像處理程序的主要開發(fā)工具?,F(xiàn)在常用的版本有Visual C++ 6.0/Visual C++.NET/ Visual C++2005 等。</p><p>  3.2.1 Visual C++開發(fā)語言的特點</p><p> ?。?)與Windows 緊密結合。程序員在Windows 平臺下開發(fā)應用程序時,可以利用WindowsAPI 提供給應用程序的接口程序對Win

49、dows 進行控制。例如,程序員可以為自己的應用程序提供一些圖形設備接口(GDI),來顯示一些圖形和格式的文本。Visual C++作為優(yōu)秀的可視化編程工具,它提供了大量類庫和各種控件,而這些類庫和控件都是構架在Windows API 函數(shù)基礎之上的,是封裝了的API 函數(shù)的集合,讓程序員進行應用開發(fā)時更方便,以加速Windows應用程序開發(fā)的過程。因此,Visual C++在使用API 等方面和Windows 聯(lián)系得最為緊密。<

50、/p><p>  (2)強大的類庫支持和類改造能力。使用Visual C++ MFC 類庫編程,就可以得到MFC類庫強大的支持。MFC 本身就是一個龐大的C++類庫,這些類有效地實現(xiàn)了對Win32 API、OLEAPI、ODBC API 等底層函數(shù)的封裝,因此不需要再記憶大量的API 函數(shù),只要實例化一個C++類,并采用該實例的成員變量即可,從而使開發(fā)過程更加合理化,編程更加簡便化。同時,MFC框架集成了很多應用程序

51、模板,而這些模板都采用了以文檔/視圖為中心的思想,每一個模板都包含一組特定的類。由于C++類支持繼承和虛擬函數(shù),程序員可以通過使用繼承和擴展適當?shù)腃++類來實現(xiàn)特定的目的。例如,應用程序特定的事件由程序員的派生類來處理實現(xiàn)對基類的繼承。</p><p> ?。?)擁有高效率的運行速度。要使軟件擁有高效率的運行速度,我們應該從程序編寫的質量和工具的編譯質量兩方面著手。由于Visual C++在開發(fā)Windows 應

52、用程序時,它主要采用C語言、C++通用類以及原始的Windows 應用程序編程接口,而這些函數(shù)都是比較低層的函數(shù),一次運行起來速度比較快,使用靈活,從而保證了用Visual C++編寫出來的軟件產(chǎn)品擁有高效率的運行速度。</p><p>  3.2.2 Visual C++ 6.0 的特點</p><p>  現(xiàn)在越來越多的人正在加入Visual C++程序員的行列,由于前一段時間.NET

53、 的盛行,VC.NET、VC2005 的相繼推出,對Visual C++的經(jīng)典版本Visual C++6.0 有些冷落。但是經(jīng)過一段時間的摸索,C++程序員們又一致認為Visual C++6.0 是開發(fā)C++ Windows 應用程序最理想的工具。</p><p>  Visual C++ 6.0 是Microsoft 公司推出的Visual C++開發(fā)工具的6.0 版本,該工具在速度和代碼量要求較高的場合中是首

54、選工具。在行內(nèi)有一句話“在Windows 下開發(fā)軟件,只有你想不到的,沒有Visual C++做不到的”來形容Visual C++ 6.0 的功能齊全和強大。Visual C++ 6.0 在以前版本的基礎上又增加了許多特性,比如ATL 復合控件、Internet 特性、OLE-DB 提供者模塊、ADO 數(shù)據(jù)綁定等。與以前的版本相比,Visual C++ 6.0 的MFC 類庫沒有做太大的改進,但是其集成開發(fā)環(huán)境做了一些改進,增加了一些新

55、特性,使其更易于應用。這些新特性包括以下幾個方面:</p><p><b>  (1)文本編輯器</b></p><p>  Find in Files 命令支持兩個獨立的輸出窗格,可以保存上次搜索結果。</p><p><b> ?。?)調(diào)試器</b></p><p>  可以直接運行和調(diào)試程序,

56、還可以使用宏語言來自動操作調(diào)試器。</p><p> ?。?)增強的資源編輯器</p><p>  可以在對話框中使用 WizardBar 將程序同可視化元素聯(lián)系起來。在使用加速鍵、對話框、菜單、字符串時,可以對多個要改的項目作統(tǒng)一修改。</p><p> ?。?)可定制的工具欄和菜單欄</p><p>  可以創(chuàng)建新的工具條和菜單欄。如增加

57、或者刪除菜單命令和工具條按鈕等。</p><p> ?。?)支持Internet 連接</p><p>  可以直接在 IDE 中查看網(wǎng)頁。該特性可以讓Visual Studio 用戶了解最新信息,獲取更新的文檔及完成產(chǎn)品的升級和修正工作。</p><p> ?。?)宏和自動化功能</p><p>  宏記錄功能可以根據(jù)用戶的操作自動生成宏操

58、作序列;自動化功能可以實現(xiàn)一些重復性過程和工作。</p><p> ?。?)在工作區(qū)內(nèi)可以包含多個并列的工程文件</p><p>  以前的 Visual C++版本在不同工程之間復制代碼和資源時,需要先打開一個工程,然后打開另一個工程的資源文件,然后進行資源復制操作。而Visual C++ 6.0 版本可以在當前工作區(qū)中增加一個新的工程,這個特性可以很方便快速的完成資源的復制操作。<

59、;/p><p> ?。?)項目工作區(qū)和文件</p><p>  在 Visual C++ 6.0 中,一個項目系統(tǒng)在一個工作區(qū)內(nèi)包含多個不同的項目類型,比如工作區(qū)文件以dsw 為后綴名,項目文件以dsp 為后綴名,而Build 文件分為內(nèi)部文件和外部文件等。</p><p>  3.2.3 Visual C++ 6.0 及其開發(fā)環(huán)境</p><p&g

60、t;  微軟于 1992 年推出了Visual C++ 1.0,現(xiàn)在最新的版本為Visual C++ 2008。經(jīng)歷了近20年的發(fā)展,Visual C++已經(jīng)有了很大的變化,在界面、功能、庫支持方面都有許多的增強。其中,Visual C++ 6.0 版本以其強大的功能和較小的系統(tǒng)開銷,至今深受廣大程序員的喜愛。VisualC++ 6.0 有三個版本,分別是標準版、專業(yè)版、企業(yè)版。其中標準版又稱學習版,而企業(yè)版的功能最為強大,我們這里所用

61、的版本就是Visual C++ 6.0 企業(yè)版。</p><p>  Visual C++ 6.0 集成開發(fā)環(huán)境由一套綜合的開發(fā)工具所組成,提供了良好的可視化編程環(huán)境,Visual C++ 6.0 不僅為用戶提供編輯代碼、編譯、連接、調(diào)試等基本功能,還提供多種輔助開發(fā)工具,以使用戶的開發(fā)過程更簡單、方便。</p><p>  Visual C++ 6.0 集成開發(fā)環(huán)境的主界面其主要包括菜單

62、、工具欄、編輯區(qū)、工作區(qū)窗口、輸出窗口和狀態(tài)欄等部分。</p><p><b>  1 編輯區(qū)</b></p><p>  編輯區(qū)是使用Visual C++進行一切編輯的區(qū)域,它一般位于開發(fā)界面的下方,C++的源代碼就在這里編輯和顯示。設計對話框時,窗口繪制器也在此顯示。編輯區(qū)基本上是開發(fā)界面的全部區(qū)域,不能被菜單或工具欄占據(jù)。</p><p>

63、;<b>  2 工作區(qū)</b></p><p>  工作區(qū)是 Visual C++一個最重要的組成部分,它一般位于開發(fā)主界面的左側,開發(fā)者的大部分工作都是在IDE 中完成,IDE 使用項目工作區(qū)來組織項目以及項目信息在屏幕上出現(xiàn)的方式。在一個項目工作區(qū)中,可以處理一個工程和它所包含的文件、一個工程的子工程、多個相互獨立的工程和多個相互依賴的工程。項目工作區(qū)底部有3 個標簽項:分別為Clas

64、s View(類視圖)、Resource View(資源視圖)、File View(文件視圖),點擊某個具體的標簽可以切換到對應的項目工作區(qū)視圖中。</p><p><b>  3 輸出窗口</b></p><p>  輸出窗口位于整個主窗口的下方,主要用于顯示代碼調(diào)試和運行中的相關信息,在這里可以看到編譯程序的進展說明、警告以及出錯信息;在逐步編譯代碼時,輸出窗口是

65、Visual C++調(diào)試程序顯示所有變量當前值的地方,當關閉輸出窗口后,它會在Visual C++需要顯示有關信息時自動打開。</p><p><b>  4 工具欄</b></p><p>  工具欄也是 IDE 的重要組成部分,主要列出了在代碼開發(fā)過程中經(jīng)常用到的一些功能。通常第一次運行Visual C++時,在菜單欄的下面有3 個工具欄,它們分別是:標準工具欄、

66、向導工具欄和調(diào)試工具欄。</p><p><b>  3.3 本章小結</b></p><p>  本章首先對數(shù)字圖像處理作了一個簡單的概述,介紹了數(shù)字圖像處理的特點、目的及其主要研究的內(nèi)容,對數(shù)字圖像處理有一個初步的認識;然后分析了用VC++語言進行軟件開發(fā)的優(yōu)勢;最后對要使用的集成開發(fā)環(huán)境VC++6.0 進行了大致的介紹,以便于后面的使用。</p>

67、<p>  第四章 算法分析與描述</p><p>  圖像銳化處理的目的是為了使圖像的邊緣。輪廓線以及圖像的細節(jié)變得清晰。經(jīng)過平滑處理的圖像變得模糊的根本原因是圖像受到了平均或積分運算,因此對其進行逆運算(微分運算)就可以使圖像變得清晰。為了要把圖像中間任何方向延伸的邊緣和輪廓線變得清晰,必須選擇那些不具備空間方向性的和具有旋轉不變的線性微分算子。最基本的一類邊緣檢測算子是微分類算子。包括: Sobe

68、l算子、Robel梯度算子、Prewitt邊緣檢測算子、Laplacian算子等。</p><p>  從頻率域來考慮,圖形模糊的實質是因為其高頻分量被衰減,因此可以用高通濾波器來使圖像變得清晰。這里介紹3種常用的頻域高通濾波器,分別是理想高通濾波器(IHPF)、巴特沃思高通濾波器(BHPE)。</p><p>  4.1 空域微分銳化方法</p><p>  圖像

69、的模糊相當于圖像被平均或被積分,為實現(xiàn)圖像的銳化,必須用它的反運算“微分”,加強高頻分量的作用,從而使圖像輪廓清晰。由于模糊圖像的特征(如邊沿的走向等)各不相同,要進行銳化,應該采用各向同性、具有旋轉不變的線性微分算子。</p><p>  圖像處理中最常用的微分方法是求梯度。對于圖像f(x,y),它所在的梯度是一個矢量,定義為</p><p>  點(x,y)梯度的幅度為梯度的模,即&l

70、t;/p><p>  對數(shù)字圖像用微分運算不方便,一般用差分來近似。常用的梯度差分有:</p><p>  為了運算簡便,可以簡化為</p><p>  或者利用Roberts 梯度算子</p><p>  Roberts 算子也可以簡化為</p><p>  常用的梯度算子還有Laplacian 算子。Lapalacia

71、n 算子是仿效屬性上的,它是用二階差分實現(xiàn)的。</p><p>  用模板算子來表示為:</p><p>  也可以推廣Laplacian 算子,考慮進對角線方向,這樣它就是一個8 鄰域的算子,其模板為</p><p>  Laplacian 算子有兩個缺點,一個是邊沿的方向被丟失,另一個是Laplacian 算子為二階差分,雙倍加強了圖中的噪聲影響。優(yōu)點是各向同性

72、,即旋轉不變。</p><p>  梯度算子一旦算出后,就可以根據(jù)不同的需要生成不同的梯度增強圖像。</p><p>  最簡單的就是用該點的梯度幅度代替此點的灰度。此方法的缺點是增強的圖像僅僅顯示灰度變換比較陡峭的邊沿輪廓,而灰度變化比較平緩或者比較均勻的地方則呈現(xiàn)黑色。</p><p>  人們又提出了一些改進的方法,例如</p><p>

73、;  其中T 是一個非負的閾值。適當?shù)倪x取T,即可使明顯的邊沿輪廓得到突出,并且不會破壞原來灰度變換比較平緩的背景。</p><p>  4.1.1拉普拉斯微分算子函數(shù)</p><p>  拉式算子是一個刻畫圖像灰度的二階商算子,它是點、線、邊界提取算子,亦稱為邊界提取算子。通常圖像和對他實施拉式算子后的結果組合后產(chǎn)生一個銳化圖像。拉式算子用來改善因擴散效應的模糊特別有效,因為它符合降制模

74、型。擴散效應是成像過程中經(jīng)常發(fā)生的現(xiàn)象。</p><p>  最簡單的二階各向同性微分算子是拉普拉斯微分算子,具有旋轉不變性。二維圖像f(x,y)的拉普拉斯微分算子定義為:</p><p>  寫成模板系數(shù)形式形式即為Laplacian算子:</p><p>  其上形式為離散拉普拉斯算子的模板,另外還有擴展模板,表示如下:</p><p>

75、  從模板形式容易看出,如果在圖像中一個較暗的區(qū)域中出現(xiàn)了一個亮點,那么用拉普拉斯運算就會使這個亮點變得更亮。因為圖像中的邊緣就是那些灰度發(fā)生跳變的區(qū)域,所以拉普拉斯銳化模板在邊緣檢測中很有用。一般增強技術對于陡峭的邊緣和緩慢變化的邊緣很難確定其邊緣線的位置。但此算子卻可用二次微分正峰和負峰之間的過零點來確定,對孤立點或端點更為敏感,因此特別適用于以突出圖像中的孤立點、孤立線或線端點為目的的場合。同梯度算子一樣,拉普拉斯算子也會增強圖像

76、中的噪聲,有時用拉普拉斯算子進行邊緣檢測時,可將圖像先進行平滑處理。</p><p>  laplace算子是與方向無光的各向同性邊緣檢測算子,若只關心邊緣點的位置而不顧其周圍的實際灰度差時,一般選擇該算子進行檢測.特點:各向同性,線性和位移是不變的,對線性和孤立點檢測效果好,但邊緣方向信息丟失,常產(chǎn)生雙像素的邊緣,對噪聲有雙倍的加強作用。</p><p>  4.1.2 Roberts交

77、叉微分算子函數(shù)</p><p>  Roberts算子模板是一個2×2的模板,左上角的是當前待處理像素f(x.y),則交叉微分算子定義如下:</p><p><b>  其模板可以表示為:</b></p><p><b>  ,</b></p><p>  例如:已知原始圖像F,求:用Ro

78、berts交叉微分算子的處理結果。</p><p>  4.1.3 Prewitt微分算子函數(shù)(平均差分法)</p><p>  Prewitt微分算子的思路與Sobel微分算子的思路類似,是在一個奇數(shù)大小的模板中定義其微分運算。</p><p>  Priwitt微分算子定義如下:</p><p>  因為平均能減少或消除噪聲,Prewit

79、t梯度算子法就是先求平均,再求差分來求梯度。水平和垂直梯度模板分別為:</p><p>  利用檢測模板可求得水平和垂直方向的梯度,再通過梯度合成和邊緣點判定,就可得到平均差分法的檢測結果。</p><p>  prewitt算子為在檢測邊緣的同時減少噪聲的影響,從加大邊緣檢測算子的模板大小出發(fā),由2*2擴大到3*3來計算差分算子,采用prewitt算子能檢測到邊緣點,還可以抑制噪聲。&l

80、t;/p><p>  4.1.4 Sobel微分算子函數(shù)(加權平均差分法)</p><p>  Sobel算子具有一定的噪聲抑制能力,在檢測階躍邊緣時得到的邊緣寬度至少為二像素,它不依賴于邊緣方向的二階微分算子,是一個標準量而不是向量,具有旋轉不變即各向同性的性質。在圖像處理中常被用于提取圖像的邊緣。Sobel算子是典型的基于一階導數(shù)的邊緣檢測算子,由于該算子中引入了類似局部平均的運算,因此對

81、噪聲具有平滑作用,能很好的消除噪聲的影響。Sobel算子包含兩組3x3的矩陣,分別為橫向及縱向模板,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。</p><p>  Sobel微分算子定義如下:</p><p><b>  (式1)</b></p><p><b> ?。ㄊ?) </b></p>

82、;<p>  如果用圖像處理的模板來表示,則有:</p><p><b> ?。ㄊ?)</b></p><p>  下面以一個簡單的例子來體會該算法。設原圖像為</p><p>  對中模板罩不住的地方其處理結果令為0,其它的像素一次按照式(式1)進行計算。例如,對的模板下的圖像子塊為:</p><p>&

83、lt;b>  計算結果為</b></p><p><b>  最終處理結果為</b></p><p>  單獨使用Sobel算子做邊緣檢測,邊緣定位精度不高,有時還可能對非邊緣像素的響應大于某些邊緣處的響應或者響應差別不是很大,造成漏檢或誤檢,但是它對噪聲具有較好的魯棒性。</p><p>  Prewitt算子和Sobel算

84、子提取邊緣的結果差不多。在提取邊緣的同時它對噪聲具有平滑作用,能夠抑制一定的噪聲。由于Prewitt邊緣檢測算子是通過八個方向模板對圖像進行卷積運算,因此運算量比較大。</p><p>  sobel算子在prewitt算子基礎上能檢測邊緣點,且能進一步抑制噪聲的影響,但檢測的邊緣較寬。梯度算子和laplacian算子都對噪聲敏感,因此一般用它們檢測邊緣前要先對圖像進行平滑。</p><p&g

85、t;  4.2 頻域高通濾波銳化方法</p><p>  這里所講的高通濾波是指頻域的高通濾波,也是圖像銳化處理中常用的一種方法。圖形中的邊緣和線條與圖像頻譜中的高頻分量相對應,因此可以通過高通濾波的方法,使低頻分量得到抑制,從而達到增強高頻分量,使圖像的邊緣或線條變得清晰的目的。其數(shù)學表達式。</p><p>  這里G(u,v)為高通濾波器處理后的圖像;H(u,v)為頻域高通濾波器的傳

86、遞函數(shù);F(u,v)為原始圖像f(u,v)的傅氏變換。</p><p>  4.2.1理想高通濾波器</p><p>  其傳遞函數(shù)H(u,v)可以表示為:</p><p>  為截止頻率,根據(jù)需要選擇。是頻率平面上點(u,v)到原點(0,0)的距離。</p><p>  4.2.2巴特沃思高通濾波器</p><p>

87、;  n階巴特沃思高通濾波器的傳遞函數(shù)H(u,v)可以表示為:</p><p>  為截止頻率,n為級數(shù)。</p><p>  4.2.3指數(shù)高通濾波器</p><p>  指數(shù)高通濾波器的傳遞函數(shù)H(u,v)可以表示為:</p><p>  為截止頻率,n為級數(shù)。</p><p>  第五章 詳細設計過程</p

88、><p>  圖像銳化處理源圖像如下:</p><p><b>  圖5-1源圖像</b></p><p>  5.1微分算子圖像銳化編程實現(xiàn)說明</p><p>  利用前面介紹的微分算子就可以輕松地實現(xiàn)空域中圖像銳化。在這里,我們利用Lapacian 算子來進行示例。</p><p>  下面的函

89、數(shù)LinearSharp()利用Lapacian 算子實現(xiàn)了圖像的銳化,其具體代碼實現(xiàn)如下所示。</p><p>  /*************************************************************************</p><p><b>  *</b></p><p><b>  

90、* \函數(shù)名稱:</b></p><p>  * LinearSharpen()</p><p><b>  *</b></p><p><b>  * \輸入?yún)?shù):</b></p><p>  * LPBYTE lpImage - 指向圖像數(shù)據(jù)得指針</p><p&

91、gt;  * int nWidth - 圖像數(shù)據(jù)寬度</p><p>  * int nHeight - 圖像數(shù)據(jù)高度</p><p><b>  *</b></p><p><b>  * \返回值:</b></p><p><b>  * 無</b></p>

92、<p><b>  *</b></p><p><b>  * \說明:</b></p><p>  * 線性銳化圖像增強</p><p>  * 本函數(shù)采用拉普拉斯算子對圖像進行線性銳化</p><p>  * 在原來圖像上加上拉普拉斯算子銳化的信息</p><p&g

93、t;<b>  *</b></p><p>  *************************************************************************</p><p><b>  */</b></p><p>  void LinearSharpen (LPBYTE lpImag

94、e, int nWidth, int nHeight)</p><p><b>  {</b></p><p>  // 遍歷圖像的縱坐標</p><p><b>  int y;</b></p><p>  // 遍歷圖像的橫坐標</p><p><b>  in

95、t x;</b></p><p>  double * pdGrad ;</p><p>  pdGrad = new double[nWidth*nHeight];</p><p><b>  // 初始化為0</b></p><p>  memset(pdGrad, 0, nWidth*nHeight*s

96、izeof(double)) ;</p><p><b>  // 設置模板系數(shù)</b></p><p>  static int nWeight[3][3] ;</p><p>  nWeight[0][0] = -1 ;</p><p>  nWeight[0][1] = -1 ;</p><p&

97、gt;  nWeight[0][2] = -1 ;</p><p>  nWeight[1][0] = -1 ;</p><p>  nWeight[1][1] = 8 ;</p><p>  nWeight[1][2] = -1 ;</p><p>  nWeight[2][0] = -1 ;</p><p>  n

98、Weight[2][1] = -1 ;</p><p>  nWeight[2][2] = -1 ;</p><p>  //這個變量用來表示Laplacian 算子像素值</p><p>  int nTmp[3][3];</p><p><b>  // 臨時變量</b></p><p>  

99、double dGrad;</p><p>  // 模板循環(huán)控制變量</p><p><b>  int yy ;</b></p><p><b>  int xx ;</b></p><p>  for(y=1; y<nHeight-1 ; y++ )</p><p&g

100、t;  for(x=1 ; x<nWidth-1 ; x++ )</p><p><b>  {</b></p><p>  dGrad = 0 ;</p><p>  // Laplacian 算子需要的各點像素值</p><p><b>  // 模板第一行</b></p>

101、<p>  nTmp[0][0] = lpImage[(y-1)*nWidth + x - 1 ] ;</p><p>  nTmp[0][1] = lpImage[(y-1)*nWidth + x ] ;</p><p>  nTmp[0][2] = lpImage[(y-1)*nWidth + x + 1 ] ;</p><p><b>  

102、// 模板第二行</b></p><p>  nTmp[1][0] = lpImage[y*nWidth + x - 1 ] ;</p><p>  nTmp[1][1] = lpImage[y*nWidth + x ] ;</p><p>  nTmp[1][2] = lpImage[y*nWidth + x + 1 ] ;</p>&l

103、t;p><b>  // 模板第三行</b></p><p>  nTmp[2][0] = lpImage[(y+1)*nWidth + x - 1 ] ;</p><p>  nTmp[2][1] = lpImage[(y+1)*nWidth + x ] ;</p><p>  nTmp[2][2] = lpImage[(y+1)*nW

104、idth + x + 1 ] ;</p><p><b>  // 計算梯度</b></p><p>  for(yy=0; yy<3; yy++)</p><p>  for(xx=0; xx<3; xx++)</p><p><b>  {</b></p><p&

105、gt;  dGrad += nTmp[yy][xx] * nWeight[yy][xx] ;</p><p><b>  }</b></p><p>  // 梯度值寫入內(nèi)存</p><p>  *(pdGrad+y*nWidth+x)=dGrad;</p><p><b>  }</b></

106、p><p>  for(y=0; y<nHeight ; y++ )</p><p><b>  {</b></p><p>  for(x=0 ; x<nWidth ; x++ )</p><p><b>  {</b></p><p>  lpImage[y*nW

107、idth+x] = (unsigned char)max(0,min(255,(lpImage[y*nWidth+x]</p><p>  + (int)pdGrad[y*nWidth+x]) ));</p><p><b>  }</b></p><p><b>  }</b></p><p> 

108、 delete []pdGrad ;</p><p>  pdGrad = NULL ;</p><p><b>  }</b></p><p>  實現(xiàn)函數(shù)LinearSharp()后,在菜單“圖像增強”添加菜單項“圖像銳化”。</p><p>  向類CimageProcessingView 中添加該菜單的點擊事件處

109、理程序,其具體代碼如下所示。</p><p>  /*************************************************************************</p><p><b>  *</b></p><p><b>  * \函數(shù)名稱:</b></p><

110、p>  * OnEnhanceSharp()</p><p><b>  *</b></p><p><b>  * \輸入?yún)?shù):</b></p><p><b>  * 無</b></p><p><b>  *</b></p>&l

111、t;p><b>  * \返回值:</b></p><p><b>  * 無</b></p><p><b>  *</b></p><p><b>  * \說明:</b></p><p>  * 該函數(shù)利用Laplacian 算子實現(xiàn)圖像的銳化

112、</p><p><b>  *</b></p><p>  *************************************************************************</p><p><b>  */</b></p><p>  void CImagePro

113、cessingView::OnEnhanceSharp()</p><p><b>  {</b></p><p><b>  //更改光標形狀</b></p><p>  BeginWaitCursor();</p><p>  CImageProcessingDoc * pDoc = (CIma

114、geProcessingDoc *)this->GetDocument();</p><p>  CDib * pDib = pDoc->m_pDibInit;</p><p>  LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;</p><p>  // 判斷是否是8-bpp 位圖</p><

115、p>  if (lpBMIH->biBitCount != 8)</p><p><b>  {</b></p><p><b>  // 提示用戶</b></p><p>  MessageBox("目前只支持256 色位圖的圖像分割!", "系統(tǒng)提示" ,</p

溫馨提示

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

評論

0/150

提交評論