第七章 計算機(jī)圖像處理基礎(chǔ)_第1頁
第七章 計算機(jī)圖像處理基礎(chǔ)_第2頁
第七章 計算機(jī)圖像處理基礎(chǔ)_第3頁
第七章 計算機(jī)圖像處理基礎(chǔ)_第4頁
第七章 計算機(jī)圖像處理基礎(chǔ)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章計算機(jī)圖像處理基礎(chǔ)第一頁,共八十四頁,2022年,8月28日本章要點:介紹計算機(jī)圖像處理的基本內(nèi)容和方法介紹計算機(jī)圖像增強(qiáng)的基本方法介紹圖像復(fù)原、重建、分割及圖像特征提取的概念本章學(xué)習(xí)目標(biāo):掌握BMP格式文件的存儲和讀取了解空域增強(qiáng)與頻域增強(qiáng)的基本原理掌握圖像銳化的方法2第二頁,共八十四頁,2022年,8月28日7.1概論數(shù)字圖像處理(DigitalImageProcessing)是指用計算機(jī)對數(shù)字圖像進(jìn)行的處理,因此也稱為計算機(jī)圖像處理(CompeerImageProcessing)。計算機(jī)圖像處理主要有兩個目的:其一,為了便于分析而對圖像信息進(jìn)行改進(jìn);其二,為使計算機(jī)自動理解而對圖像數(shù)據(jù)進(jìn)行存儲、傳輸及顯示。3第三頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的發(fā)展圖像是人類獲取信息、表達(dá)信息和傳遞信息的重要手段。因此,數(shù)字圖像處理技術(shù)已經(jīng)成為信息科學(xué)、計算機(jī)科學(xué)、工程科學(xué)、地球科學(xué)等諸多方面的學(xué)者研究圖像的有效工具。數(shù)字圖像處理發(fā)展歷史并不長,起源于20世紀(jì)20年代。當(dāng)時,人們通過Bartlane海底電纜圖像傳輸系統(tǒng),從倫敦到紐約傳輸了一幅經(jīng)過數(shù)字壓縮后的照片,從而把傳輸時間從一周多縮短至3小時。為了傳輸圖片,該系統(tǒng)首先在傳輸端進(jìn)行圖像編碼,然后在接收端用特殊打印設(shè)備重構(gòu)該圖片。盡管這一應(yīng)用已經(jīng)包含了數(shù)字圖像處理的知識,但還稱不上真正意義的數(shù)字圖像處理,因為它沒有涉及計算機(jī)。數(shù)字圖像處理的歷史與計算機(jī)的發(fā)展密切相關(guān),數(shù)字圖像處理的真正歷史是從數(shù)字計算機(jī)的出現(xiàn)開始的。數(shù)字圖像處理技術(shù)在20世紀(jì)60年代末70年代初開始用于醫(yī)學(xué)圖像、地球遙感監(jiān)測和天文學(xué)等領(lǐng)域。其后軍事、氣象、醫(yī)學(xué)等學(xué)科的發(fā)展也推動了圖像處理技術(shù)迅速發(fā)展。4第四頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念數(shù)字圖像處理相關(guān)的基本概念包括圖像、數(shù)字圖像和數(shù)字圖像處理,以及數(shù)字圖像的基本組成單元——像素、灰度。1.數(shù)字圖像及其組成要素圖像是對客觀對象的一種相似性的、生動的描述或表示。在其自然的形式下圖像并不能直接由計算機(jī)進(jìn)行分析。從人眼的視覺特點看,圖像分為可見圖像和不可見圖像。其中可見圖像又包括生成圖(通常稱為圖形和圖片)和光圖像兩類。圖形側(cè)重于根據(jù)給定的物體描述模型、光照及想象中的攝像機(jī)的成像幾何,生成一幅圖或像的過程。光圖像側(cè)重于用透鏡、光柵和全息技術(shù)產(chǎn)生的圖像。我們通常所指的圖像是后一類圖像。不可見的圖像包含不可見光成像和不可見量,如溫度、壓力及人口密度的分布圖等。5第五頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念按波段多少,圖像可分為單波段、多波段和超波段圖像。單波段圖像在每個點只有一個亮度值;多波段圖像上每一個點不止一個特性,例如紅、綠、藍(lán)三波段光譜圖像或彩色圖像在每個點具有紅、綠、藍(lán)三個亮度值,這三個值表示在不同光波段上的強(qiáng)度,人眼看來就是不同的顏色;超波段圖像上每個點具有幾十或幾百個特性,如遙感圖像等。按圖像空間坐標(biāo)和明暗程度的連續(xù)性,圖像可分為模擬圖像和數(shù)字圖像。模擬圖像指空間坐標(biāo)和明暗程度都是連續(xù)變化的、計算機(jī)無法直接處理的圖像。數(shù)字圖像是一種空間坐標(biāo)和灰度均不連續(xù)的、用離散的數(shù)字表示的圖像。這樣的圖像才能被計算機(jī)處理。因此,數(shù)字圖像可以理解為圖像的數(shù)字表示,是時間和空間的非連續(xù)函數(shù)(信號),是為了便于計算機(jī)處理的一種圖像表示形式。它是由一系列離散單元經(jīng)過量化后形成的灰度值的集合,即像素(pixel)的集合。6第六頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念2.圖像處理對圖像進(jìn)行一系列的操作以達(dá)到預(yù)期目的的技術(shù)稱作圖像處理。圖像處理可分為模擬圖像處理和數(shù)字圖像處理兩種方式。利用光學(xué)、照相和電子學(xué)方法對模擬圖像的處理稱為模擬圖像處理。人類最早的圖像處理是光學(xué)的處理,如放大、縮小、顯微等,這些都屬于模擬圖像的處理。這種處理最明顯的特點是處理速度快。目前,許多軍用、宇航的處理仍采用光學(xué)模擬處理。盡管光學(xué)圖像處理理論日臻完善,且處理速度快,信息容量大,分辨率高,又非常經(jīng)濟(jì),但處理精度不高、穩(wěn)定性差、設(shè)備笨重、操作不方便和工藝水平不高等原因限制了它的發(fā)展速度。此外,由于其處理過程采用光學(xué)器件,如鏡頭、棱鏡等,它的不靈活性就較為突出,而且一個光學(xué)器件從設(shè)計到加工直到成品需要很長時間,其加工過程也難以保證精度。7第七頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念所謂數(shù)字圖像處理,就是利用計算機(jī)對數(shù)字圖像進(jìn)行系列操作,從而獲得某種預(yù)期結(jié)果的技術(shù)。數(shù)字圖像處理離不開計算機(jī),因此又稱計算機(jī)圖像處理?!坝嬎銠C(jī)圖像處理”與“數(shù)字圖像處理”可視為同義詞。通常,也將數(shù)字圖像處理簡稱為圖像處理。在本書中,如無特殊說明,“圖像處理”即指“數(shù)字圖像處理”。圖像處理的內(nèi)容相當(dāng)豐富,包括狹義的圖像處理、圖像分析與圖像理解。狹義的圖像處理著重強(qiáng)調(diào)在圖像之間進(jìn)行的變換,是一個從圖像到圖像的過程,是比較低層的操作。它主要在像素級進(jìn)行處理,處理的數(shù)據(jù)量非常大。雖然人們常用圖像處理泛指各種圖像技術(shù),但比較狹義的圖像處理主要滿足對圖像進(jìn)行各種加工,以改善圖像的視覺效果,并為自動識別打基礎(chǔ),或?qū)D像進(jìn)行壓縮編碼,以減少所需存儲空間或傳輸時間,達(dá)到傳輸通路的要求。8第八頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念3.圖像分析圖像分析主要是對圖像中感興趣的目標(biāo)進(jìn)行檢測和測量,從而建立對圖像的描述。圖像分析是一個從圖像到數(shù)值或符號的過程,主要研究用自動或半自動裝置和系統(tǒng),從圖像中提取有用的測度、數(shù)據(jù)或信息,生成非圖像的描述或表示。圖像分析并不僅僅是給景物中的各個區(qū)域進(jìn)行分類,還要對千變?nèi)f化和難以預(yù)測的復(fù)雜景物加以描述。因此,圖像分析常常依靠某種知識來說明景物中物體與物體、物體與背景之間的關(guān)系。利用人工智能技術(shù)在分析系統(tǒng)中進(jìn)行各層次控制和有效地訪問知識庫,正在被越來越普遍地采用。圖像分析的內(nèi)容分為特征提取、符號描述、目標(biāo)檢測、景物匹配和識別等幾個部分。圖像分析是一個從圖像到數(shù)據(jù)的過程。這里數(shù)據(jù)可以是對目標(biāo)特征測量的結(jié)果,或是基于測量的符號表示。它們描述了圖像中目標(biāo)的特點和性質(zhì)。因此圖像分析可以看作是中層處理。9第九頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念4.圖像理解圖像理解是由模式識別發(fā)展起來的,該處理輸入的是圖像,輸出的是一種描述。這種描述不僅僅是單純的用符號做出詳細(xì)的描繪,而且要利用客觀世界的知識使計算機(jī)進(jìn)行聯(lián)想、思考及推論,從而理解圖像所表現(xiàn)的內(nèi)容。圖像理解的重點是在圖像分析的基礎(chǔ)上,進(jìn)一步研究圖像中各目標(biāo)的性質(zhì)和它們之間的相互聯(lián)系,并得出對圖像內(nèi)容含義的理解以及對原來客觀場景的解釋,從而指導(dǎo)和規(guī)劃行動。如果說圖像分析主要是以觀察者為中心研究客觀世界,那么圖像理解在一定程度上則是以客觀世界為中心,并借助知識、經(jīng)驗等來把握和解釋整個客觀世界。因此圖像理解主要是高層操作,其處理過程和方法與人類的思維推理有許多類似之處。圖像理解有時也叫景物理解。在這一領(lǐng)域還有相當(dāng)多的問題需要進(jìn)行深入研究。10第十頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念5.與相關(guān)學(xué)科的關(guān)系數(shù)字圖像處理是一門系統(tǒng)地研究各種圖像理論、技術(shù)和應(yīng)用的新的交叉學(xué)科。從它的研究方法來看,與數(shù)學(xué)、物理學(xué)、生物學(xué)、心理學(xué)、電子學(xué)、計算機(jī)科學(xué)等許多學(xué)科可以相互借鑒;從它的研究范圍來看,與模式識別、計算機(jī)視覺、計算機(jī)圖形學(xué)等多個專業(yè)又互相交叉。圖7-1給出了數(shù)字圖像處理與相關(guān)學(xué)科和領(lǐng)域的聯(lián)系和區(qū)別。另外,數(shù)字圖像處理的研究進(jìn)展與人工智能、神經(jīng)網(wǎng)絡(luò)、遺傳算法、模糊邏輯等理論和技術(shù)都有密切的聯(lián)系,它的發(fā)展應(yīng)用與醫(yī)學(xué)、遙感、通信、文檔處理和工業(yè)自動化等許多領(lǐng)域也是不可分割的。11第十一頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念圖7-1圖像處理與相關(guān)學(xué)科的聯(lián)系和區(qū)別從圖7-1可以看到數(shù)字圖像處理3個層次各自不同的輸入輸出內(nèi)容以及它們與計算機(jī)圖形學(xué)、模式識別、計算機(jī)視覺等的關(guān)系。計算機(jī)圖形學(xué)研究的是如何利用計算機(jī)技術(shù)來產(chǎn)生圖形、圖表、繪圖等形式表達(dá)數(shù)據(jù)信息的科學(xué)。與圖像分析相比,兩者的處理對象和輸出結(jié)果正好相反。12第十二頁,共八十四頁,2022年,8月28日7.1.2數(shù)字圖像處理的相關(guān)概念計算機(jī)圖形學(xué)試圖從非圖像形式的數(shù)據(jù)描述來生成逼真的圖像。另一方面,模式識別與圖像分析則比較相似,只是模式識別是試圖把圖像分解成可用符號較抽象地描述的方式。它們有相同的輸入,而不同的輸出結(jié)果可以比較方便地進(jìn)行轉(zhuǎn)換。計算機(jī)視覺則主要強(qiáng)調(diào)用計算機(jī)實現(xiàn)人的視覺功能,這中間實際上用到數(shù)字圖像處理3個層次的許多技術(shù),但目前的研究內(nèi)容主要與圖像理解相結(jié)合。

