圖像識別初探?
??
目錄
1?前言.?1
1.1?植物的發(fā)展史.?1
1.1.1?植物界的類群及多樣性.?1
1.1.2?植物的分類等級.?2
1.2植物的識別方法.?3
1.2.1?花與種子的特性.?3
1.2.2?葉子的特征.?3
1.3?什么是數(shù)字圖像處理.?5
1.3.1?數(shù)字圖像處理概念及其意義.?5
1.3.2?數(shù)字圖像處理中的基本圖像類型.?6
1.3.3?圖像格式分析.?7
1.4?什么是模式識別.?8
1.4.1?模式識別的概念.?8
1.4.2?模式識別研究方向.?9
1.4.3?模式識別在實際中的應(yīng)用.?10
2?預(yù)處理與算法研究.?10
2.1?圖像的預(yù)處理.?10
2.2?數(shù)字圖像處理方法.?11
2.2.1?二值處理.?11
2.2.2?模糊模式識別算法.?12
2.2.3?邊緣檢測與輪廓提取.?12
3.2.4?信息存儲.?14
3?算法實現(xiàn).?14
3.1?分析實際工作過程.?14
3.2?算法實現(xiàn)過程.?15
3.2.1?掏空內(nèi)部點算法的基本思想.?15
3.2.2?邊界跟蹤算法的基本思想.?15
3.2.3?部分實現(xiàn)代碼.?18
4?小結(jié)分析.?25
5?參考文獻.?26
6?致謝.?27
1?前言
1.1?植物的發(fā)展史
1.1.1?植物界的類群及多樣性
植物界的發(fā)生和發(fā)展經(jīng)歷了漫長的歷史,隨著地球歷史的發(fā)展,由原始生物不斷演化,其間大約經(jīng)歷了30億年,有的種族由興盛到衰亡,新的種類又在進化中產(chǎn)生,形成地球上現(xiàn)存的已知的約50多萬種植物。植物種類的繁多,數(shù)量浩瀚,是生物圈的重要組成部分[4]。
植物對人類生活已經(jīng)濟生活有極其重要的作用,衣、食、住、行、醫(yī)藥及工業(yè)品等都與植物的生產(chǎn)利用密不可分,因此植物是最重要的生產(chǎn)對象,也是重要的研究對象。
植物的分布極為廣泛,幾乎可以說自然界處處都有著植物。而且在形態(tài)結(jié)構(gòu)上表現(xiàn)出多種多樣,有肉眼看不見的單細(xì)胞的原始低等植物,也有分化程度很高、由多細(xì)胞組成的、結(jié)構(gòu)復(fù)雜的樹木花草。根據(jù)不同植物的特征以及它們的進化關(guān)系
其中種子植物是現(xiàn)今地球上種類最多、形態(tài)構(gòu)造最復(fù)雜、和人類經(jīng)濟活動最密切的一類植物。全部樹木、農(nóng)作物和絕大多數(shù)的經(jīng)濟植物都是種子植物。種子植物從形態(tài)構(gòu)造到生活習(xí)性等各方面同樣表現(xiàn)了極其不同的多樣性。
????為了能更好的運用植物與識別植物,對植物的分類與識別,越來越體現(xiàn)出其重要性。因此產(chǎn)生了植物分類學(xué)的說法,植物分類學(xué)是研究植物類群的分類、探索植物間的親緣關(guān)系和闡明植物界自然系統(tǒng)得科學(xué)。植物分類對于區(qū)分植物種類,探索植物間親緣關(guān)系,闡明植物系統(tǒng)得進化規(guī)律具有很重要的意義。
1.1.2?植物的分類等級
前面講了植物分類的基本單位是種,根據(jù)親緣關(guān)系把共同性比較多的一些種歸納成屬(Genus),再把共同性較多的一些屬歸納成科(Familia),如此類推而成目(order)、綱(C1assis)和門(Division)。因此植物界(Plantae)從上到下的分類等級順序為門、綱、目、科、屬、種。在各分類等級之下根據(jù)需要建立亞級分類等級,如亞門(Subdivision)、亞綱(Subclassis)、亞目(Suborder)、亞科(Subfamilia)和亞屬(Subgenus)。
種以下的分類等級則根據(jù)該類群與原種性狀的差異程度分為亞種(Subspecies)、變種(Varietas)和變型(Forma)。亞種比變種包括的范圍更廣泛一些,除了在形態(tài)上有顯著的區(qū)別外,而且在地理分布上也有一定的區(qū)域性。變種又比變型在形態(tài)上的差異要大一些。實際分類工作中要根據(jù)野外調(diào)查的資料和標(biāo)本的特征經(jīng)過綜合研究分析方能確定。
各分類等級的具體名稱(如種子植物門、被子植物亞門、雙子葉植物綱等)的拉丁文名稱常有固定的詞尾,可供識別,如種子植物門(Spermatophyta)的詞尾為-ta,亞門為-ae,綱為-eae,目為-ales,科為-aceae;科名的拉丁名詞尾一般是-aceae,但是也有少數(shù)例外,如唇形科Labatae,菊科Compositae,禾本科Graminae。
因此對植物進行有效的識別,是目前植物界很重要的問題。
1.2植物的識別方法
1.2.1?花與種子的特性
一朵完全的花由花柄、花托、花萼、花冠、雄蕊和雌蕊六部分組成。花萼由萼片組成,花冠由花瓣組成。花萼和花冠合稱花被,是花的外層部分,有保護雄蕊和雌蕊的作用。雌蕊和雄蕊合稱花蕊,是花的主要部分。一個雄蕊由花絲和花藥組成。花絲著生在花托上。花絲頂端著生花藥。花藥中有花粉囊,里面包有花粉。一個雌蕊由子房、花柱和柱頭組成。
種子是由種皮、胚和胚乳三部分組成。種皮為種子的最外層,具有保護作用。種皮上有臍和種孔。
我們可以根據(jù)花和種子的形態(tài),以及內(nèi)部的不同組成來區(qū)分植物,但是由于此次主要運用的是圖像識別的方法。因此,不考慮通過花和種子來識別植物
1.3?什么是數(shù)字圖像處理
1.3.1?數(shù)字圖像處理概念及其意義
所謂數(shù)字圖像處理[7]就是利用計算機對圖像信息進行加工以滿足人的視覺心理或者應(yīng)用需求的行為。實質(zhì)上是一段能夠被計算機還原顯示和輸出為一幅圖像的數(shù)字碼。
21世紀(jì)是一個充滿信息的時代,圖像作為人類感知世界的視覺基礎(chǔ),是人類獲取信息、表達信息和傳遞信息的重要手段。
數(shù)字圖像處理[9],即用計算機對圖像進行處理,其發(fā)展歷史并不長。數(shù)字圖像處理技術(shù)源于20世紀(jì)20年代,當(dāng)時通過海底電纜從英國倫敦到美國紐約傳輸了一幅照片,采用了數(shù)字壓縮技術(shù)。首先數(shù)字圖像處理技術(shù)可以幫助人們更客觀、準(zhǔn)確地認(rèn)識世界,人的視覺系統(tǒng)可以幫助人類從外界獲取3/4以上的信息,而圖像、圖形又是所有視覺信息的載體,盡管人眼的鑒別力很高,可以識別上千種顏色,但很多情況下,圖像對于人眼來說是模糊的甚至是不可見的,通過圖象增強技術(shù),可以使模糊甚至不可見的圖像變得清晰明亮。另一方面,通過數(shù)字圖像處理中的模式識別技術(shù),可以將人眼無法識別的圖像進行分類處理。通過計算機模式識別技術(shù)可以快速準(zhǔn)確的檢索、匹配和識別出各種東西。
數(shù)字圖像處理技術(shù)已經(jīng)廣泛深入地應(yīng)用于國計民生休戚相關(guān)的各個領(lǐng)域。
1.3.2?數(shù)字圖像處理中的基本圖像類型
在計算機中,按照顏色和灰度的多少可以將圖像爭為二值圖像、灰度圖像、索引圖像和真彩色RGB圖像四種基本類型。目前,大多數(shù)圖像處理軟件都支持這四種類型的圖像。
(1)?二值圖像:
一幅二值圖像的二維矩陣僅由0、1兩個值構(gòu)成,“0”代表黑色,“1”代白色。由于每一像素(矩陣中每一元素)取值僅有0、1兩種可能,所以計算機中二值圖像的數(shù)據(jù)類型通常為1個二進制位。二值圖像通常用于文字、線條圖的掃描識別(OCR)和掩膜圖像的存儲。
(2)?灰度圖像:
灰度圖像矩陣元素的取值范圍通常為[0,255]。因此其數(shù)據(jù)類型一般為8位無符號整數(shù)的(int8),這就是人們經(jīng)常提到的256灰度圖像。“0”表示純黑色,“255”表示純白色,中間的數(shù)字從小到大表示由黑到白的過渡色。在某些軟件中,灰度圖像也可以用雙精度數(shù)據(jù)類型(double)表示,像素的值域為[0,1],0代表黑色,1代表白色,0到1之間的小數(shù)表示不同的灰度等級。二值圖像可以看成是灰度圖像的一個特例。
(3)?索引圖像:
索引圖像的文件結(jié)構(gòu)比較復(fù)雜,除了存放圖像的二維矩陣外,還包括一個稱之為顏色索引矩陣MAP的二維數(shù)組。MAP的大小由存放圖像的矩陣元素值域決定,如矩陣元素值域為[0,255],則MAP矩陣的大小為256ⅹ3,用MAP=[RGB]表示。MAP中每一行的三個元素分別指定該行對應(yīng)顏色的紅、綠、藍單色值,MAP中每一行對應(yīng)圖像矩陣像素的一個灰度值,如某一像素的灰度值為64,則該像素就與MAP中的第64行建立了映射關(guān)系,該像素在屏幕上的實際顏色由第64行的[RGB]組合決定。也就是說,圖像在屏幕上顯示時,每一像素的顏色由存放在矩陣中該像素的灰度值作為索引通過檢索顏色索引矩陣MAP得到。索引圖像的數(shù)據(jù)類型一般為8位無符號整形(int8),相應(yīng)索引矩陣MAP的大小為256ⅹ3,因此一般索引圖像只能同時顯示256種顏色,但通過改變索引矩陣,顏色的類型可以調(diào)整。索引圖像的數(shù)據(jù)類型也可采用雙精度浮點型(double)。索引圖像一般用于存放色彩要求比較簡單的圖像,如Windows中色彩構(gòu)成比較簡單的壁紙多采用索引圖像存放,如果圖像的色彩比較復(fù)雜,就要用到RGB真彩色圖像。
(4)?RGB彩色圖像:
RGB圖像與索引圖像一樣都可以用來表示彩色圖像。與索引圖像一樣,它分別用紅(R)、綠(G)、藍(B)三原色的組合來表示每個像素的顏色。但與索引圖像不同的是,RGB圖像每一個像素的顏色值(由RGB三原色表示)直接存放在圖像矩陣中,由于每一像素的顏色需由R、G、B三個分量來表示,M、N分別表示圖像的行列數(shù),三個M?x?N的二維矩陣分別表示各個像素的R、G、B三個顏色分量。RGB圖像的數(shù)據(jù)類型一般為8位無符號整形,通常用于表示和存放真彩色圖像,當(dāng)然也可以存放灰度圖像。
1.3.3?圖像格式分析
數(shù)字化圖像數(shù)據(jù)有兩種存儲方式[6]:位圖存儲(Bitmap)和矢量存儲(Vector)
我們平常是以圖像分辨率(即象素點)和顏色數(shù)來描述數(shù)字圖象的。例如一張分辨率為640*480,16位色的數(shù)字圖片,就由2^16=65536種顏色的307200(=640*480)個素點組成。
位圖圖像:位圖方式是將圖像的每一個象素點轉(zhuǎn)換為一個數(shù)據(jù),當(dāng)圖像是單色(只有黑白二色)時,8個象素點的數(shù)據(jù)就占據(jù)一個字節(jié)(一個字節(jié)就是8個二進制數(shù),1個二進制數(shù)存放象素點);16色的圖像每兩個象素點用一個字節(jié)存儲;256色圖像每一個象素點用一個字節(jié)存儲。這樣就能夠精確地描述各種不同顏色模式的圖像圖面。位圖圖像彌補了矢量式圖像的缺陷,它能夠制作出色彩和色調(diào)變化豐富的圖像,可以逼真地表現(xiàn)自然界的景象,同時也可以很容易地在不同軟件之間交換文件,這就是位圖圖像的優(yōu)點;而其缺點則是它無法制作真正的3D圖像,并且圖像縮放和旋轉(zhuǎn)時會產(chǎn)生失真的現(xiàn)象,同時文件較大,對內(nèi)存和硬盤空間容量的需求也較高。位圖方式就是將圖像的每一像素點轉(zhuǎn)換為一個數(shù)據(jù)。如果用1位數(shù)據(jù)來記錄,那么它只能代表2種顏色(21=2);如果以8位來記錄,便可以表現(xiàn)出256種顏色或色調(diào)(28=256),因此使用的位元素越多所能表現(xiàn)的色彩也越多。通常我們使用的顏色有16色、256色、增強16位和真彩色24位。一般所說的真彩色是指24位(28×28×28)的位圖存儲模式適合于內(nèi)容復(fù)雜的圖像和真實照片。但隨著分辨率以及顏色數(shù)的提高,圖像所占用的磁盤空間也就相當(dāng)大;另外由于在放大圖像的過程中,其圖像勢必要變得模糊而失真,放大后的圖像像素點實際上變成了像素“方格”。?用數(shù)碼相機和掃描儀獲取的圖像都屬于位圖。
矢量圖像:矢量圖像存儲的是圖像信息的輪廓部分,而不是圖像的每一個象素點。例如,一個圓形圖案只要存儲圓心的坐標(biāo)位置和半徑長度,以及圓的邊線和半徑長度,以及圓的邊線和內(nèi)部的顏色即可。該存儲方式的缺點是經(jīng)常耗費大量的時間做一些復(fù)雜的分析演算工作,圖像的顯示速度較慢;但圖像縮放不會失真;圖像的存儲空間也要小得多。所以,矢量圖比較適合存儲各種圖表和工程設(shè)計圖。
1.4?什么是模式識別
1.4.1?模式識別的概念
模式識別[8]是一種從大量信息和數(shù)據(jù)出發(fā),在專家經(jīng)驗和已有認(rèn)識的基礎(chǔ)上,利用計算機和數(shù)學(xué)推理的方法對形狀、模式、曲線、數(shù)字、字符格式和圖形自動完成識別的過程。模式識別包括相互關(guān)聯(lián)的兩個階段,即學(xué)習(xí)階段和實現(xiàn)階段,前者是對樣本進行特征選擇,尋找分類的規(guī)律,后者是根據(jù)分類規(guī)律對未知樣本集進行分類和識別。廣義的模式識別屬計算機科學(xué)中智能模擬的研究范疇,內(nèi)容非常廣泛,包括聲音和語言識別、文字識別、指紋識別、聲納信號和地震信號分析、照片圖片分析、化學(xué)模式識別等等。計算機模式識別實現(xiàn)了部分腦力勞動自動化。
模式識別--對表征事物或現(xiàn)象的各種形式的(數(shù)值的,文字的和邏輯關(guān)系的)信息進行處理和分析,以對事物或現(xiàn)象進行描述、辨認(rèn)、分類和解釋的過程,是信息科學(xué)和人工智能的重要組成部分。
模式還可分成抽象的和具體的兩種形式。前者如意識、思想、議論等,屬于概念識別研究的范疇,是人工智能的另一研究分支。我們所指的模式識別主要是對語音波形、地震波、心電圖、腦電圖、圖片、文字、符號、三位物體和景物以及各種可以用物理的、化學(xué)的、生物的傳感器對對象進行測量的具體模式進行分類和辨識。
模式識別問題指的是對一系列過程或事件的分類與描述,具有某些相類似的性質(zhì)的過程或事件就分為一類。模式識別問題一般可以應(yīng)用以下4種方法進行分析處理。
統(tǒng)計模式識別方法:統(tǒng)計模式識別方法是受數(shù)學(xué)中的決策理論的啟發(fā)而產(chǎn)生的一種識別方法,它一般假定被識別的對象或經(jīng)過特征提取向量是符合一定分布規(guī)律的隨機變量。其基本思想是將特征提取階段得到的特征向量定義在一個特征空間中,這個空間包含了所有的特征向量,不同的特征向量,或者說不同類別的對象都對應(yīng)于空間中的一點。在分類階段,則利用統(tǒng)計決策的原理對特征空間進行劃分,從而達到識別不同特征的對象的目的。統(tǒng)計模式識別中個應(yīng)用的統(tǒng)計決策分類理論相對比較成熟,研究的重點是特征提取。
人工神經(jīng)網(wǎng)絡(luò)模式識別:人工神經(jīng)網(wǎng)絡(luò)的研究起源于對生物神經(jīng)系統(tǒng)的研究。人工神經(jīng)網(wǎng)絡(luò)區(qū)別于其他識別方法的最大特點是它對待識別的對象不要求有太多的分析與了解,具有一定的智能化處理的特點。
句法結(jié)構(gòu)模式識別:句法結(jié)構(gòu)模式識別著眼于對待識別對象的結(jié)構(gòu)特征的描述。
在上述4種算法中,統(tǒng)計模式識別是最經(jīng)典的分類識別方法,在圖像模式識別中有著非常廣泛的應(yīng)用。
1.4.2?模式識別研究方向
????模式識別研究主要集中在兩方面,即研究生物體(包括人)是如何感知對象的,屬于認(rèn)知科學(xué)的范疇,以及在給定的任務(wù)下,如何用計算機實現(xiàn)模式識別的理論和方法。前者是生理學(xué)家、心理學(xué)家、生物學(xué)家和神經(jīng)生理學(xué)家的研究內(nèi)容,后者通過數(shù)學(xué)家、信息學(xué)專家和計算機科學(xué)工作著近幾十年來的努力,已經(jīng)取得了系統(tǒng)的研究成果。
一個計算機模式識別系統(tǒng)基本上事有三部分組成的[11],即數(shù)據(jù)采集、數(shù)據(jù)處理和分類決策或模型匹配。任何一種模式識別方法都首先要通過各種傳感器把被研究對象的各種物理變量轉(zhuǎn)換為計算機可以接受的數(shù)值或符號(串)集合。習(xí)慣上,稱這種數(shù)值或符號(串)所組成的空間為模式空間。為了從這些數(shù)字或符號(串)中抽取出對識別有效的信息,必須對它進行處理,其中包括消除噪聲,排除不相干的信號以及與對象的性質(zhì)和采用的識別方法密切相關(guān)的特征的計算(如表征物體的形狀、周長、面積等等)以及必要的變換(如為得到信號功率譜所進行的快速傅里葉變換)等。然后通過特征選擇和提取或基元選擇形成模式的特征空間。以后的模式分類或模型匹配就在特征空間的基礎(chǔ)上進行。系統(tǒng)的輸出或者是對象所屬的類型或者是模型數(shù)據(jù)庫中與對象最相似的模型編號。針對不同應(yīng)用目的,這三部分的內(nèi)容可以有很大的差別,特別是在數(shù)據(jù)處理和識別這兩部分,為了提高識別結(jié)果的可靠性往往需要加入知識庫(規(guī)則)以對可能產(chǎn)生的錯誤進行修正,或通過引入限制條件大大縮小待識別模式在模型庫中的搜索空間,以減少匹配計算量。在某些具體應(yīng)用中,如機器視覺,除了要給出被識別對象是什么物體外,還要求出該物體所處的位置和姿態(tài)以引導(dǎo)機器人的工作。
1.4.3?模式識別在實際中的應(yīng)用
模式識別[5]已經(jīng)在天氣預(yù)報、衛(wèi)星航空圖片解釋、工業(yè)產(chǎn)品檢測、字符識別、語音識別、指紋識別、醫(yī)學(xué)圖像分析等許多方面得到了成功的應(yīng)用。所有這些應(yīng)用都是和問題的性質(zhì)密切不可分的,至今還沒有發(fā)展成統(tǒng)一的、有效的可應(yīng)用于所有的模式識別的理論。當(dāng)前的一種普遍看法是不存在對所有的模式識別問題都使用的單一模型和解決識別問題的單一技術(shù),我們現(xiàn)在擁有的是一個工具袋,我們所要做的是結(jié)合具體問題把統(tǒng)計的和句法(結(jié)構(gòu))的識別方法結(jié)合起來,把統(tǒng)計模式識別或句法模式識別與人工智能中的啟發(fā)式搜索結(jié)合起來,把人工神經(jīng)元網(wǎng)絡(luò)與各種以有技術(shù)以及人工智能中的專家系統(tǒng),不確定方法結(jié)合起來,深入掌握各種工具的效能和應(yīng)用的可能性,互相取長補短,開創(chuàng)模式識別應(yīng)用的新局面。
2?預(yù)處理與算法研究
2.1?圖像的預(yù)處理
????首先多找?guī)追N形態(tài)各異的葉子,通過數(shù)碼相機獲取到某個葉子的平面圖形,為了避免一些外界干擾信息,在做這些預(yù)處理時,把葉子平鋪在白色背景的紙上。使得到的圖片盡量保持葉子的完整形狀。圖像的預(yù)處理工作有很多,除噪聲,抗干擾等等,因此首先我們得對圖像進行一些必要的預(yù)處理,以免為后面的工作帶來不必要的麻煩,預(yù)處理的好壞直接影響到圖像處理工作,當(dāng)然最好的預(yù)處理就是沒有預(yù)處理。
2.2?數(shù)字圖像處理方法
2.2.1?二值處理
二值化[7]是預(yù)處理中最關(guān)鍵的步驟,因為它直接產(chǎn)生能夠被分合算法使用的二值化圖像。可以說,二值化結(jié)果的好壞決定了分合算法結(jié)果的好壞,從而決定了葉子輪廓定位能否成功。
二值化的方法舉不勝舉[10],但都可以分為取全局閾值的二值化和取局部閾值的二值化兩大類。
取全局閾值的二值化方法中,有一種叫做“組內(nèi)方差最小化方法”,由Otsu于1979年提出。它的思路是,最好的閾值應(yīng)該使得被閾值分開的兩組的方差的加權(quán)和達到最小,其中某組的加權(quán)系數(shù)就是該組的概率(其實就是該組像素數(shù)目占總像素數(shù)目的比例)。
設(shè)所有像素被閾值t分為兩組,灰度≤t的稱作組1,灰度>t的稱作組2;σ12(t),σ22(t)是1組和2組各自的方差;q1(t),q2(t)是1組和2組各自的概率;μ1(t),μ2(t)是1組和2組各自的灰度平均值。定義組內(nèi)方差σW2(t)為這兩個組的方差的加權(quán)和:
所有像素的平均灰度和方差記做μ和σ2。有下面的關(guān)系式成立:
這個全局取閾值方法常常可以得到不錯的效果。非常適合葉子定位的應(yīng)用。但是這樣對輪廓的提取還是有點不大好做,所以我以組內(nèi)方差最小化方法為基礎(chǔ),構(gòu)造了一種局域取閾值的方法。其思路是:首先對整幅圖像用組內(nèi)方差最小化方法求出閾值,并記錄下組間方差。然后把整幅圖像劃分為m×n個正方形,每個正方形邊長都為十幾個像素量級。對每個正方形的子圖像按組內(nèi)方差最小化方法求出一個閾值和一個組間方差。最后某一個正方形子圖像二值化所使用的閾值是由全局閾值和局域閾值,以全局組間方差和局域組間方差作為權(quán)重,再加上事先指定的加大全局閾值權(quán)重的因子,綜合計算出來。顯然全局閾值應(yīng)該占到絕大部分的比重,因為正方形子圖內(nèi)的像素分部可能與全局分布極不相同,甚至出現(xiàn)全是單一灰度的極端情形。如果僅僅用子圖的像素分布來決定子圖使用的閾值,那么各個子圖取的閾值就會各自相差很大,導(dǎo)致結(jié)果圖像零亂破碎,無法使用。
該局域取閾值二值化方法有邊界效應(yīng)的缺陷。所謂邊界效應(yīng),是指由于相鄰兩個正方形子圖所取閾值不同,造成邊界兩邊本來灰度變化緩慢的像素有可能一邊被二值化成黑色,一邊被二值化成白色,形成突變。
2.2.2?模糊模式識別算法
模糊模式識別:模糊識別的理論基礎(chǔ)是模糊數(shù)學(xué)。從識別模式的識別過程來講,?模糊模式識別的方法可以分為兩種:?直接方法和間接方法.?直接方法按最大隸屬原則歸類,?間接方法按擇近原則歸類。
模糊模式識別[12]的直接方法:
設(shè)U?為全體被識別對象的集合,?A~1?,?A~2?,?,?A~n?是論域U?的n?個模糊子集(模糊模式)?.現(xiàn)在要對一個確定的對象u0?∈?U?進行識別.此時模式A~1??A~n?是模糊的,?但是具體的對象u0?是清楚的,?這時要用“?最大隸屬原則”歸類.最大隸屬原則:設(shè)A~1?,?A~2?,??,?A~n?是論域U?上的n?個模糊子集,?u0?是U?的固定元素,若μA~i(?u0)?=?max?(A~1(?u0)?,μA~2(?u0)??μA~n(?u0)?)?則認(rèn)為u0?相對隸屬于模糊子集A~i這種直接由計算元素的隸屬函數(shù)來判斷具體對象歸屬的方法即為模糊模式識別的直接方法,?其效果顯然依賴于建立模式隸屬函數(shù)的技巧.建立隸屬函數(shù),模糊模式識別的直接方法的首要問題是確定隸屬函數(shù)。合理地確定出隸屬函數(shù)常采用模糊統(tǒng)計、模糊分析,?經(jīng)驗評分等方法,?隸屬函數(shù)要經(jīng)過檢驗,?并在檢驗中加以調(diào)整,?以提高識別的有效性.
2.2.3?邊緣檢測與輪廓提取
邊緣檢測是圖像處理中的重要內(nèi)容,邊緣是圖像的最基本特征.所謂邊緣就是指周圍像素灰度有階躍變化或屋頂變化的那些像素的集合.Poggoi等在論文中說:“邊緣或許對應(yīng)著圖像中物體(的邊界)或許并沒用對應(yīng)著圖像中物體(的邊界),但是邊緣具有十分令人滿意的性質(zhì),它能大大地減少所要處理的信息但是又保留了圖像中物體的形狀信息。”并定義邊緣檢測為“主要是(圖像的)灰度變化的度量、檢測和定位”。邊緣與圖像中物體的邊界有關(guān)但又是不同的[3]。邊緣反映的是圖像灰度的不連續(xù)性[13]。
????緣是指周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。Poggio等在[42]中說:“邊緣或許對應(yīng)著圖像中物體(的邊界)或許并沒用對應(yīng)著圖像中物體(的邊界),但是邊緣具有十分令人滿意的性質(zhì),它能大大減少索要處理的信息但是又保留了圖像中物體的形狀信息”。
常見的邊緣點有3種。第一種是階梯形邊緣(Step-edge),即從一個灰度到比它高好多的另一個灰度。第二種是屋頂型邊緣(Roof-edge)它的灰度是慢慢增加到一定程度然后慢慢減少。還有一種是線性邊緣(Line-edge),它的灰度從一個級別跳到另一個灰度級別之后然后回來。
邊緣在邊界檢測、圖像分割、模式識別、機器視覺等中有很重要的作用。
邊緣是邊界檢測的重要基礎(chǔ),也是外形檢測的基礎(chǔ)。邊緣廣泛存在于物體與背景之間、物體與物體之間,基元與基元之間,因此它也是圖像分割所依賴的重要特征。
邊緣檢測對于物體的識別也是很重要的。主要有以下幾個理由:首先人眼通過追蹤未知物體的輪廓(輪廓是由一段段的邊緣片段組成的)而掃視一個未知的物體。第二,經(jīng)驗告訴我們:如果我們能夠成功地得到圖像的輪廓,那么圖像分析就會大大簡化,圖像識別就會容易很多。第三,很多圖像并沒有具有的物體,對這些圖像的理解取決于它們的紋理性質(zhì),而提取這些紋理性質(zhì)與邊緣檢測有極其密切的關(guān)系。
計算機視覺處理可以看作是為了實現(xiàn)某一個任務(wù)從包含有大量的不相關(guān)的變量中抽取不變量,總之就是簡化信息。這就意味著要扔掉一些不必要的信息而盡可能理由物體的不變性質(zhì)。而邊緣就是最重要的不變性質(zhì):光線的變化顯著地影響了一個區(qū)域的外觀,但是不會改變它的邊緣。更重要的是人的視覺系統(tǒng)也是對邊緣很敏感的。
邊緣檢測的方法主要有以下幾種:
第一種檢測梯度的最大值。由于邊緣發(fā)生在圖像灰度變化比較大的地方,對應(yīng)連續(xù)情形就是說函數(shù)梯度較大的地方,所以研究比較好的求導(dǎo)算子就成為一種思路。Roberts算子、Prewitt算子和Soble算子等就是比較簡單而常用的例子。還有一種比較直觀的方法就是利用當(dāng)前像素領(lǐng)域中的一些像素值擬合一個曲面,然后求這個連續(xù)曲面在當(dāng)前像素處梯度。從統(tǒng)計角度來說,我們可以通過回歸分析得到一個曲面,然后也可以做類似的處理
第二種是檢測二階導(dǎo)數(shù)的零交叉點。這是因為緣處的梯度取得最大值(正的或者負(fù)的),也就是灰度圖像的拐點是邊緣。從分析學(xué)上我們知道,拐點處函數(shù)的二階導(dǎo)數(shù)是0。
第三種,統(tǒng)計型方法。比如說利用假設(shè)檢驗來檢測邊緣。
第四種,小波多尺度邊緣檢測。?
一些經(jīng)典的邊緣檢測的算法包括:梯度算子、Sobel算子、Kirsh算子、Laplacian算子、Marr算子。
3.2.4?信息存儲
在把圖像信息提取出來以后,為了以后能很好的比較為作為一個模版信息庫,就得把圖像信息存儲起來,由于圖片的格式各不同,因此在選擇圖像格式時也有一定的要求,由上面的圖片格式分析得出,BMP位圖是最適合為圖像處理時應(yīng)用的圖形格式工程應(yīng)用中經(jīng)常要處理256級的灰度BMP圖像,如通過黑白采集卡采集得到的圖像。BMP灰度圖像作為Windows環(huán)境下主要的圖像格式之一,以其格式簡單,適應(yīng)性強而倍受歡迎。
3?算法實現(xiàn)
3.1?分析實際工作過程
首先,我們要做的是將葉子進行灰度處理,灰度處理要用到它的極端形式,也就是我們說的二值化處理了,接著就是對經(jīng)過處理的二值圖進行邊緣檢測,提取它的輪廓,然后將其信息存儲到信息庫里保存起來。在比較時,也就是對剛才的過程進行反操作。
3.2?算法實現(xiàn)過程
3.2.1?掏空內(nèi)部點算法的基本思想
????掏空內(nèi)部點的算法很簡單,首先得到圖像的黑白二值圖,得到的圖像設(shè)黑色為0,白色為1。然后我們首先按從上往下,從左往右現(xiàn)在找到其第一個黑點,也就是0點,然后找其點的8個方位的點,每個點都與0點相比較,如果所有值都相等,那么這個點就為此圖的內(nèi)部點,就去掉此點信息,將此點的值設(shè)為1,然后重新尋找新的內(nèi)部點,如果不是所有的都相等,那么直接尋找下一個點信息。
3.2.2?邊界跟蹤算法的基本思想
一個邊界上的像素可以用一個通路來遍歷,并且總可以為這一遍歷選擇一條封閉的通路。本文采用的邊緣提取算法是一種特定對邊界進行自動跟蹤的遍歷形式1。用N-近鄰的概念,對N的數(shù)值運算都假定為模8運算。N近鄰有兩種類型,一是直接近鄰,即兩個像素的相應(yīng)單元共有一條邊。一是非直接近鄰,即兩個像素相應(yīng)單元僅在一個角上相接觸。
算法描述:
設(shè)定:F是邊界點集合R的初始點,N是其近鄰被檢查的當(dāng)前點。S是用圖6中編碼所表示的。
搜索方向START是一個標(biāo)志,當(dāng)跟蹤開始時為真,F(xiàn)OUND也是一個標(biāo)志,當(dāng)找到邊界上的下一點時為真。
1)選邊界上一點F,
2)將當(dāng)前點N置為F,搜索方向S置為6,標(biāo)志START置為TRUE。
3)當(dāng)N與F不同或標(biāo)志START為TRUE時,做4)~11)步。
4)Begin置標(biāo)志FOUND為FALSE。
5)While FOUND為FALSE時,做6)~10)步。
Begin 搜索(S-1)
6)If N的(S-1)-近鄰B是在R內(nèi),then
Begin
7)置N為B,S為S–2。置FOUND為TRUE。
End
8)Else
Begin
IF N的S-近鄰B是在R內(nèi),then
置N為B,同時置FOUND為TRUE。
9)ELSE
Begin
IF N的(S+1)-近鄰是在R內(nèi),then
置N為B,并置FOUND為TRUE。
10)Else將S增加2。
End
End
11)置START為FALSE。
End
12)算法結(jié)束。
本算法以封閉的通路來遍歷。如果不是封閉的通路,該算法也總是按封閉的通路來遍歷。比如一條線段AB,該算法實現(xiàn)的時候,是從A遍歷到B,在B點又回到A,也形成一個封閉的通路,這時起點和終點相同,算法結(jié)束。現(xiàn)以圖6為例說明本算法。?
1)選定邊界上具有代表性的8個點組成邊界集合R={A,?B,?C,?D,?E,?F,?G,?H},如圖7a假定它是圖像的邊界線,圖中箭頭指向為下一邊界點的方向(按圖6?的編碼方向)。設(shè)定A為遍歷邊界的起始點。
2)當(dāng)前點A,搜索S?=?6?方向,標(biāo)志START?=?TRUE。
3)A有8個方向,根據(jù)本算法,首先判斷A?的(S?-?1)?=?5這個方向的點是否為邊界點,?其結(jié)果為否;?再判斷A?的S?=?6?方向的點,?它也不是邊界點再判斷(?S?+?1)?=?7?方向的點,它正是邊界點B?,那么置FOUND?=?TRUE?,表明找到邊界點。?然后再沿著這一點繼續(xù)找下一邊界點,開始下一輪循環(huán)
4)對B點,先判斷B?的(S?-?1)?=?5?這個方向的點是否為邊界點,其結(jié)果為否;?再判斷B?的S?=?6?方向的點,它是邊界點C。?這時置FOUND?=?TRUE?,結(jié)束本次循環(huán),不再判斷其它方向,開始找C?的下一邊界點。?如圖7b?;
5)在C?點,第一次判斷(S?-?1)?=?5?這個方向的點就是邊界點D?,此時需置S?=?S?-?2?=?6?-?2?=4?,搜索方向改變了。?同樣置FOUND?=?TURE。?如圖7c?;
6)對于D?點,同樣先判斷(S?-?1)?這個方向,但此時方向已經(jīng)改變了,(S?-?1)?=?4?-?1?=?3?,此方向上的點不是邊界點,再檢查S?=?4?方向,此方向的E?點是邊界,F(xiàn)OUND?=?TRUE如圖7d?;
7)?E?點第一次判斷(S?-?1)?=?3?這個方向,就找到邊界點F?,又置S?=?S?-?2?=?4?-?2?=?2?,搜索方向再一次改變,F(xiàn)OUND?=?TRUE。?如圖7e?;
8)?在F?點,判斷(S?-?1)?=?1?方向的點,不是邊界點,再判斷S?=?2?方向,G正是邊界點,置FOUND?=?TRUE1?如圖7f?;
9)?在G點,判斷(S?-?1)?=?1?方向的點,H?是邊界點,置S?=?S?-?2?=?0?,F(xiàn)OUND?=?TRUE1?如圖7g?;
10)?在H?點,判斷(S?-?1)?=?-?1?,本算法對N?-?近鄰規(guī)定為模8?運算,因此-?1?模8運算后為7?,這個方向的點非邊界點,再判斷S?=?0?的點,A?點正是這個方向的邊界點,終點和起點相同,算法結(jié)束
3.2.3?部分實現(xiàn)代碼
首先讀取葉子圖像信息[1]
if(this.openFileDialog.ShowDialog()==DialogResult.OK)
???????????{
??????????????bmp=new?Bitmap(this.openFileDialog.FileName);
??????????????bmp2=new?Bitmap(this.openFileDialog.FileName);
??????????????bmp3=new?Bitmap(this.openFileDialog.FileName);
??????????????bmp4=new?Bitmap(this.openFileDialog.FileName);
??????????????bmp5=new?Bitmap(this.openFileDialog.FileName);
??????????????this.pictureBox1.Image=bmp;
??????????????pictureBox1.Visible=true;
???????????}
接著對葉子進行灰度處理,我們先不對其進行二值處理可以看到以下結(jié)果
???????for(int?i=0;i
???????????{
??????????????for(int?j=0;j
??????????????{
??????????????????Color?Color1=bmp.GetPixel(i,j);
??????????????????int?red=Convert.ToInt32((30*Color1.R+59*Color1.G+11*Color1.B)/3);
??????????????????bmp2.SetPixel(i,j,Color.FromArgb(red,red,red));
??????????????}??????
??????????????}
???????????this.pictureBox2.Image=bmp2;
由此我們可以看出,只進行一般的灰度處理并沒能達到我們下一步進行輪廓提取的要求[2],因為,圖片的信息還很朦朧,圖像像素之間的色差還不明顯,因此,在此基礎(chǔ)上,我們改進下,直接對其進行了二值化處理,其算法改進如下:
for(int?i=0;i
?????????????????????{
????????????????????????????for(int?j=0;j
????????????????????????????{
???????????????????????????????????Color?Color1=bmp.GetPixel(i,j);
???????????????????????????????????int?red=Convert.ToInt32((Color1.R+Color1.G+Color1.B)/3);
???????????????????????????????????if(red>128)???//如果大于128將其設(shè)為白色255
??????????????????????????????????????????//精確灰度處理算法?0.3*R+0.59*G+0.11*B?
??????????????????????????????????????????//優(yōu)化算法(30*R+59*G+11*B)/100
??????????????????????????????????????????red=255;???
???????????????????????????????????else?
??????????????????????????????????????????red=0;
???????????????????????????????????bmp2.SetPixel(i,j,Color.FromArgb(red,red,red));
????????????????????將圖片信息暫時填充到內(nèi)存中??????
????????????????????????????}????????????
?????????????????????}
此時,我們得到了一個像素色差非常大的圖,為下一步進行輪廓的提取提供了很有利的條件,在輪廓提取方面,根據(jù)模式識別書上提供的一些算法。
掏空內(nèi)部點的算法:?
for(int?i=1;i
????????????????????????????{
???????????????????????????????????for(int?j=1;j
???????????????????????????????????{
??????????????????????????????????????????Color?Color0=bmp2.GetPixel(i,j);
??????????????????????????????????????????Color?Color1=bmp2.GetPixel(i,j-1);
??????????????????????????????????????????Color?Color2=bmp2.GetPixel(i-1,j);
??????????????????????????????????????????Color?Color3=bmp2.GetPixel(i+1,j);
??????????????????????????????????????????Color?Color4=bmp2.GetPixel(i,j+1);
??????????????????????????????????????????int?red;
??????????????????????????????????????????if(Color0.B==0)
??????????????????????????????????????????{
???????if(Math.Abs(Color1.R-Color0.R)==0&&
Math.Abs(Color2.R-Color0.R)==0&&
Math.Abs(Co??lor3.R-Color0.R)==0&&
Math.Abs(Color4.R-Color0.R)==0)
????????????????????????????????????????????????????????red=255;
?????????????????????????????????????????????????else?
????????????????????????????????????????????????????????red=0;
?????????????????????????????????????????????????CountBmp+=1;
??????????????????????????????????????????}
??????????????????????????????????????????else
?????????????????????????????????????????????????red=255;
??????????????????????????????????????????bmp3.SetPixel(i,j,Color.FromArgb(red,red,red));
圖10?掏空算法結(jié)果
其中if語句就是判斷某個點的周圍4個點是不是都是黑點,原思路用了比較8個點。
4?小結(jié)分析
1)?對于使用第一種掏空內(nèi)部點的算法,其好處是算法比較簡單,容易實現(xiàn),但是由于處理時的for循環(huán)比較多,經(jīng)常要重復(fù)使用,因此耽擱了處理時間,只適合處理比較小的圖片,這一部分還得進一步的加強改進。另外由于這個算法的局限性,它只是掏空所在圖形中所有與其余8點相同的點,所以沒有考慮到圖形的完整邊緣,因此,如果取二值圖時,葉子圖形內(nèi)部出現(xiàn)白色空點時,還是被處理為一個新的輪廓,這樣提取出來的輪廓就不僅僅是葉子的輪廓,還有一點白色空點被讀取進來了。
2)?對于使用第二種邊界跟蹤的算法,是對邊界上某一點的8個方向進行搜索,必能在一個方向上找到邊界上與之相鄰的下一點,一旦找到,設(shè)一標(biāo)志,并記錄搜索到的本邊界點的方向,以便沿此方向搜索下一點1本算法以3個方向為一組來對邊界上某一點的8個方向進行檢測的,如圖6,8個方向分四組{5,6,7},{3,4,5},{1,2,3},{7,0,1}1先搜索6方向。
(1).若在6方向上找到邊界點,那么繼續(xù)沿著此方向找;?
(2).若在5方向找到邊界點,下次改變方向,在第二組{3,4,5}方向找其它的點1?同理,每組中在第一個方向上5,3,1,7找到邊界點,都改變方向,以提高下一邊界點的搜索速度。
(3).若5,6,7方向都沒找到,那么邊界的走向是向上的,本算法就沿著(7,0,1),(1,2,3),(3,4,5),(5,6,7)方向搜索。
與第一種算法比較起來本算法執(zhí)行速度快,效率高,對邊界點的提取能按著邊界的走向及時調(diào)整方向自動搜索,而且不會出現(xiàn)向邊界相反的方向查找的可能,也就不會出現(xiàn)圖像二值處理不完美時,帶來圖片內(nèi)部的空點被識別進去,極大的減少了誤差的出現(xiàn)。
隨著國家信息化進程的加速,圖像識別的應(yīng)用需求將越來越廣泛,因此應(yīng)當(dāng)加強這方面的研究工作。應(yīng)用系統(tǒng)的性能的關(guān)鍵與瓶頸仍然在圖像識別核心算法性能上,最終目標(biāo)是研究零誤識率和低拒識率的高速識別算法
5?參考文獻
[1]?劉洪成編著.C#?高級編程學(xué)習(xí)捷徑.北京:清華大學(xué)出版社,2003年.
[2]?Karli?Watso,?Marco?Bellinaso?等著.康博譯.C#入門經(jīng)典:第16章?GDI+簡介.北京:清華大學(xué)出版社,2002年4月.
[3]?H.M.Deitel,?P.J.Deitel,?J.Listfield,?T.R.Nieto,?C.Yaeger,?M.Zlatkina著.葛昊晗,湯涌濤,李強等譯.C#大學(xué)教程:第16章?圖形和多媒體.北京:清華大學(xué)出版社,2003年11月.
[4]?曹慧娟主編.植物學(xué).北京:中國林業(yè)出版社,1992年4月.
[5]?王士同主編.人工智能教程.北京:電子工業(yè)出版社,2001年10月.
[6]?林福宗主編.圖像文件格式大全.北京:清華大學(xué)出版社,1998年.
[7]?霍宏濤主編.?dāng)?shù)字圖像處理.北京:北京理工大學(xué)出版社,2002年9月.
[8]?邊肇祺,張學(xué)工等編著.?模式識別(第二版).?北京:清華大學(xué)出版社,2000.
[9]?張宏林,蔡銳編著.Visual?C++數(shù)字圖像模式識別技術(shù)及工程實踐.人民郵電出版社發(fā)行,2003年1月.
[10]?陳輝編著.二值圖并序交互細(xì)化方法.山東工業(yè)大學(xué)學(xué)報,1997年7月.
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
26 | 27 | 28 | 29 | 30 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
31 | 1 | 2 | 3 | 4 | 5 | 6 |
Welcome here, my friend!
常用鏈接
留言簿(12)
隨筆檔案(66)
- 2008年5月 (2)
- 2007年10月 (1)
- 2007年8月 (2)
- 2007年6月 (1)
- 2007年5月 (1)
- 2007年4月 (3)
- 2007年3月 (2)
- 2007年2月 (1)
- 2007年1月 (9)
- 2006年12月 (15)
- 2006年11月 (10)
- 2006年6月 (1)
- 2006年5月 (9)
- 2006年2月 (2)
- 2006年1月 (7)
文章分類
文章檔案(63)
web
最新隨筆
搜索
積分與排名
- 積分 - 89321
- 排名 - 647
最新評論

- 1.?re: 如何把Https網(wǎng)站中的安全證書導(dǎo)入到j(luò)ava中的cacerts證書庫?
-
按照您的方法在最后一步總是提示:
keytool錯誤: java.io.IOException: Invalid keystore format
請問可能是什么原因? - --okhaoba
- 2.?北京急需二級機電
- 我們會以周到的為廣大優(yōu)秀人才提供服務(wù),北京一級 二級房建市政機電 證書掛靠 另外廣東企業(yè)還差一名二級市政建造師 有意者請與我聯(lián)系 聯(lián)系人:劉女士 在線QQ:2468189057
- --劉女士
- 3.?北京單位急需二級機電
- 北京單位急需二級機電,廣東企業(yè)急招二級建造師 有意者請與我聯(lián)系 在線QQ:2468189057
- --劉女士
- 4.?re: javascript 的automation服務(wù)器不能創(chuàng)建對象 異常原因和解決方法
- 青青豆網(wǎng)址大全(qqingdou),青青我的最愛,青青豆游戲盒
- --青青豆網(wǎng)址大全
- 5.?re: 一些圖像識別的書[未登錄]
-
謝謝推薦這些書啊~~
想請教一下您,我現(xiàn)在跟導(dǎo)師做一個圖像識別的項目,但剛開始做感覺無從下手,想問一下,我應(yīng)該從哪里入手啊? - --輝輝