基于VB6.0的數(shù)據(jù)提取軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)論文_第1頁
基于VB6.0的數(shù)據(jù)提取軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)論文_第2頁
基于VB6.0的數(shù)據(jù)提取軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)論文_第3頁
基于VB6.0的數(shù)據(jù)提取軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)論文_第4頁
基于VB6.0的數(shù)據(jù)提取軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 緒論20212021年o月a日11 本課題的研究背景及意義數(shù)字圖像處理(digital image processing)是通過計(jì)算機(jī)對圖像進(jìn)行去除噪聲、增強(qiáng)、復(fù)原、分割、提取特征等處理的方法和技術(shù)。數(shù)字圖像處理的產(chǎn)生和迅速發(fā)展主要受三個(gè)因素的影響:一是計(jì)算機(jī)的發(fā)展;二是數(shù)學(xué)的發(fā)展(特別是離散數(shù)學(xué)理論的創(chuàng)立和完善);三是廣泛的農(nóng)牧業(yè)、林業(yè)、環(huán)境、軍事、工業(yè)和醫(yī)學(xué)等方面的應(yīng)用需求的增長。數(shù)字圖像處理最早出現(xiàn)于20世紀(jì)50年代,當(dāng)時(shí)的電子計(jì)算機(jī)已經(jīng)發(fā)展到一定水平,人們開始利用計(jì)算機(jī)來處理圖形和圖像信息。數(shù)字圖像處理作為一門學(xué)科大約形成于20世紀(jì)60年代初期。早期的圖像處理的目的是改善圖像的質(zhì)量

2、,它以人為對象,以改善人的視覺效果為目的。圖像處理中,輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像,常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等。首次獲得實(shí)際成功應(yīng)用的是美國噴氣推進(jìn)實(shí)驗(yàn)室(jpl)。他們對航天探測器徘徊者7號在1964年發(fā)回的幾千張?jiān)虑蛘掌褂昧藞D像處理技術(shù),如幾何校正、灰度變換、去除噪聲等方法進(jìn)行處理,并考慮了太陽位置和月球環(huán)境的影響,由計(jì)算機(jī)成功地繪制出月球表面地圖,獲得了巨大的成功。隨后又對探測飛船發(fā)回的近十萬張照片進(jìn)行更為復(fù)雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類登月創(chuàng)舉奠定了堅(jiān)實(shí)的基礎(chǔ),也推動(dòng)了數(shù)字圖像處理這門學(xué)科的誕

3、生。在以后的宇航空間技術(shù),如對火星、土星等星球的探測研究中,數(shù)字圖像處理技術(shù)都發(fā)揮了巨大的作用。數(shù)字圖像處理取得的另一個(gè)巨大成就是在醫(yī)學(xué)上獲得的成果。1972年英國emi公司工程師housfield發(fā)明了用于頭顱診斷的x射線計(jì)算機(jī)斷層攝影裝置,也就是我們通常所說的ct(computer tomograph)。ct的基該方法是根據(jù)人的頭部截面的投影,經(jīng)計(jì)算機(jī)處理來重建截面圖像,稱為圖像重建。1975年emi公司又成功研制出全身用的ct裝置,獲得了人體各個(gè)部位鮮明清晰的斷層圖像。1979年,這項(xiàng)無損傷診斷技術(shù)獲得了諾貝爾獎(jiǎng),說明它對人類作出了劃時(shí)代的貢獻(xiàn)。與此同時(shí),圖像處理技術(shù)在許多應(yīng)用領(lǐng)域受到廣

4、泛重視并取得了重大的開拓性成就,屬于這些領(lǐng)域的有航空航天、生物醫(yī)學(xué)工程、工業(yè)檢測、機(jī)器人視覺、公安司法、軍事制導(dǎo)、文化藝術(shù)等,使圖像處理成為一門引人注目、前景遠(yuǎn)大的新型學(xué)科。隨著圖像處理技術(shù)的深入發(fā)展,從70年代中期開始,隨著計(jì)算機(jī)技術(shù)和人工智能、思維科學(xué)研究的迅速發(fā)展,數(shù)字圖像處理向更高、更深層次發(fā)展。人們已開始研究如何用計(jì)算機(jī)系統(tǒng)解釋圖像,實(shí)現(xiàn)類似人類視覺系統(tǒng)理解外部世界,這被稱為圖像理解或計(jì)算機(jī)視覺。很多國家,特別是發(fā)達(dá)國家投入更多的人力、物力到這項(xiàng)研究,取得了不少重要的研究成果。其中代表性的成果是70年代末mit的marr提出的視覺計(jì)算理論,這個(gè)理論成為計(jì)算機(jī)視覺領(lǐng)域其后十多年的主導(dǎo)思

5、想。圖像理解雖然在理論方法研究上已取得不小的進(jìn)展,但它本身是一個(gè)比較難的研究領(lǐng)域,存在不少困難,因人類本身對自己的視覺過程還了解甚少,因此計(jì)算機(jī)視覺是一個(gè)有待人們進(jìn)一步探索的新領(lǐng)域。當(dāng)前平面媒體、動(dòng)態(tài)廣告等基于圖像數(shù)據(jù)處理的應(yīng)用已深入到了人們生活的方方面面。電子相框等高新科技的大力發(fā)展也很大程度上依賴于圖像數(shù)據(jù)提取技術(shù)的發(fā)展。本課題就是在這樣的背景下進(jìn)行研究的。本課題的研究對于平面媒體、廣告宣傳、電子相框中的圖像處理有很好的幫助。可以很好的提高圖像的視感質(zhì)量,如進(jìn)行圖像的亮度、彩色變換,增強(qiáng)、抑制某些成分,對圖像進(jìn)行幾何變換等,以改善圖像的質(zhì)量??梢愿玫奶崛D像中所包含的某些特征或特殊信息,

6、這些被提取的特征或信息往往為計(jì)算機(jī)分析圖像提供便利。提取特征或信息的過程是模式識別或計(jì)算機(jī)視覺的預(yù)處理。提取的特征可以包括很多方面,如頻域特征、灰度或顏色特征、邊界特征、區(qū)域特征、紋理特征、形狀特征、拓?fù)涮卣骱完P(guān)系結(jié)構(gòu)等??梢愿玫膶D像進(jìn)行數(shù)據(jù)的變換、編碼和壓縮,以便于圖像的存儲和傳輸。總的來說,該課題的研究,具有很強(qiáng)的現(xiàn)實(shí)意義。12 本課題的研究現(xiàn)狀(1)圖像數(shù)據(jù)處理目前常用方法主要有以下幾個(gè)方面: 圖像變換:由于圖像陣列很大,直接在空間域中進(jìn)行處理,涉及計(jì)算量很大。因此,往往采用各種圖像變換的方法,如傅立葉變換、沃爾什變換、離散余弦變換等間接處理技術(shù),將空間域的處理轉(zhuǎn)換為變換域處理,不僅