由此看來,以上學(xué)科互相聯(lián)系,覆蓋面有所重合。事實上這些名詞也常混合使用,它們在概念上或?qū)嵱弥胁]有明顯的界限。在許多場合和情況下,它們只是專業(yè)和背景不同的人習(xí)慣使用的不同術(shù)語。它們雖各有側(cè)重但常常是互為補(bǔ)充的。另外,以上各學(xué)科都得到了包括人工智能、神經(jīng)網(wǎng)絡(luò)、遺傳算法、模糊邏輯等新理論、新工具、新技術(shù)的支持,因此,它們又都在近年得到了長足進(jìn)展。總的來說,數(shù)字圖像處理既能較好地將許多相近學(xué)科兼蓄并容,也進(jìn)一步強(qiáng)調(diào)了圖像技術(shù)的應(yīng)用。13第十三頁,共八十四頁,2022年,8月28日數(shù)字圖像處理方法數(shù)字圖像的處理方法種類繁多,根據(jù)不同的分類標(biāo)準(zhǔn)可以得到不同的分類結(jié)果,例如根據(jù)對圖像作用域的不同,數(shù)字圖像處理方法大致可分為兩大類,即空域處理方法和變換域處理方法。1. 空域處理方法空域處理方法是指在空間域內(nèi)直接對數(shù)字圖像進(jìn)行處理。在處理時,既可以直接對圖像各像素點進(jìn)行灰度上的變換處理,也可以對圖像進(jìn)行小區(qū)域模板的空域濾波等處理,以充分考慮像素鄰域像素點對其的影響。一般來說,空間域處理算法的結(jié)構(gòu)并不算太復(fù)雜,處理速度也還是比較快的。這種方法是把圖像看作是平面中各個像素組成的集合,然后直接對這一二維函數(shù)進(jìn)行相應(yīng)的處理??沼蛱幚矸ㄖ饕幸韵聝纱箢悾?4第十四頁,共八十四頁,2022年,8月28日數(shù)字圖像處理方法(1)領(lǐng)域處理法鄰域處理法是對圖像像素的某一鄰域進(jìn)行處理的方法。如均值濾波法、梯度運(yùn)算、拉普拉斯算子運(yùn)算、平滑算子運(yùn)算和卷積運(yùn)算。(2)點處理法點處理法是指對圖像像素逐一處理的方法。例如,利用像素累積計算某一區(qū)域面積或某一邊界的周長等。15第十五頁,共八十四頁,2022年,8月28日數(shù)字圖像處理方法2. 變換域處理方法數(shù)字圖像處理的變換域處理方法首先是通過傅里葉變換、離散余弦變換、沃爾什變換或是比較新的小波變換等變換算法,將圖像從空間域變換到相應(yīng)的變換域,得到變換域系數(shù)陣列,然后在變換域中對圖像進(jìn)行處理,處理完成后再將圖像從變換域反變換到空間域,得到處理結(jié)果。由于變換域的作用空間比較特殊,不同于以往的空域處理方法,因此可以實現(xiàn)許多在空間域中無法完成或是很難實現(xiàn)的處理,廣泛用于濾波、編碼壓縮等方面。由于各種變換算法在把圖像從空間域向變換域進(jìn)行變換以及反變換中均有相當(dāng)大的計算量,所以目前雖然也有許多快速算法,但變換域處理算法的運(yùn)算速度仍受變換和反變換處理速度的制約而很難提高。這類處理包括濾波、數(shù)據(jù)壓縮及特征提取等。16第十六頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的主要研究內(nèi)容數(shù)字圖像處理概括地講主要包括如下幾項內(nèi)容:圖像變換,圖像增強(qiáng),圖像編碼與壓縮,圖像復(fù)原,圖像重建,圖像識別以及圖像理解。1. 圖像變換圖像變換是圖像處理和圖像分析的一個重要分支,它是將圖像從空間域(二維平面)變換到另一個域(如頻率域),然后在變換域?qū)D像進(jìn)行處理和分析。變換的目的是根據(jù)圖像在變換域的某些性質(zhì)對其進(jìn)行加工處理,而這些性質(zhì)在空間域很難甚至無法獲取,然后將處理結(jié)果再反變換到空間域。圖像變換是許多圖像處理和圖像分析技術(shù)的基礎(chǔ),是圖像增強(qiáng)、圖像復(fù)原的基本工具,也是圖像特征提取的重要手段。多年來,變換理論自身的發(fā)展為信號處理和圖像處理提供了強(qiáng)有力的支持和重要手段。常用的圖像變換有傅里葉變換、DCT變換、小波變換等。17第十七頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的主要研究內(nèi)容2. 圖像增強(qiáng)圖像增強(qiáng)處理是指根據(jù)一定的要求,突出圖像中感興趣的信息,而減弱或去除不需要的信息,從而使有用信息得到加強(qiáng)的信息處理方法。根據(jù)增強(qiáng)處理過程所在的空間不同,圖像增強(qiáng)技術(shù)可分為基于空間域的增強(qiáng)方法和基于頻率域的增強(qiáng)方法兩類。前者直接在圖像所在的二維空間進(jìn)行處理,即直接對每一像元的灰度值進(jìn)行處理;后者則是先將圖像從空間域按照某種變換模型(如傅里葉變換)變換到頻率域,然后再頻率域空間對圖像進(jìn)行處理,再將其反變換到空間域。圖像增強(qiáng)的主要方法有直方圖增強(qiáng)法、空域濾波法、頻率域濾波法以及彩色增強(qiáng)法等。18第十八頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的主要研究內(nèi)容3. 圖像編碼與壓縮二維形式呈現(xiàn)的數(shù)字圖像,其信息量很大,給傳輸、處理、存儲、顯示等都帶來了不少問題。圖像編碼就是利用圖像信號的統(tǒng)計特性及人類視覺的生理學(xué)和心理學(xué)特性,對圖像信號進(jìn)行高效編碼,以解決數(shù)據(jù)量大的矛盾。一般來說,圖像編碼的目的有3個:1、盡量減少表示數(shù)字圖像時需要的數(shù)據(jù)量;2、降低數(shù)據(jù)量以減少傳輸帶寬;3、壓縮信息量,便于特征抽取,為識別作準(zhǔn)備。根據(jù)解壓重建后的圖像和原始圖像之間是否具有誤差,圖像編碼壓縮分為無誤差編碼和有誤差編碼兩大類。根據(jù)編碼方法作用域不同,圖像編碼又分為空間域編碼和變換域編碼兩大類。19第十九頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的主要研究內(nèi)容4. 圖像復(fù)原圖像復(fù)原,也叫圖像恢復(fù)。其目的是找出圖像降質(zhì)的起因,并盡可能消除它,使圖像恢復(fù)本來面目。常用的恢復(fù)有糾正幾何失真、從已知圖像信號和噪聲的統(tǒng)計特性入手,用Wiener濾波等方法來改善信噪比等。典型的例子如去噪就屬于復(fù)原處理。去模糊也是復(fù)原處理的任務(wù)。這些模糊來自透鏡散焦、相對運(yùn)動、大氣湍流以及云層遮擋等。這些干擾可用維納濾波、逆濾波、同態(tài)濾波等方法加以去除。20第二十頁,共八十四頁,2022年,8月28日數(shù)字圖像處理的主要研究內(nèi)容5. 圖像重建幾何處理、圖像增強(qiáng)、圖像復(fù)原都是從圖像到圖像的處理,即輸入的原始數(shù)據(jù)是圖像,處理后輸出的也是圖像,而重建處理則是從數(shù)據(jù)到圖像的處理。也就是說輸入的是某種數(shù)據(jù),而處理結(jié)果得到的是圖像。該處理的典型應(yīng)用就是CT技術(shù)。圖像重建的主要算法有代數(shù)法、迭代法、傅里葉反投影法、卷積反投影法等,其中以卷積反投影法運(yùn)用最為廣泛。值得注意的是三維重建算法發(fā)展得很快,而且由于與計算機(jī)圖形學(xué)相結(jié)合,可以把多個二維圖像合成三維圖像,并加以光照模型和各種渲染技術(shù),從而生成各種具有強(qiáng)烈真實感及純凈的高質(zhì)量圖像。三維重建技術(shù)是當(dāng)今頗為熱門的虛擬現(xiàn)實和科學(xué)可視化技術(shù)的基礎(chǔ)。21第二十一頁,共八十四頁,2022年,8月28日7.2基于MATLAB的圖像處理1. MATLAB基礎(chǔ)

