版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于VC++的數(shù)字圖像處理軟件的開發(fā)摘要:隨著科學(xué)技術(shù)的飛速發(fā)展,計算機(jī)應(yīng)用領(lǐng)域的不斷開拓,一種全新的圖像處理方法——數(shù)字圖像處理技術(shù)應(yīng)運而生,即利用計算機(jī)設(shè)備將圖像轉(zhuǎn)變成數(shù)字信息來進(jìn)行保存、處理、傳輸和顯示。目前,數(shù)字圖像處理技術(shù)被廣泛應(yīng)用在眾多的領(lǐng)域,而且其處理精度比較高,所以,開發(fā)一個好的數(shù)字圖像處理軟件至關(guān)重要。本文設(shè)計了一個基于VC++的數(shù)字圖像處理系統(tǒng),系統(tǒng)中包括圖像處理技術(shù)的各個方面,涵蓋了數(shù)字圖像處理領(lǐng)域的大部分算法,并對相應(yīng)的算法進(jìn)行了實現(xiàn)。本系統(tǒng)具有很強的可移植性和擴(kuò)展性。本文以BMP文件的讀寫為切入點,相繼介紹了圖像處理領(lǐng)域的大部分算法:圖像幾何變換、正交變換、圖像增強、邊緣檢測,并詳細(xì)論述了各個算法的實現(xiàn)過程,對主要算法的實際應(yīng)用效果進(jìn)行了分析。實驗結(jié)果表明系統(tǒng)能夠滿足圖像處理的基本要求,而且還可以針對不同的處理目的,靈活地對圖像處理算法進(jìn)行改進(jìn),從而選擇出最優(yōu)處理算法,達(dá)到期望的處理效果。為了方便用戶觀察處理結(jié)果,更好的理解算法,本文設(shè)計了一個友好的圖形用戶界面,此界面操作簡單,使用方便,為數(shù)字圖像處理處理算法的研究人員提供了一個很好的圖像處理平臺。關(guān)鍵詞:數(shù)字圖像處理,VC++,BMP前言圖像是人類獲取信息、表達(dá)信息和傳遞信息的重要手段。人出生以后第一次睜開眼睛,首先接收的就是各種各樣的圖像信息,因此有人說,圖像與生俱來是人類生活中最直觀、最豐富和最生動的信息表示形式。國外學(xué)者曾做過統(tǒng)計,人們從外界所獲取的信息有70%以上來自于視覺攝取的圖像,與文字或者語言信息相比,圖像包含的信息量更大,具有更廣泛的適用性和更高的使用效率。在當(dāng)今科學(xué)技術(shù)迅速發(fā)展的時代,人們越來越多的利用圖像信息來認(rèn)識和判斷事物,解決實際問題。既然圖像處理如此重要,那么開發(fā)一個好的數(shù)字圖像處理軟件也是十分必要的。MATLAB軟件雖然能夠?qū)?shù)字圖像進(jìn)行方便的處理,并且其制作的界面也比較友好,但是由于其過于龐大,移植性和速度方面也很難與VC++相比。另外,由于商業(yè)化的VC++數(shù)字圖像處理軟件價格比較昂貴,而且不便于二次開發(fā),所以自己利用VC++集成開發(fā)環(huán)境開發(fā)一套簡單的數(shù)字圖像處理軟件系統(tǒng),本系統(tǒng)界面友好,不但能對現(xiàn)代光學(xué)測量中散斑和條紋圖像進(jìn)行良好的處理,而且還能夠滿足一些簡單的數(shù)字圖像處理的需求,為以后的學(xué)習(xí)和研究奠定了基礎(chǔ)。軟件界面設(shè)計用戶界面是指用戶與計算機(jī)之間進(jìn)行交互通信聯(lián)系的平臺,并出現(xiàn)了多種形式的人機(jī)交互方式,從早期計算機(jī)使用的命令行的交互方式到以圖形界面(GUI)為主的交互形式。GUI的廣泛應(yīng)用極大的方便了非專業(yè)用戶的使用,人們不再需要死記硬背大量的命令,取而代之的是可用通過窗口、菜單、按鈕等方式來方便的進(jìn)行操作。圖形界面給用戶帶來了操作和控制的方便與靈活性,所以它在人機(jī)交互方式中占主導(dǎo)地位??紤]到圖像處理操作的簡單方便,本系統(tǒng)采用多重文檔界面(MDI),它的特點是允許多個框架窗口存在,每次能創(chuàng)建和擁有多個文檔對象,也允許打開多個文檔。根據(jù)Windows的界面標(biāo)準(zhǔn)和本軟件的功能設(shè)計,軟件的主菜單中包括文件、編輯、查看、窗口、幾何變換、點運算、圖像增強、形態(tài)學(xué)變換、邊緣與輪廓、幫助等菜單項,本系統(tǒng)軟件界面如圖2-1所示。每一個主菜單相應(yīng)的會有幾個子菜單,同時,通過對話框操作可實現(xiàn)圖像的交互處理。下面我們以邊緣與輪廓處理中的輪廓提取為例,通過主菜單、子菜單、對話框來實現(xiàn)圖像的輪廓提取操作。圖2-1軟件界面示意圖圖像處理軟件設(shè)計軟件本身功能包括五個模塊,分別是:幾何變換模塊、點運算模塊、圖像增強模塊、形態(tài)學(xué)變換模塊、邊緣與輪廓模塊。幾何變換模塊包括:圖像旋轉(zhuǎn)、圖像縮放、圖像轉(zhuǎn)置、水平鏡像、垂直鏡像。點運算模塊包括:灰度化、灰度直方圖。圖像增強模塊包括:圖像平滑、梯度銳化、拉普拉斯銳化。形態(tài)學(xué)變換模塊包括:腐蝕、膨脹、開運算、閉運算。邊緣與輪廓模塊包括:邊緣檢測、輪廓提取、輪廓跟蹤。功能結(jié)構(gòu)圖如圖3-1。本文將就重要部分進(jìn)行介紹。圖3-1軟件功能結(jié)構(gòu)圖3.1VC++圖像格式3.1.1位圖結(jié)構(gòu)BMP位圖文件格式是Windows系統(tǒng)交換圖像數(shù)據(jù)的一種標(biāo)準(zhǔn)圖像文件存儲格式,在Windows環(huán)境下運行的所有圖像處理軟件都支持這種格式。Windows3.0以前的BMP位圖文件格式與顯示設(shè)備有關(guān),因此把它稱為DDB文件格式,Windows3.0以后的BMP位圖格式與顯示設(shè)備無關(guān),因此把它稱為DIB文件格式,目的是為了讓W(xué)indows能夠在任何類型的顯示設(shè)備上顯示BMP位圖文件。一個BMP文件由4個部分組成:位圖文件頭、位圖信息頭、調(diào)色板和像素數(shù)據(jù)。如圖3-2所示。圖3-2BMP圖像文件結(jié)構(gòu)示意圖1.BMP文件頭BMP文件頭數(shù)據(jù)結(jié)構(gòu)含有BMP文件的類型、文件大小和位圖起始位置等信息。其定義如下:typedefstructtagBITMAPFILEHEADER{WORDbfTypeDWORDbfSizeWORDbfReserved1WORDbfReserved2DWORDbfOffBits}BITMAPFILEHEADER;參數(shù)bfType指定位圖文件類型的識別代碼,例如BMP為BM等,該參數(shù)必須為BM。參數(shù)bfSize指定位圖文件的大小,以字節(jié)為單位。參數(shù)bfReserved1和bfReserved2為保留字,需要將其設(shè)為0。參數(shù)bfOffBits指定位圖數(shù)據(jù)的起始位置,以相對于位圖文件頭的偏移量并以字節(jié)為單位來表示。2.位圖信息頭BMP位圖信息頭包含了單個像素所用字節(jié)數(shù)以及描述顏色的格式,此外還包括位圖的寬度、高度、目標(biāo)設(shè)備的位平面數(shù)以及圖像的壓縮格式。第二部分為位圖信息頭BITMAPINFOHEADER,也是一個結(jié)構(gòu),該結(jié)構(gòu)的定義如下:typedefstructtagBITMAPINFOHEADER{DWORDbiSizeLONGbiWidthLONGbiHeightWORDbiPlanesWORDbiBitCountDWORDbiCompressionDWORDbiSizeImageLONGbiXPelsPerMeterLONGbiYPelsPerMeterDWORDbiClrUsedDWORDbiClrImportant}BITMAPINFOHEADER;參數(shù)biSize指定結(jié)構(gòu)的字節(jié)數(shù)。參數(shù)biWidth和biHeight指定位圖的寬度和高度,以像素為單位。參數(shù)biPl(wèi)anes表示目標(biāo)設(shè)備的級別,必須是1。參數(shù)biBitCount指定每個像素所需的位數(shù),其值必須為1(黑白二色圖)、4(16色圖)、8(256色)、24(真彩色圖)。參數(shù)biCompression指定位圖壓縮類型,其值必須是0,1或2,其中0為不壓縮,1代表BI_RLE8壓縮類型,2為BI_RLE4壓縮類型。參數(shù)biSizeImage指定實際的位圖數(shù)據(jù)占用的字節(jié)數(shù)。3.調(diào)色版調(diào)色板實際上定義為是一個數(shù)組,用于說明位圖中的顏色,它包含biClrUsed個元素,每個元素代表一種顏色,并由一個RGBQUAD類型的結(jié)構(gòu)來表示,RGBQUAD結(jié)構(gòu)的定義如下:typedefstructtagRGBQUAD{BYTErgbBlue//該顏色的藍(lán)色分量BYTErgbGreen//該顏色的綠色分量BYTErgbRed//該顏色的紅色分量BYTErgbReserved//保留值}RGBQUAD;調(diào)色板中RGBQUAD結(jié)構(gòu)數(shù)據(jù)的個數(shù)由位圖信息頭中參數(shù)biBitCount來確定。4.位圖數(shù)據(jù)位圖數(shù)據(jù)記錄了位圖的每一個像素值,記錄順序在掃描行內(nèi)是從左到右,掃描行之間從上到下,Windows規(guī)定一個掃描行所占的字節(jié)數(shù)必須是4的倍數(shù),不足的以0填充。位圖的一個像素值所占的字節(jié)數(shù)如下:當(dāng)biBitCount=1時,8個像素占一個字節(jié)。當(dāng)biBitCount=4時,2個像素占一個字節(jié)。當(dāng)biBitCount=8時,1個像素占一個字節(jié)。當(dāng)biBitCount=24時,1個像素占3個字節(jié)。3.1.2設(shè)備無關(guān)位圖Windows系統(tǒng)使用的位圖常分為設(shè)備相關(guān)位圖(DDB)和設(shè)備無關(guān)位圖(DIB)兩種。其中DDB依賴于具體的圖像輸出設(shè)備,它只能存在于視頻內(nèi)存或系統(tǒng)內(nèi)存中,其顏色模式必須與輸出設(shè)備相一致。因此我們不會把DDB圖像存儲成文件,而是更多地使用DIB。DIB不依賴于具體輸出設(shè)備,與所有顯示設(shè)備兼容,因為DIB的顏色模式與設(shè)備無關(guān),而且它自帶顏色信息。DIB的設(shè)備無關(guān)性使得其可以被用來永久地保存圖像,因此DIB既可以保存在內(nèi)存中,也可以以文件形式保存在磁盤上。DIB通常以BMP為文件擴(kuò)展名的形式保存在磁盤中的。3.2幾何變換模塊圖像幾何變換又稱為圖像空間變換,它是數(shù)字圖像處理的重要內(nèi)容之一。通過幾何變換,可以根據(jù)應(yīng)用的需要使原圖像產(chǎn)生大小、形狀和位置等各方面的變化。從變換性質(zhì)來分,幾何變換可以分為圖像的旋轉(zhuǎn)、縮放、轉(zhuǎn)置、鏡像、平移等等。在這里我們只介紹基本的圖像的旋轉(zhuǎn)。3.2.1圖像的旋轉(zhuǎn)圖像的旋轉(zhuǎn)變換是幾何變換中研究的重要內(nèi)容之一。一般情況下,圖像的旋轉(zhuǎn)是指將圖像圍繞某一指定點旋轉(zhuǎn)一定的角度。旋轉(zhuǎn)通常也會改變圖像的大小,和圖像平移一樣,可以把轉(zhuǎn)出顯示區(qū)域的圖像截去,也可以改變輸出圖形的大小以擴(kuò)展顯示范圍。以任意點為中心的圖像旋轉(zhuǎn)即是將圖像平移和旋轉(zhuǎn)操作相結(jié)合,先進(jìn)行坐標(biāo)系平移,再以新的坐標(biāo)原點為中心旋轉(zhuǎn),然后將新原點平移回原坐標(biāo)系的原點。這一過程可分為以3個步驟:(1)將坐標(biāo)系Ⅰ變成Ⅱ。(2)將該點順時針旋轉(zhuǎn)θ角。(3)將坐標(biāo)系Ⅱ變回Ⅰ。下面我們以圍繞圖像中心的旋轉(zhuǎn)為例,具體說明上述的變換過程。坐標(biāo)系Ⅰ以圖像左上角點為坐標(biāo)原點,向右為x軸正方向,向下為y軸正方向;而坐標(biāo)系Ⅱ是以圖像的中心為原點,向右為x軸正方向,向上為y軸正方向。如圖3-3所示。圖3-3圖像旋轉(zhuǎn)示意圖?本軟件進(jìn)行圖像旋轉(zhuǎn)功能如圖3-4:圖3-4圖像旋轉(zhuǎn)? 3.3點運算模塊 點運算模塊包括圖片的灰度化、灰度直方圖功能。這里只介紹灰度直方圖功能。3.3.1灰度直方圖 灰度直方圖是數(shù)字圖像處理中一個最簡單、最有用的工具,它描述了一幅圖像的灰度級內(nèi)容。任何一幅圖像的直方圖都包含了客觀的信息,某些類型的圖像還可由其直方圖完全描述?;叶戎狈綀D是灰度值的函數(shù),描述的是圖像中具有該灰度值的像素的個數(shù)。橫坐標(biāo)表示像素的灰度級別;縱坐標(biāo)是該灰度出現(xiàn)的頻率(像素的個數(shù))。本軟件對圖像的灰度直方圖統(tǒng)計效果如圖3-5:圖3-5灰度直方圖3.4形態(tài)學(xué)變換模塊3.4.1腐蝕把結(jié)構(gòu)元素B平移a后得到Ba,若Ba包含于X,我們記下這個a點,所有滿足上述條件的a點組成的集合稱做X被B腐蝕的結(jié)果。用公式表示為:E(X)={a|BaX}=XB,如圖3-6所示。圖3-6
腐蝕的示意圖圖3-6中X是被處理的對象,B是結(jié)構(gòu)元素。不難知道,對于任意一個在陰影部分的點a,Ba包含于X,所以X被B腐蝕的結(jié)果就是那個陰影部分。本軟件進(jìn)行腐蝕的效果如下,圖3-7為原圖,圖3-8為腐蝕后的圖片圖3-7原圖圖3-8腐蝕后的圖片3.4.2膨脹膨脹可以看做是腐蝕的對偶運算,其定義是:把結(jié)構(gòu)元素B平移a后得到Ba,若Ba擊中X,我們記下這個a點。所有滿足上述條件的a點組成的集合稱做X被B膨脹的結(jié)果。用公式表示為:D(X)={a|Ba↑X}=XB,如圖6.13所示。圖3-9中X是被處理的對象,B是結(jié)構(gòu)元素,不難知道,對于任意一個在陰影部分的點a,Ba擊中X,所以X被B膨脹的結(jié)果就是那個陰影部分。圖3-9
膨脹的示意圖本軟件對圖3-7進(jìn)行膨脹后,效果如圖3-10圖3-10膨脹后的圖片3.5邊緣與輪廓模塊3.5.1邊緣檢測?邊緣總是以強度突變的形式出現(xiàn),可以定義為圖像局部特性的不連續(xù)性,如灰度的突變。紋理結(jié)構(gòu)的突變等。邊緣常常意味著一個區(qū)域的終結(jié)和另一個區(qū)域的開始。對于邊緣的檢測常常借助于空間微分算子進(jìn)行,通過將其與圖像卷積完成。邊緣檢測室基于物體與背景之間在灰度(或紋理)特性上存在著某種不連續(xù)性(或突變性)進(jìn)行的一種檢測技術(shù)。兩個具有不同灰度值的相鄰區(qū)域之間總存在灰度邊緣,而這正是灰度值不連續(xù)的結(jié)果,這種不連續(xù)可以利用求一階和二階導(dǎo)數(shù)檢測到。這些邊緣檢測器對邊緣灰度值過渡比較尖銳且噪聲較小等不太復(fù)雜的圖像可以取得較好的效果。但對于邊緣復(fù)雜的圖像效果不太理想,如邊緣模糊、邊緣丟失、邊緣不連續(xù)等。噪聲的存在使基于導(dǎo)數(shù)的邊緣檢測方法效果明顯降低,在噪聲較大的情況下所用的邊緣檢測算子通常都是先對圖像進(jìn)行適當(dāng)?shù)钠交?抑制噪聲,然后求導(dǎo)數(shù),或者對圖像進(jìn)行局部擬合,再用擬合光滑函數(shù)的導(dǎo)數(shù)來代替直接的數(shù)值導(dǎo)數(shù),如Canny算子等。在未來的研究中,用于提取初始邊緣點的自適應(yīng)閾值選取、用于圖像層次分割的更大區(qū)域的選取以及如何確認(rèn)重要邊緣以去除假邊緣將變的非常重要。在邊沿檢測中,常用的一種模板是Sobel算子。Sobel算子有兩個,一個是檢測水平邊沿的,另一個是檢測垂直平邊沿的。下面是傳統(tǒng)模板與Sobel算子水平與垂直邊沿檢測模板。與傳統(tǒng)模板相比,Sobel算子對于象素的位置的影響做了加權(quán),因此效果更好。(a)傳統(tǒng)水平(b)傳統(tǒng)垂直(c)Sobel水平(d)Sobel垂直圖3-11Sobel算子模板Sobel算子另一種形式是各向同性Sobel(IsotropicSobel)算子,也有兩個,一個是檢測水平邊沿的,另一個是檢測垂直平邊沿的。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測不同方向的邊沿時梯度的幅度一致。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新媒體運營活動策劃方案
- 內(nèi)部控制成果培訓(xùn)
- 腹部外科術(shù)后早期活動
- 食藥局餐飲監(jiān)管培訓(xùn)
- 數(shù)控車削加工技術(shù) 課件 項目八 內(nèi)孔切削工藝及編程
- 山東省青島第十九中學(xué)2024-2025學(xué)年高一上學(xué)期10月月考地理試題(含答案)
- 河北省保定市唐縣2024-2025學(xué)年一年級上學(xué)期期中數(shù)學(xué)試題
- 2024-2025學(xué)年黑龍江省哈爾濱市道里區(qū)松南學(xué)校九年級(上)月考物理試卷(10月份)(含答案)
- 高中語文第2單元良知與悲憫群文閱讀二良知與悲憫課件新人教版必修下冊
- 高中語文第1單元論語蚜第7課好仁不好學(xué)其蔽也愚課件新人教版選修先秦諸子蚜
- 堆載預(yù)壓施工工藝
- 金屬探測器檢測與使用標(biāo)準(zhǔn)操作規(guī)范SOP
- 《項鏈》課本劇
- 電梯井操作平臺22548
- 開料檢驗規(guī)范
- 中考數(shù)學(xué)新定義題型專題復(fù)習(xí)
- 石工安全技術(shù)操作規(guī)程
- 百種英語課堂互動小游戲(課堂PPT)
- 《國際采購》ppt課件
- POCT的質(zhì)量控制(共40頁).ppt
- 人教版小學(xué)三年級加減法豎式計算題
評論
0/150
提交評論