7、可減少計(jì)算量,而且可獲得更有效的處理(如傅立葉變換可在頻域中進(jìn)行數(shù)字濾波處理)。新興研究的小波變換在時(shí)域和頻域中都具有良好的局部化特性,它在圖像處理中也有著廣泛而有效的應(yīng)用。 圖像編碼壓縮:圖像編碼壓縮技術(shù)可減少描述圖像的數(shù)據(jù)量(即比特?cái)?shù)),以便節(jié)省圖像傳輸、處理時(shí)間和減少所占用的存儲器容量。壓縮可以在不失真的前提下獲得,也可以在允許的失真條件下進(jìn)行。編碼是壓縮技術(shù)中最重要的方法,它在圖像處理技術(shù)中是發(fā)展最早且比較成熟的技術(shù)。 圖像增強(qiáng)和復(fù)原:圖像增強(qiáng)和復(fù)原的目的是為了提高圖像的質(zhì)量,如去除噪聲,提高圖像的清晰度等。圖像增強(qiáng)不考慮圖像降質(zhì)的原因,突出圖像中所感興趣的部分。如強(qiáng)化圖像高頻分量,可

8、使圖像中物體輪廓清晰,細(xì)節(jié)明顯;如強(qiáng)化低頻分量可減少圖像中噪聲影響。圖像復(fù)原要求對圖像降質(zhì)的原因有一定的了解,一般講應(yīng)根據(jù)降質(zhì)過程建立“降質(zhì)模型”,再采用某種濾波方法,恢復(fù)或重建原來的圖像。 圖像分割:圖像分割是數(shù)字圖像處理中的關(guān)鍵技術(shù)之一。圖像分割是將圖像中有意義的特征部分提取出來,其有意義的特征有圖像中的邊緣、區(qū)域等,這是進(jìn)一步進(jìn)行圖像識別、分析和理解的基礎(chǔ)。雖然已研究出不少邊緣提取、區(qū)域分割的方法,但還沒有一種普遍適用于各種圖像的有效方法。因此,對圖像分割的研究還在不斷深入之中,是圖像處理中研究的熱點(diǎn)之一。 圖像描述:圖像描述是圖像識別和理解的必要前提。作為最簡單的二值圖像可采用其幾何特

9、性描述物體的特性,一般圖像的描述方法采用二維形狀描述,它有邊界描述和區(qū)域描述兩類方法。對于特殊的紋理圖像可采用二維紋理特征描述。隨著圖像處理研究的深入發(fā)展,已經(jīng)開始進(jìn)行三維物體描述的研究,提出了體積描述、表面描述、廣義圓柱體描述等方法。 圖像分類(識別):圖像分類(識別)屬于模式識別的范疇,其主要內(nèi)容是圖像經(jīng)過某些預(yù)處理(增強(qiáng)、復(fù)原、壓縮)后,進(jìn)行圖像分割和特征提取,從而進(jìn)行判決分類。圖像分類常采用經(jīng)典的模式識別方法,有統(tǒng)計(jì)模式分類和句法(結(jié)構(gòu))模式分類,近年來新發(fā)展起來的模糊模式識別和人工神經(jīng)網(wǎng)絡(luò)模式分類在圖像識別中也越來越受到重視。圖像數(shù)據(jù)處理目前應(yīng)用的工具可分為三大類:第一類包括各種正交

10、變換和圖像濾波等方法,其共同點(diǎn)是將圖像變換到其它域(如頻域)中進(jìn)行處理(如濾波)后,再變換到原來的空間(域)中。第二類方法是直接在空間域中處理圖像,它包括各種統(tǒng)計(jì)方法、微分方法及其它數(shù)學(xué)方法。第三類是數(shù)學(xué)形態(tài)學(xué)運(yùn)算,它不同于常用的頻域和空域的方法,是建立在積分幾何和隨機(jī)集合論的基礎(chǔ)上的運(yùn)算。由于被處理圖像的數(shù)據(jù)量非常大且許多運(yùn)算在本質(zhì)上是并行的,所以圖像并行處理結(jié)構(gòu)和圖像并行處理算法也是圖像處理中的主要研究方向。(3) 圖像數(shù)據(jù)處理目前研究方向自20世紀(jì)60年代第三代數(shù)字計(jì)算機(jī)問世以后,數(shù)字圖像處理技術(shù)出現(xiàn)了空前的發(fā)展,在該領(lǐng)域中需要進(jìn)一步研究的問題主要有如下五個(gè)方向:在進(jìn)一步提高精度的同時(shí)著

11、重解決處理速度問題; 加強(qiáng)軟件研究,開發(fā)新的處理方法,特別要注意移植和借鑒其他學(xué)科的技術(shù)和研究成果,創(chuàng)造新的處理方法; 加強(qiáng)邊緣學(xué)科的研究工作,促進(jìn)圖像處理技術(shù)的發(fā)展; 加強(qiáng)理論研究,逐步形成處理科學(xué)自身的理論體系; 時(shí)刻注意圖像處理領(lǐng)域的標(biāo)準(zhǔn)化問題。 圖像數(shù)據(jù)處理目前研究的特點(diǎn): 處理信息量很大數(shù)字圖像處理的信息大多是二維信息,處理信息量很大。如一幅256256低分辨率黑白圖像,要求約64kbit的數(shù)據(jù)量;對高分辨率彩色512512圖像,則要求768kbit數(shù)據(jù)量;如果要處理30幀/秒的電視圖像序列,則每秒要求500kbit22.5mbit數(shù)據(jù)量。因此對計(jì)算機(jī)的計(jì)算速度、存儲容量等要求較高。

12、 占用頻帶較寬數(shù)字圖像處理占用的頻帶較寬。與語言信息相比,占用的頻帶要大幾個(gè)數(shù)量級。如電視圖像的帶寬約5.6mhz,而語音帶寬僅為4khz左右。所以在成像、傳輸、存儲、處理、顯示等各個(gè)環(huán)節(jié)的實(shí)現(xiàn)上,技術(shù)難度較大,成本亦高,這就對頻帶壓縮技術(shù)提出了更高的要求。 各像素相關(guān)性大數(shù)字圖像中各個(gè)像素是不獨(dú)立的,其相關(guān)性大。在圖像畫面上,經(jīng)常有很多像素有相同或接近的灰度。就電視畫面而言,同一行中相鄰兩個(gè)像素或相鄰兩行間的像素,其相關(guān)系數(shù)可達(dá)0.9以上,而相鄰兩幀之間的相關(guān)性比幀內(nèi)相關(guān)性一般說還要大些。因此,圖像處理中信息壓縮的潛力很大。 無法復(fù)制全部信息由于圖像是三維景物的二維投影,一幅圖象本身不具備復(fù)

