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