MATLAB是一個交互式系統(tǒng),其基本數(shù)據(jù)元素是無需定義的數(shù)組。與高級語言相比,它只需極少的代碼就可以解決眾多的數(shù)值問題。因此,特別適合解決需要矩陣運(yùn)算的工程問題,在數(shù)字圖像處理領(lǐng)域有重要的用途。MATLAB是一種面向數(shù)組(array)的編程語言,其數(shù)據(jù)類型的最大特點是每一種類型都以數(shù)組為基礎(chǔ),從數(shù)組中派生出來。事實上,MATLAB把每種類型的數(shù)據(jù)都作為數(shù)組來處理。MATLAB有6種基本的數(shù)據(jù)類型,即:字符(char)、雙精度數(shù)值(double)、稀疏數(shù)據(jù)(sparse)、存儲型(storage)、單元數(shù)組(cell)和結(jié)構(gòu)(struct)。數(shù)據(jù)類型間的關(guān)系如圖7-2所示。7.2.1MATLAB簡介22第二十二頁,共八十四頁,2022年,8月28日7.2.1MATLAB簡介圖7-2MATLAB的數(shù)據(jù)結(jié)構(gòu)在圖7-2中,存儲型是一個虛擬數(shù)據(jù)類型,是MATLAB5.3版以后新增的定義,它包括int8(8位整型)、uint8(無符號8位整型)、int16(16位整型)、uint16(無符號16位整型)、int32(32位整型)和uint32(無符號32位整型)。23第二十三頁,共八十四頁,2022年,8月28日7.2.1MATLAB簡介最常用的數(shù)據(jù)類型只有雙精度型和字符型,所有MATLAB計算都把數(shù)據(jù)當(dāng)作雙精度型處理。其他數(shù)據(jù)類型只在一些特殊條件下使用。例如,無符號8位整型一般用于儲存圖像數(shù)據(jù);單元數(shù)組和結(jié)構(gòu)數(shù)組一般用在大型程序中;稀疏數(shù)據(jù)一般用于處理電路、醫(yī)學(xué)、有限元素法及偏微分方程中出現(xiàn)的稀疏矩陣(一個矩陣中,如果包含許多零元素,此矩陣即可稱為稀疏矩陣)。存儲型數(shù)組一般只用于內(nèi)存的有效儲存,可對這些類型的數(shù)組進(jìn)行操作,但不能進(jìn)行任何數(shù)學(xué)運(yùn)算,否則必須使用double函數(shù)把它轉(zhuǎn)換為雙精度類型。24第二十四頁,共八十四頁,2022年,8月28日2. MATLAB的運(yùn)行