13、現(xiàn)三維景物的全部幾何信息的能力,很顯然三維景物背后部分信息在二維圖像畫面上是反映不出來的。因此,要分析和理解三維景物必須作合適的假定或附加新的測量,例如雙目圖像或多視點(diǎn)圖像。在理解三維景物時(shí)需要知識導(dǎo)引,這也是人工智能中正在致力解決的知識工程問題。 受人的因素影響較大數(shù)字圖像處理后的圖像一般是給人觀察和評價(jià)的,因此受人的因素影響較大。由于人的視覺系統(tǒng)很復(fù)雜,受環(huán)境條件、視覺性能、人的情緒愛好以及知識狀況影響很大,作為圖像質(zhì)量的評價(jià)還有待進(jìn)一步深入的研究。另一方面,計(jì)算機(jī)視覺是模仿人的視覺,人的感知機(jī)理必然影響著計(jì)算機(jī)視覺的研究。例如,什么是感知的初始基元,基元是如何組成的,局部與全局感知的關(guān)系

14、,優(yōu)先敏感的結(jié)構(gòu)、屬性和時(shí)間特征等,這些都是心理學(xué)和神經(jīng)心理學(xué)正在著力研究的課題。13 本文研究內(nèi)容及章節(jié)安排本文主要對圖像像素提取方法進(jìn)行了研究,并利用vb6.0進(jìn)行了數(shù)據(jù)提取軟件的設(shè)計(jì)。本文分為五章:第一章:首先介紹了本課題的研究背景、意義;研究現(xiàn)狀;研究內(nèi)容及章節(jié)安排。第二章:介紹了數(shù)字圖像處理方法及數(shù)據(jù)提取方法。第三章:對本軟件的設(shè)計(jì)平臺vb軟件開發(fā)平臺及vb語言進(jìn)行了詳細(xì)的介紹。第四章:對該軟件的設(shè)計(jì)過程進(jìn)行了具體的介紹。第五章:對數(shù)據(jù)圖像提取進(jìn)行了總結(jié)和展望2 vb軟件開發(fā)平臺2.1 visual basic語言visual basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)

15、動(dòng)編程語言?!皏isual”指的是采用可視化的開發(fā)圖形用戶界面(gui)的方法,一般不需要編寫大量代碼去描述界面元素的外觀和位置,而只要把需要的控件拖放到屏幕上的相應(yīng)位置即可;“basic”指的是basic語言,basic是英文beginners all purpose symbolic instruction code的縮寫,意思為初學(xué)者通用符號指令代碼,一直都是程序設(shè)計(jì)入門的首選語言。vb擁有圖形用戶界面(gui)和快速應(yīng)用程序開發(fā)(rad)系統(tǒng),可以輕易的使用dao、rdo、ado連接數(shù)據(jù)庫,或者輕松的創(chuàng)建activex控件。程序員可以輕松的使用vb提供的組件快速建立一個(gè)應(yīng)用程序。 從設(shè)

16、計(jì)新型的用戶界面到利用其它應(yīng)用程序的對象;從處理文字圖象到使用數(shù)據(jù)庫;從開發(fā)個(gè)人或小組使用的小工具,到大型企業(yè)應(yīng)用系統(tǒng),甚至通過 internet 的遍及全球分布式應(yīng)用程序,都可在 visual basic 提供的工具中各取所需。vb是微軟公司的一種通用程序設(shè)計(jì)語言,包含在microsoft excel、microsoft access等眾多windows應(yīng)用軟件種的vba都使用vb語言,以供用戶二次開發(fā);目前制作網(wǎng)頁使用較多的vbscript腳本語言也是vb的子集。利用 vb的數(shù)據(jù)訪問特性,用戶可以對包括microsoft sql server和其他企業(yè)數(shù)據(jù)庫在內(nèi)的大部分?jǐn)?shù)據(jù)庫格式創(chuàng)建數(shù)據(jù)庫

17、和前端應(yīng)用程序,以及可調(diào)整的服務(wù)器端部件。利用activex(tm)技術(shù),vb可使用如microsoft word、microsoft excel及其他windows應(yīng)用程序提供的功能,甚至可直接使用vb專業(yè)版和企業(yè)版創(chuàng)建的應(yīng)用程序?qū)ο?。它的主要特點(diǎn)有:可視化的設(shè)計(jì)平臺;面向?qū)ο蟮脑O(shè)計(jì)方法;事件驅(qū)動(dòng)的編程機(jī)制;結(jié)構(gòu)化的設(shè)計(jì)語言;友好的集成開發(fā)環(huán)境;具有強(qiáng)大的功能。2.2 語言特性vb 的中心思想就是要便于程序員使用,無論是新手或者專家。vb使用了可以簡單建立應(yīng)用程序的gui 系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。vb 的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法

18、。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡單的程序。過去的版本里面 vb 程序的性能問題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭論已經(jīng)越來越少。窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會(huì)在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶的動(dòng)作和修改進(jìn)行改動(dòng),這樣就形成了一個(gè)動(dòng)態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會(huì)隨之

19、改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動(dòng)翻譯或者阻止某些字符的輸入。vb 的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類似于操作系統(tǒng)的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。vb 使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M件的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,vb 對大小寫不敏感,但是能自動(dòng)轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號表入口的實(shí)體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對大小寫敏感的,但

20、是可以關(guān)閉這個(gè)功能。vb 使得大量的外界控件有了自己的生存空間。大量的第三方控件針對 vb 提供。vb 也提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡單。2.3 編碼規(guī)則(1)語言元素 vb的語言基礎(chǔ)是basic語言,vb程序的語言元素主要由:關(guān)鍵字(如: dim、print、cls);函數(shù)(如:sin()、cos()sqr();表達(dá)式(如:abs(-23.5)+45*20/3 );語句(如:x=x+5 、 ifelseend if)等組成。(2)vb代碼書寫規(guī)則 1)程序中不區(qū)分字母的大小寫,ab 與ab等效; 2)系統(tǒng)對用戶程序代碼進(jìn)行自動(dòng)轉(zhuǎn)換:

21、 對于vb中的關(guān)鍵字,首字母被轉(zhuǎn)換成大寫,其余轉(zhuǎn)換成小寫; 若關(guān)鍵字由多個(gè)英文單詞組成,則將每個(gè)單詞的首字母轉(zhuǎn)換成大寫; 對于用戶定義的變量、過程名,以第一次定義的為準(zhǔn),以后輸入的自動(dòng)轉(zhuǎn)換成首次定義的形式。(3)語句書寫規(guī)則 1)在同一行上可以書寫多行語句,語句間用冒號(:)分隔 2)單行語句可以分多行書寫,在本行后加續(xù)行符:空格和下劃線 _ 3) 一行允許多達(dá)255個(gè)字符(4) 程序的注釋方式 1)整行注釋一般以 rem開頭,也可以用撇號 ; 2)用撇號 引導(dǎo)的注釋,既可以是整行的,也可以直接放在語句的后面,最方便; 3)可以利用“編輯”工具欄的“設(shè)置注釋塊”、“解除注釋塊”來將設(shè)置多行注釋

