資源描述:
《vc數(shù)字圖像處理編程講座》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VC數(shù)字圖像處理編程講座劉濤前言數(shù)字圖像處理技術(shù)與理論是計算機應(yīng)用的一個重要領(lǐng)域,許多工程應(yīng)用都涉及到圖像處理。“圖”是物體透射光或反射光的分布,“像”是人的視覺系統(tǒng)對圖的接收在大腦中形成的印象或認識。圖像是兩者的結(jié)合。人類獲取外界信息是靠聽覺、視覺、觸覺、嗅覺、味覺等,但絕大部分(約80%左右)來自視覺所接收的圖像信息。圖像處理就是對圖像信息進行加工處理,以滿足人的視覺心理和實際應(yīng)用的需要。簡單的說,依靠計算機對圖像進行各種目的的處理我們就稱之為數(shù)字圖像處理。早期的數(shù)字圖像處理的目的是以人為對象,為了滿足人的視覺效果而改善圖像的質(zhì)量,處理過程中輸入的是質(zhì)量差的圖像
2、,輸出的是質(zhì)量好的圖像,常用的圖像處理方法有圖像增強、復原等。隨著計算機技術(shù)的發(fā)展,有一類圖像處理是以機器為對象,處理的目的是使機器能夠自動識別目標,這稱之為圖像的識別,因為這其中要牽涉到一些復雜的模式識別的理論,所以我們后續(xù)的講座只討論其中最基本的內(nèi)容。由于在許多實際應(yīng)用的編程中往往都要涉及到數(shù)字圖像處理,涉及到其中的一些算法,這也是許多編程愛好者感興趣的一個內(nèi)容,我們這個講座就是討論如何利用微軟的VisualC++開發(fā)工具來實現(xiàn)一些常用的數(shù)字圖像處理算法,論述了圖像處理的理論,同時給出了VC實現(xiàn)的源代碼。圖像處理技術(shù)博大精深,不僅需要有很強的數(shù)學功底,還需要熟練
3、掌握一門計算機語言,在當前流行的語言中,我個人覺的VisualC++這個開發(fā)平臺是圖像開發(fā)人員的首選工具。本講座只是起到拋磚引玉的作用,希望和廣大讀者共同交流。第一節(jié)圖像的文件格式要利用計算機對數(shù)字化圖像進行處理,首先要對圖像的文件格式要有清楚的認識,因為我們前面說過,自然界的圖像以模擬信號的形式存在,在用計算機進行處理以前,首先要數(shù)字化,比如攝像頭(CCD)攝取的信號在送往計算機處理前,一般情況下要經(jīng)過數(shù)模轉(zhuǎn)換,這個任務(wù)常常由圖像采集卡完成,它的輸出一般為裸圖的形式;如果用戶想要生成目標圖像文件,必須根據(jù)文件的格式做相應(yīng)的處理。隨著科技的發(fā)展,數(shù)碼像機、數(shù)碼攝像機
4、已經(jīng)進入尋常百姓家,我們可以利用這些設(shè)備作為圖像處理系統(tǒng)的輸入設(shè)備來為后續(xù)的圖像處理提供信息源。無論是什么設(shè)備,它總是提供按一定的圖像文件格式來提供信息,比較常用的有BMP格式、JPEG格式、GIF格式等等,所以我們在進行圖像處理以前,首先要對圖像的格式要有清晰的認識,只有在此基礎(chǔ)上才可以進行進一步的開發(fā)處理。在講述圖像文件格式前,先對圖像作一個簡單的分類。除了最簡單的圖像外,所有的圖像都有顏色,而單色圖像則是帶有顏色的圖像中比較簡單的格式,它一般由黑色區(qū)域和白色區(qū)域組成,可以用一個比特表示一個像素,“1”表示黑色,“0”表示白色,當然也可以倒過來表示,這種圖像稱之
5、為二值圖像。我們也可以用8個比特(一個字節(jié))表示一個像素,相當于把黑和白等分為256個級別,“0”表示為黑,“255”表示為白,該字節(jié)的數(shù)值表示相應(yīng)像素值的灰度值或亮度值,數(shù)值越接近“0”,對應(yīng)像素點越黑,相反,則對應(yīng)像素點越白,此種圖像我們一般稱之為灰度圖像。單色圖像和灰度圖像又統(tǒng)稱為黑白圖像,與之對應(yīng)存在著彩色圖像,這種圖像要復雜一些,表示圖像時,常用的圖像彩色模式有RGB模式、CMYK模式和HIS模式,一般情況下我們只使用RGB模式,R對應(yīng)紅色,G對應(yīng)綠色,B對應(yīng)藍色,它們統(tǒng)稱為三基色,這三中色彩的不同搭配,就可以搭配成各種現(xiàn)實中的色彩,此時彩色圖像的每一個像
6、素都需要3個樣本組成的一組數(shù)據(jù)表示,其中每個樣本用于表示該像素的一個基本顏色。對于現(xiàn)存的所有的圖像文件格式,我們在這里主要介紹BMP圖像文件格式,并且文件里的圖像數(shù)據(jù)是未壓縮的,因為圖像的數(shù)字化處理主要是對圖像中的各個像素進行相應(yīng)的處理,而未壓縮的BMP圖像中的像素數(shù)值正好與實際要處理的數(shù)字圖像相對應(yīng),這種格式的文件最合適我們對之進行數(shù)字化處理。請讀者記住,壓縮過的圖像是無法直接進行數(shù)字化處理的,如JPEG、GIF等格式的文件,此時首先要對圖像文件解壓縮,這就要涉及到一些比較復雜的壓縮算法。后續(xù)章節(jié)中我們將針對特殊的文件格式如何轉(zhuǎn)換為BMP格式的文件問題作專門的論述
7、,經(jīng)過轉(zhuǎn)換,我們就可以利用得到的未壓縮的BMP文件格式進行后續(xù)處理。對于JPEG、GIF等格式,由于涉及到壓縮算法,這要求讀者掌握一定的信息論方面的知識,如果展開的話,可以寫一本書,限于篇幅原因,我們只作一般性的講解,有興趣的朋友可以參考相關(guān)書籍資料。一、BMP文件結(jié)構(gòu)1.BMP文件組成BMP文件由文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)四部分組成。文件頭主要包含文件的大小、文件類型、圖像數(shù)據(jù)偏離文件頭的長度等信息;位圖信息頭包含圖像的尺寸信息、圖像用幾個比特數(shù)值來表示一個像素、圖像是否壓縮、圖像所用的顏色數(shù)等信息。顏色信息包含圖像所用到的顏色表,顯示圖像時需用到