MATLAB有兩種常用的工作模式:一種是在命令窗口中直接輸入簡單的命令;另一種是.m文件的編程工作方式。前者適用于命令行這種比較簡單的情形,而后者則適用于進(jìn)行大量的復(fù)雜計算的情形。圖7-3是MATLAB啟動后桌面布置方式的默認(rèn)設(shè)置,包含1個工具欄、3個區(qū)域、5個工作窗口,這5個工作窗口分別為發(fā)射臺(LaunchPad)、工作區(qū)(Workspace)、命令歷史(CommandHistory)、當(dāng)前路徑(CurrentDirectory)和命令窗口(CommandWindows)。MATLAB的工作窗口是一個標(biāo)準(zhǔn)的Windows界面,可以利用菜單命令完成對工作窗口的操作,使用方法與一般的Windows應(yīng)用程序相同。其中最為重要的是命令窗口,如圖7-3中最右端的子窗口所示。7.2.1MATLAB簡介25第二十五頁,共八十四頁,2022年,8月28日圖7-3MATLAB工作環(huán)境7.2.1MATLAB簡介26第二十六頁,共八十四頁,2022年,8月28日(1)命令行輸入方式MATLAB是以矩陣為基本運(yùn)算單元的,因此,以矩陣的乘法運(yùn)算為例介紹MATLAB命令行輸入的工作模式?!纠?-1】求解矩陣A=乘以矩陣B=的結(jié)果。在MATLAB命令窗口(commandwindows)內(nèi)提示符號()之后輸入如下表達(dá)式,并按下Enter鍵即可:7.2.1MATLAB簡介27第二十七頁,共八十四頁,2022年,8月28日MATLAB會將運(yùn)算結(jié)果直接存入默認(rèn)變量ans,代表MATLAB運(yùn)算后的答案(answer),并在屏幕上顯示其運(yùn)算結(jié)果。若不想讓MATLAB每次都顯示運(yùn)算結(jié)果,只需在表達(dá)式最后加上分號(;)即可。此時MATLAB只會將運(yùn)算結(jié)果直接存入默認(rèn)變量ans內(nèi),而不會顯示在屏幕上。使用者也可以將運(yùn)算結(jié)果儲存于自己設(shè)定的變量C內(nèi),如鍵入如下表達(dá)式回車。7.2.1MATLAB簡介28第二十八頁,共八十四頁,2022年,8月28日MATLAB會直接輸出矩陣相乘的結(jié)果。7.2.1MATLAB簡介通過這一例子可以發(fā)現(xiàn):一般高級語言需要編寫4次循環(huán)才能求的矩陣乘法,在MATLAB中只需使用一行代碼。由此可以看到MATLAB在矩陣運(yùn)算方面的強(qiáng)大功能,這為圖像處理提供了豐富、準(zhǔn)確、快捷的運(yùn)行環(huán)境。29第二十九頁,共八十四頁,2022年,8月28日(2)m文件的編程工作方式MATLAB提供了m文件編輯器作為編制和調(diào)試m文件的工作界面。在MATLAB的運(yùn)行環(huán)境中,用鼠標(biāo)單擊菜單欄上的[File][open]命令,選擇[m-file]項,或者直接單擊工具欄的[新建]按鈕,進(jìn)入MATLAB的m文件編輯器,如圖7-4所示。7.2.1MATLAB簡介圖7-4MATLAB的m文件編輯器30第三十頁,共八十四頁,2022年,8月28日利用m文件可以自編函數(shù)和命令,也可以對已經(jīng)存在的函數(shù)和命令進(jìn)行修改和擴(kuò)充,因此對MATLAB的二次開發(fā)非常方便。在MATLAB中,m文件有兩種形式,一種是命令文件(腳本文件script-file);另一種是函數(shù)文件(function-file)。下面將通過具體實例較為詳細(xì)地說明命令文件(腳本文件)的建立和運(yùn)行。【例7-2】建立命令文件,并繪制寶石項鏈圖。

(1)進(jìn)入MATLAB的m文件編輯器

(2)在編輯器窗口中輸入文件內(nèi)容:t=(0:0.02:2)*pi;%(0:0.02:2)表示(0,2)之間以0.02為間隔的向量x=sin(t);y=cos(t);z=cos(2*t);7.2.1MATLAB簡介31第三十一頁,共八十四頁,2022年,8月28日plot3(x,y,z,'b-',x,y,z,'bd')view([-80,60])boxonlegend('鏈子','寶石');(3)單擊[Fi1e]->[save]命令,將所寫文件自動保存在磁盤目錄D:\MATLAB\work上,并取名為diamond.m。(4)在MATLAB命令窗口中直接輸入文件名diamond回車,運(yùn)行結(jié)束后即可得到如圖7-5所示的寶石項鏈圖。7.2.1MATLAB簡介32第三十二頁,共八十四頁,2022年,8月28日圖7-5用MATLAB繪制的寶石項鏈圖7.2.1MATLAB簡介33第三十三頁,共八十四頁,2022年,8月28日計算機(jī)編程語言允許程序員根據(jù)某些結(jié)構(gòu)來控制程序的執(zhí)行次序。MATLAB和大多數(shù)計算機(jī)語言一樣,提供了設(shè)計程序所必需的程序結(jié)構(gòu),即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。在MATLAB中,循環(huán)結(jié)構(gòu)由for-end循環(huán)語句和while-end循環(huán)語句實現(xiàn),分支結(jié)構(gòu)由if-end語句和switch-case-end實現(xiàn)。現(xiàn)僅以if-end語句為例,說明它的具體用法?!纠?-3】繪制函數(shù)的圖形。其程序為:%-----------------------------------------------------7.2.1MATLAB簡介34第三十四頁,共八十四頁,2022年,8月28日forx=-3:0.01:3,ifx>=1,y=8*x^2+1;holdon;plot(x,y);elseif-1<=x,y=0;holdon;plot(x,y);else,y=-x^3;holdon;plot(x,y);endend7.2.1MATLAB簡介35第三十五頁,共八十四頁,2022年,8月28日%-----------------------------------------------------其執(zhí)行結(jié)果如圖7-6所示。圖7-6用MATLAB繪制的圖形7.2.1MATLAB簡介36第三十六頁,共八十四頁,2022年,8月28日3. MATLAB圖像處理功能

MATLAB提供了強(qiáng)大的矩陣運(yùn)算功能。如特征值和特征向量計算、矩陣求逆等都可以直接通過MATLAB提供的函數(shù)求出。MATLAB還提供了許多用于小波分析、圖像處理、信號處理、虛擬現(xiàn)實、神經(jīng)網(wǎng)絡(luò)等的工具包。其中,圖像處理工具包提供了許多可用于圖像處理的相關(guān)函數(shù)。按功能可以分為以下幾類:圖像顯示,圖像文件輸入與輸出,幾何操作,像素值和統(tǒng)計,圖像分析與增強(qiáng),圖像濾波,線性二維濾波器設(shè)計,圖像變換,領(lǐng)域和塊操作,二值圖像操作,顏色映射和顏色空間轉(zhuǎn)換,圖像類型和類型轉(zhuǎn)換,工具包參數(shù)獲取和設(shè)置等。常用的函數(shù)包括如下幾種。(1)函數(shù)名:uint8格式:uint8(A);功能:將數(shù)據(jù)A轉(zhuǎn)換為8位無符號整數(shù)類型數(shù)據(jù)7.2.1MATLAB簡介37第三十七頁,共八十四頁,2022年,8月28日例如:watermarked_image_uint8=uint8(watermarked_image_round);(2)函數(shù)名:double格式:double(A);