22、。(5) 保留行號和標(biāo)號 vb源程序接受行號與標(biāo)號,但不是必須的(早期的basic語言中必須用行號)。 標(biāo)號是以字母開始以冒號結(jié)束的字符串,一般用在goto語句(現(xiàn)在很少用)中。2.4重要常用語句介紹(1)appactivate語句:激活一應(yīng)用程序窗口。語法:appactivate title, wait appactivate 語句的語法具有以下幾個(gè)命名參數(shù):title 必需的。字符串表達(dá)式,所要激活的應(yīng)用程序窗口的標(biāo)題??梢允褂?shell 函數(shù)返回的任務(wù)識別碼來替換 title,以激活應(yīng)用程序。 wait 可選的。boolean值,說明在激活另一個(gè)應(yīng)用程序之前調(diào)用的應(yīng)用程序是否有焦點(diǎn)。如

23、果為 false(缺?。敲?,即使調(diào)用的應(yīng)用程序沒有焦點(diǎn),也直接激活指定的應(yīng)用程序。如果為 true,則調(diào)用的應(yīng)用程序會(huì)等到有焦點(diǎn)后,才激活指定的應(yīng)用程序。 說明:appactivate 語句將焦點(diǎn)移動(dòng)到命名的應(yīng)用程序或窗口,但并不影響焦點(diǎn)是否最大化或最小化。當(dāng)用戶采取行動(dòng)改變焦點(diǎn)或?qū)⒋翱陉P(guān)閉時(shí),就會(huì)將焦點(diǎn)從活動(dòng)的應(yīng)用程序窗口移動(dòng)出去。可用 shell 函數(shù)啟動(dòng)一個(gè)應(yīng)用程序并設(shè)置窗口樣式。在決定激活哪個(gè)應(yīng)用程序時(shí),請將 title 與每一個(gè)運(yùn)行中的應(yīng)用程序的標(biāo)題字符串進(jìn)行比較。如果沒有完全匹配,就激活任何這樣的應(yīng)用程序,其標(biāo)題字符串以 title 開頭。如果以 title 命名的應(yīng)用程序有很

24、多實(shí)例,則激活任何一個(gè)實(shí)例。(2)call語句 返回 :將控制權(quán)轉(zhuǎn)移到一個(gè) sub 過程,function 過程,或動(dòng)態(tài)連接庫 (dll)過程。語法:call name argumentlistcall 語句的語法具有以下幾個(gè)部分:call 可選參數(shù);關(guān)鍵字。如果指定了這個(gè)關(guān)鍵字,則 argumentlist 必須加上括號,例如: call myproc(0) name 必要參數(shù),要調(diào)用的過程名稱。 說明:調(diào)用一個(gè)過程時(shí),并不一定要使用 call 關(guān)鍵字。如果使用 call 關(guān)鍵字來調(diào)用一個(gè)需要參數(shù)的過程,argumentlist 就必須要加上括號。如果省略了 call 關(guān)鍵字,那么也必須要省

25、略 argumentlis 外面的括號。如果使用 call 語法來調(diào)用內(nèi)建函數(shù)或用戶定義函數(shù),則函數(shù)的返回值將被丟棄。若要將整個(gè)數(shù)組傳給一個(gè)過程,使用數(shù)組名,然后在數(shù)組名后加上空括號。(3)close語句 返回 :關(guān)閉 open 語句所打開的輸入/輸出 (i/o) 文件。語法:close filenumberlist可選的 filenumberlist參數(shù)為一個(gè)或多個(gè)文件號,其中 filenumber 為任何有效的文件號,語法如下:#filenumber , #filenumber . . .說明:若省略 filenumberlist,則將關(guān)閉 open 語句打開的所有活動(dòng)文件。當(dāng)關(guān)閉 out

26、put 或 append 打開的文件時(shí),將屬于此文件的最終輸出緩沖區(qū)寫入操作系統(tǒng)緩沖區(qū)。所有與該文件相關(guān)聯(lián)的緩沖區(qū)空間都被釋放。在執(zhí)行 close 語句時(shí),文件與其文件號之間的關(guān)聯(lián)將終結(jié)。(4)const語句 返回 :聲明用于代替文字量的常數(shù)。語法:public | private const constname as type = expression const 語句的語法包含下面部分:public 可選的。該關(guān)鍵字用于在模塊級別中聲明在所有模塊中對所有過程都可以使用的常數(shù)。在過程中不能使用。 private 可選的。該關(guān)鍵字用于在模塊級聲明只能在包含該聲明的模塊中使用的常數(shù)。不能在過程中

27、使用。 constname 必需的。常數(shù)的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。 type 可選的。常數(shù)的數(shù)據(jù)類型;可以是byte、布爾、long、currency、single、double、decimal(目前尚不支持)、date、string 或 variant。所聲明的每個(gè)變量都要使用一個(gè)單獨(dú)的 as 類型子句。 expression 必需的。文字,其它常數(shù),或由除 is 之外的任意的算術(shù)操作符和邏輯操作符所構(gòu)成的任意組合。 說明:在缺省情況下常數(shù)是私有的。過程中的常數(shù)總是私有的;它們的可見性無法改變。在標(biāo)準(zhǔn)模塊中,可以用 public 關(guān)鍵字來改變模塊級常數(shù)可見性的缺省值。不過,在類模塊中,

28、常數(shù)只能是私有的,而且用 public 關(guān)鍵字也不能改變其可見性。為了在一行中聲明若干個(gè)常數(shù),可以使用逗號將每個(gè)常數(shù)賦值分開。用這種方法聲明常數(shù)時(shí),如果使用了 public 或 private 關(guān)鍵字,則該關(guān)鍵字對該行中所有常數(shù)都有效。在給常量賦值的表達(dá)式中,不能使用變量,用戶自定義的函數(shù),或 visual basic 的內(nèi)部函數(shù)(如 chr)。注意 常數(shù)可以使程序更具可讀性,以及易于修改。在程序運(yùn)行時(shí),常數(shù)不會(huì)象變量那樣無意中被改變。如果在聲明常數(shù)時(shí)沒有顯式地使用 as type 子句,則該常數(shù)的數(shù)據(jù)類型是最適合其表達(dá)式的數(shù)據(jù)類型。在 sub、function 或 property 過程中聲