功能:將數(shù)據(jù)A轉(zhuǎn)換為64位雙精度浮點類型數(shù)據(jù)例:double(imread('lena.bmp'));在MATLAB中,灰度圖像由一個uint8、uint16或一個雙精度類型double的數(shù)組來描述。由于MATLAB不支持uint8類型數(shù)據(jù)的矩陣運(yùn)算,所以在進(jìn)行某些圖像點運(yùn)算處理時,首先要將圖像數(shù)據(jù)轉(zhuǎn)換為雙精度類型參加運(yùn)算,計算完以后再將其轉(zhuǎn)換為uint8類型存儲或顯示圖像。7.2.1MATLAB簡介38第三十八頁,共八十四頁,2022年,8月28日(3)函數(shù)名:imread格式:imread(‘文件名’,文件格式)功能:讀取圖像文件數(shù)據(jù)例:Z=imread('lena.bmp')

其功能為將文件格式為bmp的圖像文件lena.bmp圖像數(shù)據(jù)讀取出來,并作為無符號8位整型數(shù)據(jù)(unit8)放入二維數(shù)組變量Z中。(4)函數(shù)名:imwrite格式:imwrite(A,‘文件名’,文件格式)功能:保存圖像文件數(shù)據(jù)例:imwrite(ZA,'watermarked.bmp','bmp')其功能為將變量ZA中的圖像數(shù)據(jù)寫入文件名為watermarked.bmp的文件中,保存格式為bmp。7.2.1MATLAB簡介39第三十九頁,共八十四頁,2022年,8月28日(5)函數(shù)名:imshow格式:imshow(I,[LOWHIGH])功能:顯示灰度圖像例:imshow(ZA,[])其功能為顯示灰度圖像ZA,并指定灰度級范圍[LOWHIGH],若如不確定數(shù)據(jù)的范圍[LOWHIGH],可使用空矢量作為參數(shù)顯示圖像,即imshow(ZA,[])。Imread、imwrite、imshow可以將格式為bmp的圖像文件轉(zhuǎn)換為只含圖像數(shù)據(jù)的矩陣,也可以將處理過的數(shù)據(jù)矩陣轉(zhuǎn)換成圖像文件,并能對處理前后的圖像文件進(jìn)行顯示,因而,可以很方便地用于數(shù)字圖像中數(shù)字水印的嵌入與檢測。7.2.1MATLAB簡介40第四十頁,共八十四頁,2022年,8月28日(6)函數(shù)名:subplot格式:subplot(m,n,p)功能:將一個圖形窗口劃分為多個顯示區(qū)域例:subplot(2,2,1);其功能將圖形窗口劃分為2×2個矩形顯示區(qū)域,并激活第1個顯示區(qū)域,常與imshow函數(shù)并用可以將多幅圖像顯示在同一個單獨的圖形窗口中。(7)函數(shù)名:fft2功能:對矩陣A做二維快速傅立葉變換格式:B=fft2(A,[M,N])其中,A表示要變換的矩陣,M和N是可選參數(shù),通過補(bǔ)0元素或截取多余元素,使A成為M×N階矩陣,然后計算其二維FFT。B表示變換后得到的二維FFT系數(shù)矩陣。7.2.1MATLAB簡介41第四十一頁,共八十四頁,2022年,8月28日(8)函數(shù)名:fftshift格式:B=fftshift(A)功能:把傅立葉變換結(jié)果中的直流分量移到中間位置若A為向量,則fftshift將其左、右半部互換,若A為矩陣,則交換A的1,3象限和2,4象限。對多維陣列,fftshift對每一維的兩個“半空間”進(jìn)行交換。fftshift常用于FFT結(jié)果的可視化。(9)函數(shù)名:ifft2格式:A=ifft2(B,[M,N])功能:對矩陣B做二維快速逆傅立葉逆變換其中,B表示要變換的矩陣,M和N是可選參數(shù),通過補(bǔ)0元素或截取多余元素,使B成為M×N階矩陣,然后計算其二維FFT。A表示經(jīng)過二維傅立葉逆變換后的系數(shù)矩陣。7.2.1MATLAB簡介42第四十二頁,共八十四頁,2022年,8月28日【例7-4】計算并顯示圖像的傅立葉變換FFT及逆變換IFFT。I=imread('lena.bmp');subplot(1,3,1),imshow(uint8(I));%顯示原始圖像J=fft2(I);%圖像FFT變換B=fftshift(J);%顯示FFT變換結(jié)果subplot(1,3,2),imshow(log(abs(B)),[]);H=ifft2(J);%使用逆變換復(fù)原圖像并顯示結(jié)果subplot(1,3,3),imshow(uint8(H));執(zhí)行結(jié)果如圖7-7所示。7.2.1MATLAB簡介43第四十三頁,共八十四頁,2022年,8月28日(a)lena原圖(b)經(jīng)過FFT變換后的頻譜圖像(c)經(jīng)IFFT后的圖像圖7-7原始圖像與FFT和IFFT變換后的圖像比較7.2.1MATLAB簡介44第四十四頁,共八十四頁,2022年,8月28日(10)函數(shù)名:dct2格式:B=dct2(A,[M,N])功能:求矩陣A的DCT變換系數(shù)其中,A表示要變換的矩陣,M和N是可選參數(shù),通過補(bǔ)0元素或截取多余元素,使A成為M×N階矩陣,然后計算其二維離散余弦變換。B表示變換后得到的離散余弦變換系數(shù)矩陣?!纠?-5】調(diào)用dct2函數(shù)計算二維圖像的DCT系數(shù)并顯示結(jié)果。由于離散余弦變換DCT會產(chǎn)生負(fù)系數(shù),為了顯示離散余弦變換DCT的系數(shù)幅值大小,可以使用絕對值函數(shù)abs(x)。程序代碼如下:I=imread('lena.bmp');J=dct2(I);%計算二維圖像的DCT系數(shù)7.2.1MATLAB簡介45第四十五頁,共八十四頁,2022年,8月28日subplot(1,2,1),imshow(uint8(I));subplot(1,2,2),imshow(uint8(abs(J)));%顯示二維圖像的DCT系數(shù)的大小執(zhí)行結(jié)果如圖7-8所示。

(a)lena原圖(b)經(jīng)DCT變換后的圖像圖7-8離散余弦變換前后圖像顯示效果比較7.2.1MATLAB簡介46第四十六頁,共八十四頁,2022年,8月28日在灰度圖像中,0表示黑色,255表示白色。從圖7-8(b)可以看出:圖像經(jīng)過全局DCT變換后,數(shù)值較大的DCT系數(shù)基本上都集中在左上角的低頻分量中,數(shù)值較小的DCT系數(shù)大都集中在右下角的高頻分量中。(11)函數(shù)名:idct2格式:A=idct2(B,[M,N])功能:計算逆DCT變換其中,B表示要變換的矩陣,M和N是可選參數(shù),通過補(bǔ)0元素或截取多余元素,使B成為M×N階矩陣,然后計算其二維離散余弦逆變換。A表示B經(jīng)過二維離散余弦逆變換后得到的系數(shù)矩陣。7.2.1MATLAB簡介47第四十七頁,共八十四頁,2022年,8月28日【例7-6】計算并顯示圖像的離散余弦變換DCT及逆變換IDCT。變換后的DCT系數(shù)的幅度值大部分較?。?代表黑色,如圖7-9(b)所示),這就為圖像壓縮提供了一種途徑。例如通過設(shè)置一個閾值,把絕對值小于的DCT系數(shù)置為0,即去掉一些微不足道的系數(shù);再將這些處理過的DCT系數(shù)通過離散余弦變換生成重構(gòu)圖像;重構(gòu)圖像(圖7-9(c))與原始圖像(圖7-9(a))往往不存在任何視覺差異。這樣,通過上述對系數(shù)的處理就可極大地減少圖像數(shù)據(jù)的存儲、傳輸,完成圖像的壓縮。數(shù)字水印技術(shù)亦是如此。通過一定的算法,修改分解后的DCT系數(shù),以達(dá)到其相應(yīng)的保護(hù)目的。7.2.1MATLAB簡介48第四十八頁,共八十四頁,2022年,8月28日(a)lena原圖(b)經(jīng)過DCT和IDCT(c)=10的重構(gòu)圖像(d)=100的重構(gòu)圖像后的圖像圖7-9原始圖像與DCT和IDCT變換后的圖像比較程序代碼如下:I=imread('lena.bmp');subplot(1,4,1),imshow(uint8(I);)%顯示原始圖像J=dct2(I);%圖像DCT變換7.2.1MATLAB簡介49第四十九頁,共八十四頁,2022年,8月28日K=idct2(J);subplot(1,4,2),imshow(uint8(K));%使用逆變換復(fù)原圖像J(abs(J)<10)=0;%將較小的系數(shù)設(shè)置為0M=idct2(J);subplot(1,4,3),imshow(uint8(M));%使用逆變換部分復(fù)原圖像J(abs(J)<100)=0;%將較小的系數(shù)設(shè)置為0N=idct2(J);subplot(1,4,4),imshow(uint8(N));%使用逆變換部分復(fù)原圖像(12)函數(shù)名:randrand函數(shù)共8種,與圖像處理相關(guān)的主要有兩種。因此僅對這兩種做一個簡要的介紹。格式:rand('state',J);rand(N,M)7.2.1MATLAB簡介50第五十頁,共八十四頁,2022年,8月28日功能:rand(‘state’,J)將隨機(jī)數(shù)生成器設(shè)置到第J個狀態(tài),其值可以任意設(shè)定。不同的狀態(tài)J將生成不同的隨機(jī)矩陣,而設(shè)定了相同的狀態(tài)J,就可生成相同的隨機(jī)數(shù)矩陣。rand(N,M)產(chǎn)生元素值在(0.0,1.0)內(nèi)的N×M階均勻分布隨機(jī)矩陣。通常rand('state',J)與rand(N,M)聯(lián)合使用。如在命令窗口輸入如下表達(dá)式:回車后顯示:B=0.23810.03880.93200.5062即通過表達(dá)式將隨機(jī)數(shù)生成器的當(dāng)前狀態(tài)設(shè)定為J=7;表達(dá)式rand(1,4)根據(jù)當(dāng)前的狀態(tài)J的數(shù)值生成一個基于狀態(tài)J的14的隨機(jī)矩陣,其元素值在(0.0,1.0)內(nèi)均勻分布。7.2.1MATLAB簡介51第五十一頁,共八十四頁,2022年,8月28日ImageProcessingToolbox?(圖像處理工具箱)提供一套全方位的參照標(biāo)準(zhǔn)算法和圖形工具,用于進(jìn)行圖像處理、分析、可視化和算法開發(fā)。可進(jìn)行圖像增強(qiáng)、圖像去模糊、特征檢測、降噪、圖像分割、空間轉(zhuǎn)換和圖像配準(zhǔn)。該工具箱中的許多功能支持多線程,可發(fā)揮多核和多處理器計算機(jī)的性能。圖像處理工具箱支持多種多樣的圖像類型,包括高動態(tài)范圍、千兆像素分辨率、ICC兼容色彩和斷層掃描圖像。圖形工具可用于探索圖像、檢查像素區(qū)域、調(diào)節(jié)對比度、創(chuàng)建輪廓或柱狀圖以及操作感興趣區(qū)域(ROI)。工具箱算法可用于還原退化的圖像、檢查和測量特征、分析形狀和紋理并調(diào)節(jié)圖像的色彩平衡。7.2.2圖像處理工具箱(ImageProcessingToolbox:ITP)簡介52第五十二頁,共八十四頁,2022年,8月28日主要特性: 圖像增強(qiáng)、濾波和去模糊 圖像分析,其中包括分割、形態(tài)、特征提取和測量 空間轉(zhuǎn)換和圖像配準(zhǔn) 圖像變換,其中包括FFT、DCT、Radon和扇束投影 用于處理、顯示和瀏覽任意大圖像的工作流程 模塊化交互式工具,其中包括ROI選擇、柱狀圖和距離測量

ICC色彩管理 多維圖像處理 圖像序列和視頻顯示