29、明的常數(shù)都是該過程的局部常數(shù)。在過程外聲明的常數(shù),在包含該聲明的模塊中被定義。在可以使用表達(dá)式的地方,都可以使用常數(shù) (5)dim:聲明變量并分配存儲空間。語法:dim withevents varname(subscripts) as new type , withevents varname(subscripts) as new type . . .dim 語句的語法包含下面部分:withevents 可選的。關(guān)鍵字,說明 varname 是一個(gè)用來響應(yīng)由 activex 對象觸發(fā)的事件的對象變量。只有在類模塊中才是合法的。使用 withevents,可以聲明任意個(gè)所需的單變量,但不能使用

30、 withevents 創(chuàng)建數(shù)組。new 和 withevents 不能一起使用。 varname 必需的。變量的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。 subscripts 可選的。數(shù)組變量的維數(shù);最多可以定義 60 維的多維數(shù)組。subscripts 參數(shù)使用下面的語法: lower to upper , lower to upper . . . 如果不顯式指定 lower,則數(shù)組的下界由 option base 語句控制。如果沒有使用 option base 語句,則下界為 0。 new 可選的??呻[式地創(chuàng)建對象的關(guān)鍵字。如果使用 new 來聲明對象變量,則在第一次引用該變量時(shí)將新建該對象的實(shí)例

31、,因此不必使用 set 語句來給該對象引用賦值。new 關(guān)鍵字不能聲明任何內(nèi)部數(shù)據(jù)類型的變量,以及從屬對象的實(shí)例,也不能與 withevents 一起使用。 type 可選的。變量的數(shù)據(jù)類型;可以是 byte、布爾、integer、long、currency、single、double、decimal(目前尚不支持)、date、string(對變長的字符串)、string * length (對定長的字符串)、object、variant、用戶定義類型、或?qū)ο箢愋?。所聲明的每個(gè)變量都要一個(gè)單獨(dú)的 as type 子句。 說明:在模塊級別中用 dim 聲明的變量,對該模塊中的所有過程都是可用的。

32、在過程級別中聲明的變量,只在過程內(nèi)是可用的??梢允褂?dim 語句在模塊級或過程級中聲明變量的數(shù)據(jù)類型。例如,下面的語句聲明了 integer 類型的變量。dim numberofemployees as integer也可以使用 dim 語句來聲明變量的對象類型。下面的語句為工作表的新建實(shí)例聲明了一個(gè)變量。dim x as new worksheet如果定義對象變量時(shí)沒有使用 new 關(guān)鍵字,則在使用該變量之前,必須使用 set 語句將該引用對象的變量賦值為一個(gè)已有對象。在該變量被賦值之前,所聲明的對象變量有一個(gè)特定值 nothing,這個(gè)值表示該變量沒有指向任一個(gè)對象實(shí)例。也可以使用帶空圓

33、括號的 dim 語句來定義動(dòng)態(tài)數(shù)組。在定義動(dòng)態(tài)數(shù)組后,可以在過程內(nèi)使用 redim 語句來定義該數(shù)組的維數(shù)和元素。如果試圖在 private,public 或 dim 語句中重新定義一個(gè)已顯式定義了大小的數(shù)組的維數(shù)時(shí),就會(huì)發(fā)生錯(cuò)誤。如果不指定數(shù)據(jù)類型或?qū)ο箢愋停以谀K中沒有 deftype 語句,則該變量按缺省設(shè)置是 variant 類型。當(dāng)初始化變量時(shí),數(shù)值變量被初始化為 0,變長的字符串被初始化為一個(gè)零長度的字符串 (),而定長的字符串則用 0 填充。variant 變量被初始化為 empty。用戶自定義類型的變量的每個(gè)元素作為各自獨(dú)立的變量進(jìn)行初始化。注意: 當(dāng)在過程中使用 dim 語

34、句時(shí),通常將 dim 語句放在過程的開始處。2.5 程序設(shè)計(jì)基本步驟vb程序設(shè)計(jì)的基本步驟: (1)分析問題,設(shè)計(jì)算法; (2)建立用戶界面的對象; (3)對象屬性的設(shè)置;(4)對象事件過程及編程;(5)保存程序; (6)程序調(diào)試和運(yùn)行; (7)生成可執(zhí)行文件; (8)發(fā)行程序,及生成安裝程序。2.6 vb軟件開發(fā)平臺1991年,微軟公司推出了 visual basic 1.0。當(dāng)時(shí)引起了很大的轟動(dòng)。這個(gè)連接編程語言和用戶界面的進(jìn)步被稱為tripod(有些時(shí)候叫做ruby),最初的設(shè)計(jì)是由阿蘭庫珀(alan cooper)完成的。許多專家把 vb 的出現(xiàn)當(dāng)做是軟件開發(fā)史上的一個(gè)具有劃時(shí)代意義的

35、事件。在當(dāng)時(shí),它是第一個(gè)“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在vb的平臺上進(jìn)行軟件創(chuàng)作。微軟也不失時(shí)機(jī)地在四年內(nèi)接連推出 2.0、3.0、4.0 三個(gè)版本。并且從 vb 3.0 開始,微軟將access的數(shù)據(jù)庫驅(qū)動(dòng)集成到了 vb 中,這使得 vb 的數(shù)據(jù)庫編程能力大大提高。從 vb 4.0 開始,vb 也引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。vb 功能強(qiáng)大,學(xué)習(xí)簡單。而且,vb 還引入了“控件”的概念,使得大量已經(jīng)編好的 vb 程序可以被我們直接拿來使用。2002年開始,微軟將.net framework與 visual basic 結(jié)合而成為 visual basic .net (vb

36、.net),重新打造 vb,新增許多特性及語法,又將 vb 推向一個(gè)新的高度。最新版本 visual basic 2012 也將帶來許多令人期待的新功能。通過幾年的發(fā)展,它已成為一種專業(yè)化的開發(fā)語言和環(huán)境。用戶可用visual basic 快速創(chuàng)建windows程序,并可編寫企業(yè)水平的客戶端/服務(wù)器程序及強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序。2.7 vb6.0平臺上的常用控件(1) 命令按鈕類的控件:屬性:1) caption屬性:用來顯示在控件上的標(biāo)題。2) enable屬性:控制控件的激活狀態(tài)灰色或可用。3) appearance屬性:值為1時(shí),則以3d效果顯示該控件,0則不然。4) backcolor屬

37、性:用來改變在按鈕上顯示圖像的背景色。5) cancel屬性:該屬性決定按鈕是否為一個(gè)”取消”按鈕。6) default屬性:決定哪一個(gè)命令按鈕控件是窗體的缺省命令按鈕.7) font屬性:控制各種文字字體類型.8) left,top,height,width屬性:設(shè)定控件的位置與大小.9) style,picture屬性:決定按鈕的顯示方式是否為圖像形式出現(xiàn).10) visible屬性:確定控件運(yùn)行時(shí)是否為可見.11) index屬性:當(dāng)控件為一控件數(shù)組時(shí),此屬性值為該控件在數(shù)組的下標(biāo)值.12) downpicture屬性:設(shè)置/返回一個(gè)對圖片的引用,該圖片在按鈕被單擊處于壓下狀態(tài)時(shí)顯示。1

38、3) disabledpicture屬性:設(shè)置/返回一個(gè)對圖片的引用,該圖片在控件無效時(shí)顯示在控件中。14) maskcolor屬性:設(shè)置/返回一個(gè)在按鈕的圖片中作為“掩碼“的的顏色15) picture屬性:設(shè)置返回commandbutton控件中要顯示的圖片。事件:1)單擊事件click事件 觸發(fā)與適用此事件是在一個(gè)命令按鈕對象上按下然后釋放一個(gè)鼠標(biāo)按鈕時(shí)發(fā)生。命令按鈕的click事件僅對當(dāng)單擊鼠標(biāo)時(shí)發(fā)生。 事件處理過程按鈕單擊事件的處理過程為: private sub object-click(index as integer)其中object為引發(fā)該事件的對象名稱。如果是命令按鈕的控件

39、是數(shù)組,則需要使用index參數(shù)標(biāo)識該控件。2)獲得焦點(diǎn)gotfocus事件 觸發(fā)與適用 當(dāng)命令按鈕獲得焦點(diǎn)產(chǎn)生該事件,獲得焦點(diǎn)可以通過諸如tab切換或單擊對象之類的用戶動(dòng)作,或在代碼中用setfocus方法改變焦點(diǎn)來實(shí)現(xiàn)。 事件處理過程命令按鈕gotfoucs事件處理過程為:private sub object-gotfocus(index as integer)3)lostfocus事件:當(dāng)一個(gè)對象失去焦點(diǎn)時(shí)發(fā)生4)keydown事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生5)keyup事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)釋放一個(gè)鍵時(shí)發(fā)生。6)keypress事件:當(dāng)用戶按下或松開一個(gè)ansi鍵時(shí)發(fā)生

40、。7)mousedown事件:當(dāng)在命令按鈕上按下鼠標(biāo)按鈕時(shí)發(fā)生。8)mousemove事件:當(dāng)命令按鈕上移動(dòng)鼠標(biāo)時(shí)發(fā)生。9)mouseup事件:當(dāng)在命令按鈕上釋放鼠標(biāo)按鈕時(shí)發(fā)生。(2)文本框類的控件:屬性:1) text屬性:通過像text屬性賦值的方法來改變該屬性的值。2) maxlength屬性:該屬性設(shè)定在文本框控件中能夠輸入的最大字符數(shù)。3) multline屬性:該屬性設(shè)定text字符串中是否接受換行符。4) scrollbars屬性:該屬性決定是否為文本框加滾動(dòng)條。5) passwordchar屬性:該屬性設(shè)定輸入文本的特殊顯示字符,在設(shè)計(jì)密碼程序時(shí)非常有用。6) change事件

41、屬性:文本框的內(nèi)容發(fā)生改變時(shí),相應(yīng)的控件之間發(fā)生相應(yīng)的改變,具有即時(shí)性。7) keypress:事件由用戶在文本框控件中按任意鍵觸發(fā)。8) alignment屬性:設(shè)定控件中的文本對其方式9) appearance屬性:設(shè)定一個(gè)對象在運(yùn)行時(shí)是否可以3d效果顯示。10) backcolor屬性:設(shè)置返回背景色11) borderstyle屬性:設(shè)置對象的邊框樣式12) datafield屬性:設(shè)定數(shù)據(jù)使用者將被綁定到的字段名13) dataformat屬性:設(shè)定dataformat對象,用于數(shù)據(jù)綁定14) datamember屬性:從數(shù)據(jù)供應(yīng)程序提供的幾個(gè)數(shù)據(jù)成員中返回/設(shè)定一個(gè)特定的數(shù)據(jù)成員1

42、5) datasource屬性:設(shè)定控件綁定的一個(gè)數(shù)據(jù)源16) dragicon屬性:設(shè)定圖標(biāo),它將在拖放操作中作為指針顯示17) dragmode模式:設(shè)定一個(gè)值,確定在拖放操作中所用方式 事件:1)change事件:當(dāng)改變文本框內(nèi)容時(shí)發(fā)生2)click事件:鼠標(biāo)單擊控件時(shí)發(fā)生3)dblclick事件:用鼠標(biāo)左鍵雙擊控件時(shí)發(fā)生4)dragdrop事件:在一個(gè)完整的拖放動(dòng)作完成或使用drag方法,并將其action參數(shù)設(shè)置為2時(shí)發(fā)生5)dragover事件:在拖放操作正在進(jìn)行時(shí)發(fā)生6)gotfocus事件:當(dāng)一個(gè)命令按鈕獲得焦點(diǎn)時(shí)發(fā)生7)linkclose事件:當(dāng)一個(gè)dde對話結(jié)束時(shí)發(fā)生8)l

43、inkerror事件:當(dāng)一個(gè)dde對話框過程中出現(xiàn)錯(cuò)誤時(shí),該事件發(fā)生9)keydown事件:當(dāng)命令按鈕具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生10)validate事件:在焦點(diǎn)轉(zhuǎn)換到另一個(gè)控件之前發(fā)生,此時(shí)該控件的causes validation 屬性值設(shè)置為true (3) 單選按鈕類的控件:屬性:1) caption屬性:顯示在控件上的文本,是單選按鈕的標(biāo)題。2) alignment屬性:決定單選按鈕的標(biāo)題在控件上的位置。3) enable屬性:該控件為灰色時(shí)為false,表示運(yùn)行時(shí)不可用。4) index屬性:屬性值表示為單選按鈕組成的控件中某個(gè)按鈕的索引值。5) tabindex屬性:建立控件時(shí),

44、vb自動(dòng)為其分配一個(gè)tabindex值,利用tab鍵可以在控件之間切換焦點(diǎn)。6) value屬性:反映控件狀態(tài)的屬性,返回true表示已選擇了該按鈕。7) appearance 屬性:設(shè)置/返回一個(gè)對象在運(yùn)行時(shí)是否以3d效果顯示。8) backcolor 屬性:設(shè)置/返回背景色。9) container 屬性:設(shè)置/返回form上的控件屬性。10)datafield 屬性:設(shè)置/返回?cái)?shù)據(jù)使用者將被綁定到的字段名。11) dataformat 屬性:設(shè)置/返回dataformat對象,一個(gè)綁定對象將附加到它。12) disabledpicture 屬性:設(shè)置/返回一個(gè)對圖像的引用,該圖片在控件無