DICOM導(dǎo)入和導(dǎo)出7.2.2圖像處理工具箱(ImageProcessingToolbox:ITP)簡介53第五十三頁,共八十四頁,2022年,8月28日7.3圖像的獲取,存儲及表示計算機(jī)中的數(shù)字圖像按其生成方法可以分為兩大類,一類是從現(xiàn)實世界中通過數(shù)字化設(shè)備獲取的圖像,它們稱為取樣圖像(sampledimage)、點陣圖像(dotmatriximage)、位圖圖像(bitmapimage),以下簡稱圖像(image);另一類是計算機(jī)合成的圖像(syntheticimage),它們稱為矢量圖形(vectorgraphics),或簡稱圖形(graphics)。從現(xiàn)實世界中獲得數(shù)字圖像的過程稱為圖像的獲?。╟apturing),所使用的設(shè)備通稱為圖像獲取設(shè)備。例如對印刷品、照片或照相底片等進(jìn)行掃描輸人,用數(shù)字相機(jī)或數(shù)字?jǐn)z像機(jī)對選定的景物進(jìn)行拍攝。圖像的獲取54第五十四頁,共八十四頁,2022年,8月28日圖像獲取的過程實質(zhì)上是模擬信號的數(shù)字化過程,它的處理步驟大體分為四步:(1)掃描。將畫面劃分為M×N個網(wǎng)格,每個網(wǎng)格稱為一個取樣點,用其亮度值來表示。這樣,一幅模擬圖像就轉(zhuǎn)換為M×N個取樣點組成的一個陣列。(2)分色。將彩色圖像的取樣點的顏色分解成3個基色(例如R,G,B三基色),如果不是彩色圖像(即灰度圖像或黑白圖像),則每一個取樣點只有一個亮度值。(3)取樣。測量每個取樣點的每個分量(基色)的亮度值(4)量化。對取樣點的每個分量進(jìn)行A/D轉(zhuǎn)換,把模擬量的亮度值使用數(shù)字量(一般是8位至12位的正整數(shù))來表示。通過上述方法所獲取的數(shù)字圖像稱為取樣圖像(sampledimage),它是靜止圖像(stillimage)的數(shù)字化表示形式,通常簡稱為“圖像”(image)。圖像的獲取55第五十五頁,共八十四頁,2022年,8月28日圖7-10圖像的數(shù)字化過程數(shù)字圖像獲取設(shè)備的功能是將現(xiàn)實的景物輸人到計算機(jī)內(nèi)并以取樣圖像的形式表示。2D圖像獲取設(shè)備(如掃描儀、數(shù)碼相機(jī)等)只能對圖片或景物的2D投影進(jìn)行數(shù)字化,3D掃描儀則能獲取包括深度信息在內(nèi)的3D景物的信息。圖像的獲取56第五十六頁,共八十四頁,2022年,8月28日BMP(Bitmap-File)圖形文件是Windows采用的圖形文件格式,在Windows環(huán)境下運(yùn)行的所有圖象處理軟件都支持BMP圖象文件格式。Windows系統(tǒng)內(nèi)部各圖像繪制操作都是以BMP為基礎(chǔ)的。BMP位圖文件默認(rèn)的文件擴(kuò)展名是BMP或者bmp。位圖文件可看成由4個部分組成:位圖文件頭(bitmap-fileheader)、位圖信息頭(bitmap-informationheader)、彩色表(colortable)和定義位圖的字節(jié)陣列。圖形文件的所有數(shù)值在存儲上都是按“高位放高位、低位放低位的原則”(littleendian),如12345678h放在存儲器中就是78563412。下圖是導(dǎo)出來的一個例子。424D4690000000000000460000002800000080000000900000000100*10000300000000900000A00F0000A00F00000000000000000000*00F80000E00700001F00000000000000*02F184F104F184F184F106F284F106F204F286F206F286F286F2……。7.3.2BMP文件格式57第五十七頁,共八十四頁,2022年,8月28日下面來看看位圖文件(*.BMP)的格式,位圖文件主要分為如下3個部分:表7-11、文件信息頭BITMAPFILEHEADER結(jié)構(gòu)體定義如下:typedefstructtagBITMAPFILEHEADER{/*bmfh*/UINTbfType; 7.3.2BMP文件格式塊名稱對應(yīng)Windows結(jié)構(gòu)體定義大?。˙yte)文件信息頭BITMAPFILEHEADER14位圖信息頭BITMAPINFOHEADER40RGB顏色陣列BYTE*由圖像長寬尺寸決定58第五十八頁,共八十四頁,2022年,8月28日DWORDbfSize;UINTbfReserved1;UINTbfReserved2;DWORDbfOffBits;}BITMAPFILEHEADER;其中:表7-27.3.2BMP文件格式bfType說明文件的類型,該值必需是0x4D42,也就是字符'BM'。bfSize說明該位圖文件的大小,用字節(jié)為單位bfReserved1保留,必須設(shè)置為0bfReserved2保留,必須設(shè)置為0bfOffBits說明從文件頭開始到實際的圖象數(shù)據(jù)之間的字節(jié)的偏移量。這個參數(shù)是非常有用的,因為位圖信息頭和調(diào)色板的長度會根據(jù)不同情況而變化,所以你可以用這個偏移值迅速的從文件中讀取到位數(shù)據(jù)。59第五十九頁,共八十四頁,2022年,8月28日2、位圖信息頭BITMAPINFOHEADER結(jié)構(gòu)體定義如下:typedefstructtagBITMAPINFOHEADER{/*bmih*/DWORDbiSize;LONGbiWidth;LONGbiHeight;WORDbiPlanes;WORDbiBitCount;DWORDbiCompression;DWORDbiSizeImage;LONGbiXPelsPerMeter;LONGbiYPelsPerMeter;7.3.2BMP文件格式60第六十頁,共八十四頁,2022年,8月28日DWORDbiClrUsed;DWORDbiClrImportant;}BITMAPINFOHEADER;其中:7.3.2BMP文件格式61第六十一頁,共八十四頁,2022年,8月28日表7-37.3.2BMP文件格式biSize說明BITMAPINFOHEADER結(jié)構(gòu)所需要的字?jǐn)?shù)。biWidth說明圖象的寬度,以象素為單位。biHeight說明圖象的高度,以象素為單位。注:這個值除了用于描述圖像的高度之外,它還有另一個用處,就是指明該圖像是倒向的位圖,還是正向的位圖。如果該值是一個正數(shù),說明圖像是倒向的,如果該值是一個負(fù)數(shù),則說明圖像是正向的。大多數(shù)的BMP文件都是倒向的位圖,也就是時,高度值是一個正數(shù)。biPlanes為目標(biāo)設(shè)備說明位面數(shù),其值將總是被設(shè)為1。biBitCount說明比特數(shù)/象素,其值為1、4、8、16、24、或32。但是由于我們平時用到的圖像絕大部分是24位和32位的,所以我們討論這兩類圖像。biCompression說明圖象數(shù)據(jù)壓縮的類型,同樣我們只討論沒有壓縮的類型:BI_RGB。biSizeImage說明圖象的大小,以字節(jié)為單位。當(dāng)用BI_RGB格式時,可設(shè)置為0。biXPelsPerMeter說明水平分辨率,用象素/米表示。biYPelsPerMeter說明垂直分辨率,用象素/米表示。biClrUsed說明位圖實際使用的彩色表中的顏色索引數(shù)(設(shè)為0的話,則說明使用所有調(diào)色板項)。biClrImportant說明對圖象顯示有重要影響的顏色索引的數(shù)目,如果是0,表示都重要。62第六十二頁,共八十四頁,2022年,8月28日3、RGB顏色陣列有關(guān)RGB三色空間我想大家都很熟悉,這里我想說的是在Windows下,RGB顏色陣列存儲的格式其實BGR。也就是說,對于24位的RGB位圖像素數(shù)據(jù)格式是:表7-4對于32位的RGB位圖像素數(shù)據(jù)格式是:表7-57.3.2BMP文件格式藍(lán)色B值綠色G值紅色R值藍(lán)色B值綠色G值紅色R值透明通道A值63第六十三頁,共八十四頁,2022年,8月28日透明通道也稱Alpha通道,該值是該像素點的透明屬性,取值在0(全透明)到255(不透明)之間。對于24位的圖像來說,因為沒有Alpha通道,故整個圖像都不透明。下一步要實現(xiàn)文件加載。加載文件的目的是要得到圖片屬性,以及RGB數(shù)據(jù),然后可以將其繪制在DC上(GDI),或是生成紋理對象(3D:OpenGL/Direct3D)。這兩種用途在數(shù)據(jù)處理上有點區(qū)別,我們主要按前一種用法講,在和3D有不同的地方,我們再提出來。1、加載文件頭

BITMAPFILEHEADERheader; memset(&header,0,sizeof(header)); inf.read((char*)&header,sizeof(header)); if(header.bfType!=0x4D42) returnfalse;7.3.2BMP文件格式64第六十四頁,共八十四頁,2022年,8月28日

2、加載位圖信息頭

BITMAPINFOHEADERinfoheader; memset(&infoheader,0,sizeof(infoheader)); inf.read((char*)&infoheader,sizeof(infoheader)); m_iImageWidth=infoheader.biWidth; m_iImageHeight=infoheader.biHeight; m_iBitsPerPixel=infoheader.biBitCount;這里我們得到了3各重要的圖形屬性:寬,高,以及每個像素顏色所占用的位數(shù)。7.3.2BMP文件格式65第六十五頁,共八十四頁,2022年,8月28日

3、行對齊。由于Windows在進(jìn)行行掃描的時候最小的單位為4個字節(jié),所以當(dāng)圖片寬X每個像素的字節(jié)數(shù)!=4的整數(shù)倍時要在每行的后面補(bǔ)上缺少的字節(jié),以0填充(一般來說當(dāng)圖像寬度為2的冪時不需要對齊)。位圖文件里的數(shù)據(jù)在寫入的時候已經(jīng)進(jìn)行了行對齊,也就是說加載的時候不需要再做行對齊。但是這樣一來圖片數(shù)據(jù)的長度就不是:寬X高X每個像素的字節(jié)數(shù)了,我們需要通過下面的方法計算正確的數(shù)據(jù)長度:intiLineByteCnt=(((m_iImageWidth*m_iBitsPerPixel)+31)>>5)<<2;m_iImageDataSize=iLineByteCnt*m_iImageHeight;7.3.2BMP文件格式66第六十六頁,共八十四頁,2022年,8月28日

4、加載圖片數(shù)據(jù)對于24位和32位的位圖文件,位圖數(shù)據(jù)的偏移量為sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER),也就是說現(xiàn)在我們可以直接讀取圖像數(shù)據(jù)了。