45、效時(shí)顯示在控件中。13) downpicture 屬性:設(shè)置/返回一個(gè)對圖片的引用,該圖片在控件單擊下處于壓下狀態(tài)時(shí)顯示。事件:1)click 事件:鼠標(biāo)單擊控件時(shí)發(fā)生。2)dbclick事件: 當(dāng)在一個(gè)對象上按下和釋放鼠標(biāo)按鈕并再次按下和釋放按鈕時(shí),該事件發(fā)生。3)dragdrop事件:在一個(gè)完整的拖放動(dòng)作或使用drag方法,并將其action參數(shù)設(shè)置位2時(shí),該事件發(fā)生。4)dragover事件: 在拖放操作正在進(jìn)行時(shí)發(fā)生。5)gotfocus事件: 當(dāng)獲的對象焦點(diǎn)時(shí)發(fā)生。6)lostfocus事件:當(dāng)對象失去焦點(diǎn)時(shí)發(fā)生。7)keydown事件:當(dāng)控件具有焦點(diǎn)時(shí)按下一個(gè)鍵時(shí)發(fā)生。8)keyu

46、p事件: 當(dāng)控件具有焦點(diǎn)時(shí)釋放一個(gè)鍵時(shí)發(fā)生。9)keypress事件:當(dāng)用戶按下或釋放ansi一個(gè)鍵時(shí)發(fā)生。10) mousedown事件:當(dāng)在控件上按下鼠標(biāo)鍵時(shí)發(fā)生。11)mousemove事件:在控件上移動(dòng)鼠標(biāo)時(shí)發(fā)生。12)mouseup事件:在控件上釋放鼠標(biāo)時(shí)發(fā)生。(4)框架類的控件:屬性:1) list屬性:列表框控件的表項(xiàng)是使用數(shù)組的方式保存,數(shù)組的每一個(gè)元素存儲列表控件的一個(gè)表項(xiàng)2) listcount屬性:控件列表部分項(xiàng)目的個(gè)數(shù)。3) mutselect屬性:可以設(shè)置列表框?yàn)閱芜x或允許多選屬性.4) selectd屬性:標(biāo)示一個(gè)數(shù)組,數(shù)組各元素為:selected(0),sele

47、cted(1)(5)滾動(dòng)條類的控件:屬性:1) value屬性:滾動(dòng)條上滑塊所在位置由value值所決定。2) max和min屬性:對value值的最大,最小進(jìn)行限制。3) largechange屬性:用戶點(diǎn)擊滾動(dòng)條與鍵頭之間的區(qū)域時(shí),value的改變量。4) onclick事件:用來添加按鈕的單擊事件所執(zhí)行的程序代碼。(6)定時(shí)器類類的控件:屬性:1) interval屬性:表示定時(shí)的時(shí)間間隔,以毫秒為單位。2) enable屬性:為true時(shí)(缺省值),激活定時(shí)器開始計(jì)時(shí);為false時(shí)處于休眠狀態(tài).3 圖像數(shù)據(jù)提取常用方法3.1 像素點(diǎn)的顏色組成在電腦或者電視上能看到色彩斑斕的圖像,其實(shí)

48、這些圖像都是由一個(gè)一個(gè)像素點(diǎn)構(gòu)成的。不管是彩色還是黑白圖像,除了描述每個(gè)像素所在的行和列外,還必須描述其顏色值.在一個(gè)有256級灰度的黑白圖像中,每個(gè)像素顏色只需用1個(gè)字節(jié)表示;而在彩色圖像中,每個(gè)像素都是由紅、綠、藍(lán)3基色調(diào)和而成,所以一個(gè)像素就需要用多個(gè)字節(jié)來表示.如果給彩色圖像的每個(gè)像素的顏色信息分配3個(gè)字節(jié),每個(gè)顏色分量用1個(gè)字節(jié)來表示,那么每個(gè)顏色分量就有256級,可以表示的顏色就有“256256256”種.如果需要對圖像進(jìn)行柔化、擴(kuò)散等處理,就必須獲得圖像的每個(gè)像素以便進(jìn)行相應(yīng)地處理。在內(nèi)存中,每個(gè)像素點(diǎn)由4字節(jié)構(gòu)成,這4個(gè)字節(jié)的代表的含義如下:(1)第一個(gè)字節(jié)決定像素的紅色值(2

49、)第二個(gè)字節(jié)決定像素的綠色值(3)第三個(gè)字節(jié)決定像素的藍(lán)色值(4)第四個(gè)字節(jié)決定像素的透明度值。上述每一個(gè)字節(jié)的取值是從0到255,比如(255,0,0,255),在內(nèi)存中是用二進(jìn)制表示,即它是一個(gè)32位的串:11111111 00000000 00000000 11111111 其中:0代表完全透明,255代表完全不透明。圖1.13.2 圖片數(shù)據(jù)提取常用方法方法1)利用圖片框的point方法.圖片框提供了point方法可以獲得圖像每個(gè)像素的顏色值,具體格式為: pix=圖片框?qū)ο?point(x,y)其中,x和y表示每個(gè)像素的位置,pix可以獲得對應(yīng)位置的顏色值. 在窗體上放2個(gè)圖片框,分別

50、是picture1和picture2,將其scalemode屬性設(shè)置為pixel.在pic2ture1中放上要處理的原圖11,在picture2中顯示處理后的效果.由于需要保存每個(gè)像素的顏色值,而每個(gè)顏色又由3種基色組合而成,所以需要定義一個(gè)三維數(shù)組tx保存每個(gè)位置上的3個(gè)顏色分量的值.比如用tx(0,i,j)保存對應(yīng)位置的紅色分量值,tx(1,i,j)和tx(2,i,j)分別保存對應(yīng)位置的綠色分量和藍(lán)色分量的值.方法2)使用dib方法.利用上面的point方法雖然可以讀取圖像的像素值, 卻很慢.在vb中快速獲取圖像像素的方法是使用dib方法.dibdevice2independent bit

51、map的簡稱,提供了對圖像處理的一種方法.仍將圖片放在圖片框picture1中,將其auto2size屬性設(shè)置為true,scalemode屬性設(shè)置為pixel,將顯示器調(diào)到32位色.同樣,若將每個(gè)像素的信息保存在tx數(shù)組中,對于32位圖像,每個(gè)像素需分配4個(gè)字節(jié),通過圖片框的scalewidth和scaleheight屬性可以知道圖像的水平像素個(gè)數(shù)w為picture1.scalewidth+1個(gè),垂直像素個(gè)數(shù)h為picture1.scaleheight+1,所以可以定義數(shù)組tx(3,w-1,h-1). 利用dib方法獲得圖像的像素,需要利用api 函數(shù)getdibits和描述bmp圖片信息的

52、數(shù)據(jù)結(jié)構(gòu).3.3 數(shù)字圖像處理常用方法數(shù)字圖像處理是近年來電子、通訊和計(jì)算機(jī)等領(lǐng)域的熱門研究領(lǐng)域,其在科研、經(jīng)濟(jì)、軍事、娛樂等等國計(jì)民生的各個(gè)領(lǐng)域都具有非常廣闊的應(yīng)用前景。數(shù)字圖像處理處是一門交叉學(xué)科,涉及數(shù)學(xué)、計(jì)算機(jī)、電子、通訊、物理等等眾多的基礎(chǔ)和應(yīng)用學(xué)科。數(shù)字圖像處理的研究范圍也非常寬泛,包括圖像增強(qiáng)、圖像復(fù)原、數(shù)學(xué)形態(tài)學(xué)、圖像分析、圖像編解碼、模式識別、視頻圖像處理等等眾多分支領(lǐng)域。從本質(zhì)上看,圖像是大量信息的集合,是人們獲取信息 的最主要來源。但通常情況下,直接獲取的圖像并不能被人們所用,需要采取一定的手段進(jìn)行處理,而計(jì)算機(jī)技術(shù)的發(fā)展則給圖像處理提供了有效手段。計(jì)算機(jī)處理的圖像是數(shù)字

53、化的圖像,數(shù)字圖像的實(shí)質(zhì)是由量化的采樣數(shù)值組成的二維矩陣。一幅數(shù)字圖像由許多劃分為不同像素元素的區(qū)域組成,其中每一個(gè)像素都具有兩個(gè)不同的屬性:位置和灰度。通過對圖像的所有像素點(diǎn)進(jìn)行量化表示后,一幅圖像就被表示成一個(gè)數(shù)字矩陣,能夠被計(jì)算機(jī)處理,不同的處理方法和技術(shù)就形成了數(shù)字圖像處理技術(shù)雖然很難準(zhǔn)確界定數(shù)字圖像處理的定義,但一般可以這樣描述數(shù)字圖像處理的概念,指為了某種目的,利用計(jì)算機(jī)或者其他處理硬件,對獲取的數(shù)字化圖像按照某種處理方法和技術(shù)進(jìn)行變換,而得到圖像的另一種表現(xiàn)形式。數(shù)字圖像處理的本質(zhì)就是從圖像到圖像的變換,通常其目的在于準(zhǔn)確獲取圖像中包含的特定信息,提高圖像的實(shí)用性。通常所說的圖像

54、處理技術(shù)就是指利用計(jì)算機(jī)對圖像進(jìn)行處理的技術(shù),主要包含色度處理、亮度處理以及圖像的平滑、銳化、去噪等方面的內(nèi)容。綜合來看,數(shù)字圖像處理具有兩個(gè)方面的特點(diǎn):首先,數(shù)字圖像通常信息量較大。對于普通一幅數(shù)字圖像,可以看成是由許多的像素組成的,通常為了保證精度,每個(gè)像素的灰度值至少要采用8bit,對于精度要求較高的場合,要達(dá)到l2bit、16bit或24bit以上。因此,僅僅對于尺寸為10241024的八位圖像,其大小就達(dá)到10241024=1mb,數(shù)字圖像包含如此多的數(shù)據(jù)量給計(jì)算機(jī)存儲、傳輸和處理都帶來負(fù)擔(dān)。其次,數(shù)字圖像處理技術(shù)綜合性強(qiáng)。在數(shù)字圖像的處理過程中,需要涉及非常多的基礎(chǔ)理論知識,尤其許

55、多相關(guān)的邊緣學(xué)科知識對數(shù)字圖像的處理有很大的影響。即使對于計(jì)算機(jī)圖像處理領(lǐng)域,在圖像處理過程中也涉及大量軟件、硬件、網(wǎng)絡(luò)傳輸、數(shù)據(jù)接口等多項(xiàng)技術(shù)。 早期的發(fā)展中,對于圖像處理的主要目的是為了改善圖像的視覺質(zhì)量。上世紀(jì)七十年代以來,隨著計(jì)算機(jī)技術(shù)和人工智能等領(lǐng)域快速發(fā)展,數(shù)字圖像的處理開始更高的層次發(fā)展。上世紀(jì)九十年代以后,小波理論迅速發(fā)展,并被認(rèn)為是信號處理與圖像分析領(lǐng)域中的有效方法。迄今為止,隨著計(jì)算機(jī)科學(xué)技術(shù)的迅猛發(fā)展和相關(guān)算法及理論的不斷完善,數(shù)字圖像處理技術(shù)已經(jīng)有了重大的發(fā)展,成為較有前景的新型學(xué)科。當(dāng)前,圖像處理領(lǐng)域的發(fā)展趨勢是計(jì)算機(jī)數(shù)字圖像處理。 圖像的數(shù)字處理是指將獲取的模擬格式

56、的圖像轉(zhuǎn)變成數(shù)字圖像,根據(jù)應(yīng)用需求,在建立的特定的物理和數(shù)學(xué)模型上對圖像進(jìn)行特定的處理,實(shí)現(xiàn)應(yīng)用需求。根據(jù)圖像處理的層次和研究方法,對數(shù)字圖像分析和處理的研究可以分為3個(gè)方面:圖像處理、圖像分析和圖像理解其中,圖像處理主要指對圖像進(jìn)行各種加工以改善圖像的效果,為后續(xù)的圖像識別和理解奠定基礎(chǔ)。圖像處理的主要目的是消除圖像噪聲、增強(qiáng)圖像信息、消除非均勻性和改善圖像質(zhì)量等。隨著技術(shù)的進(jìn)步和應(yīng)用領(lǐng)域的拓展,對圖像處理技術(shù)的要求也越來越高,計(jì)算機(jī)技術(shù)和先進(jìn)的數(shù)學(xué)理論開始廣泛應(yīng)用于圖像處理。圖像處理重點(diǎn)包括圖像輸入和圖像預(yù)處理兩個(gè)部分。圖像的預(yù)處理是圖像分析和處理的基礎(chǔ),對于后續(xù)的圖像分割和目標(biāo)識別等步驟有重要意義。其中非均勻性校正和圖像增強(qiáng)是圖像預(yù)處理技術(shù)的兩個(gè)重要方向。非均勻性校正就是對圖像象素作修正,使整幅圖像表現(xiàn)均勻。圖像增強(qiáng)是指對圖像的某些特征,如邊緣、輪廓、對比度等進(jìn)行強(qiáng)調(diào)或突顯,圖像增強(qiáng)的結(jié)果能加強(qiáng)對特定信息的識別能力,使圖像中感興趣的特征得以加強(qiáng),從而使這些特征的檢測和識別變得更加容易。 實(shí)際上,不同的圖像增強(qiáng)算法圖像處理的側(cè)重點(diǎn)也各不相同,一種算法一般只能解決圖像中的某一類問題。為了增強(qiáng)圖像的整體視覺效果,可以考慮將各種圖像增強(qiáng)方法進(jìn)行融合,實(shí)現(xiàn)對圖像的綜合處理。 圖像分析也可以稱為圖像識別,主要是對圖像中感興趣的目標(biāo)進(jìn)行檢測和測量,以獲得它們的客觀信息,從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論