if(m_pImageData)delete[]m_pImageData; m_pImageData=newunsignedchar[m_iImageDataSize]; inf.read((char*)m_pImageData,m_iImageDataSize);如果你足夠細(xì)心,就會發(fā)現(xiàn)內(nèi)存m_pImageData里的數(shù)據(jù)的確是BGR格式,可以用個純藍(lán)色或者是純紅色的圖片測試一下。

7.3.2BMP文件格式67第六十七頁,共八十四頁,2022年,8月28日

5、繪制GDI繪制代碼。voidCImage::DrawImage(HDChdc,intiLeft,intiTop,intiWidth,intiHeight){ if(!hdc||m_pImageData==NULL) return; BITMAPINFObmi; memset(&bmi,0,sizeof(bmi)); bmi.bmiHeader.biSize=sizeof(BITMAPINFO); bmi.bmiHeader.biWidth=m_iImageWidth;7.3.2BMP文件格式68第六十八頁,共八十四頁,2022年,8月28日 bmi.bmiHeader.biHeight=m_iImageHeight; bmi.bmiHeader.biPlanes=1; bmi.bmiHeader.biBitCount=m_iBitsPerPixel; bmi.bmiHeader.biCompression=BI_RGB; bmi.bmiHeader.biSizeImage=m_iImageDataSize; StretchDIBits(hdc,iLeft,iTop,iWidth,iHeight, 0,0,m_iImageWidth,m_iImageHeight, m_pImageData,&bmi,DIB_RGB_COLORS,SRCCOPY);}7.3.2BMP文件格式69第六十九頁,共八十四頁,2022年,8月28日

圖像表示是圖像信息在計算機(jī)中的表示和存儲方式。圖像表示和圖像運(yùn)算一起組成圖像模型,是模式分析中的重要組成部分。更高一級的圖像表示是描述圖像中的物體和物體間的關(guān)系。這樣一種圖像常常稱為邏輯圖像。可以在圖像信息的不同等級上對圖像進(jìn)行表示。最基本的物理圖像是根據(jù)矩形網(wǎng)格抽樣原理從連續(xù)圖像域中抽取二維灰度陣列(矩陣)得到的。也可以用向量表示二維灰度矩陣,它是按列(或行)掃描灰度矩陣,把下一列(或行)的頭和前一列(或行)的尾相接而成。它們的線性可逆變換同樣可以用來表示圖像。圖像的每一行由行程序列所組成,因此也可以用行程長度編碼表示圖像。7.3.3圖像的表示70第七十頁,共八十四頁,2022年,8月28日7.4常用的圖像處理方法圖像增強(qiáng)(imageenhancement)的目的是增強(qiáng)圖象中的有用信息,它可以是一個失真的過程,其目的是要改善圖像的視覺效果。針對給定圖像的應(yīng)用場合,有目的地強(qiáng)調(diào)圖像的整體或局部特性,將原來不清晰的圖像變得清晰或強(qiáng)調(diào)某些感興趣的特征,擴(kuò)大圖像中不同物體特征之間的差別,抑制不感興趣的特征,使之改善圖像質(zhì)量、豐富信息量,加強(qiáng)圖像判讀和識別效果,滿足某些特殊分析的需要。圖像增強(qiáng)可分成兩大類:頻率域法和空間域法。前者把圖像看成一種二維信號,對其進(jìn)行基于二維傅里葉變換的信號增強(qiáng)。采用低通濾波(即只讓低頻信號通過)法,可去掉圖中的噪聲;采用高通濾波法,則可增強(qiáng)邊緣等高頻信號,使模糊的圖片變得清晰。具有代表性的空間域算法有局部求平均值法和中值濾波(取局部鄰域中的中間像素值)法等,它們可用于去除或減弱噪聲。7.4.1圖像增強(qiáng)71第七十一頁,共八十四頁,2022年,8月28日常用的圖像增強(qiáng)方法有:(1)直方圖均衡化有些圖像在低值灰度區(qū)間上頻率較大,使得圖像中較暗區(qū)域中的細(xì)節(jié)看不清楚。這時可以通過直方圖均衡化將圖像的灰度范圍分開,并且讓灰度頻率較小的灰度級變大,通過調(diào)整圖像灰度值的動態(tài)范圍,自動地增加整個圖像的對比度,使圖像具有較大的反差,細(xì)節(jié)清晰。(2)對比度增強(qiáng)法有些圖像的對比度比較低,從而使整個圖像模糊不清。這時可以按一定的規(guī)則修改原來圖像的每一個象素的灰度,從而改變圖像灰度的動態(tài)范圍。7.4.1圖像增強(qiáng)72第七十二頁,共八十四頁,2022年,8月28日(3)平滑噪聲有些圖像是通過掃描儀掃描輸入、或傳輸通道傳輸過來的。圖像中往往包含有各種各樣的噪聲。這些噪聲一般是隨機(jī)產(chǎn)生的,因此具有分布和大小不規(guī)則性的特點。這些噪聲的存在直接影響著后續(xù)的處理過程,使圖像失真。圖像平滑就是針對圖像噪聲的操作,其主要作用是為了消除噪聲,圖像平滑的常用方法是采用均值濾波或中值濾波,均值濾波是一種線性空間濾波,它用一個有奇數(shù)點的掩模在圖像上滑動,將掩模中心對應(yīng)像素點的灰度值用掩模內(nèi)所有像素點灰度的平均值代替,如果規(guī)定了在取均值過程中掩模內(nèi)各像素點所占的權(quán)重,即各像素點所乘系數(shù),這時就稱為加權(quán)均值濾波;中值濾波是一種非線性空間濾波,其與均值濾波的區(qū)別是掩模中心對應(yīng)像素點的灰度值用掩模內(nèi)所有像素點灰度值的中間值代替。7.4.1圖像增強(qiáng)73第七十三頁,共八十四頁,2022年,8月28日(4)銳化平滑噪聲時經(jīng)常會使圖像的邊緣變的模糊,針對平均和積分運(yùn)算使圖像模糊,可對其進(jìn)行反運(yùn)算采取微分算子使用模板和統(tǒng)計差值的方法,使圖像增強(qiáng)銳化。圖像邊緣與高頻分量相對應(yīng),高通濾波器可以讓高頻分量暢通無阻,而對低頻分量則充分限制,通過高通濾波器去除低頻分量,也可以達(dá)到圖像銳化的目的。7.4.1圖像增強(qiáng)74第七十四頁,共八十四頁,2022年,8月28日圖像模式識別就是分析圖像內(nèi)容,找出圖像中有哪些東西。其步驟包括:(1)圖像分割(物體分離),其任務(wù)是檢測出各個物體,并把它們的圖像和其余景物分離,(2)特征抽?。簩ξ矬w進(jìn)行度量,通過計算對物體的一些重要特性進(jìn)行量化表示,(3)分類,目的是確定每個物體應(yīng)該歸屬的類別。圖像模式識別的應(yīng)通非常廣泛,如字符識別,有清華的尚書OCR識別軟件,郵局信函自動分揀機(jī)。生物特征識別有指紋識別,人像識別等。遙感應(yīng)用如衛(wèi)星云圖,地面導(dǎo)彈、飛機(jī)場等設(shè)施的衛(wèi)星圖像識別處理。醫(yī)學(xué)輔助診斷如CT等圖像的識別處理,輔助診斷等。圖像模式識別的方法很多,從圖像模式識別提取的特征對象來看,圖像識別方法可分為以下幾種:基于形狀特征的識別技術(shù)、基于色彩特征的識別技術(shù)以及基于紋理特征的識別技術(shù)。其中,基于形狀特征的識別方法,其關(guān)鍵是找到圖像中對象形狀及對此進(jìn)行描述,形成可視特征矢量,以完成不同圖像的分7.4.2圖像模式識別75第七十五頁,共八十四頁,2022年,8月28日類,常

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論