圖像識(shí)別技術(shù)報(bào)告.doc_第1頁(yè)
圖像識(shí)別技術(shù)報(bào)告.doc_第2頁(yè)
圖像識(shí)別技術(shù)報(bào)告.doc_第3頁(yè)
圖像識(shí)別技術(shù)報(bào)告.doc_第4頁(yè)
圖像識(shí)別技術(shù)報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

圖像識(shí)別技術(shù)課程教師:桑愛(ài)軍老師報(bào)告組成員:五里霧一、圖像識(shí)別簡(jiǎn)介圖像識(shí)別是指圖形刺激作用于感覺(jué)器官,人們辨認(rèn)出它是經(jīng)驗(yàn)過(guò)的某一圖形的過(guò)程,也叫圖像再認(rèn)。在圖像識(shí)別中,既要有當(dāng)時(shí)進(jìn)入感官的信息,也要有記憶中存儲(chǔ)的信息。只有通過(guò)存儲(chǔ)的信息與當(dāng)前的信息進(jìn)行比較的加工過(guò)程,才能實(shí)現(xiàn)對(duì)圖像的再認(rèn)。人的圖像識(shí)別能力是很強(qiáng)的。圖像距離的改變或圖像在感覺(jué)器官上作用位置的改變,都會(huì)造成圖像在視網(wǎng)膜上的大小和形狀的改變。即使在這種情況下,人們?nèi)匀豢梢哉J(rèn)出他們過(guò)去知覺(jué)過(guò)的圖像。甚至圖像識(shí)別可以不受感覺(jué)通道的限制。例如,人可以用眼看字,當(dāng)別人在他背上寫(xiě)字時(shí),他也可認(rèn)出這個(gè)字來(lái)。 圖像識(shí)別技術(shù)可能是以圖像的主要特征為基礎(chǔ)的。每個(gè)圖像都有它的特征,如字母A有個(gè)尖,P有個(gè)圈、而Y的中心有個(gè)銳角等。對(duì)圖像識(shí)別時(shí)眼動(dòng)的研究表明,視線總是集中在圖像的主要特征上,也就是集中在圖像輪廓曲度最大或輪廓方向突然改變的地方,這些地方的信息量最大。而且眼睛的掃描路線也總是依次從一個(gè)特征轉(zhuǎn)到另一個(gè)特征上。由此可見(jiàn),在圖像識(shí)別過(guò)程中,知覺(jué)機(jī)制必須排除輸入的多余信息,抽出關(guān)鍵的信息。同時(shí),在大腦里必定有一個(gè)負(fù)責(zé)整合信息的機(jī)制,它能把分階段獲得的信息整理成一個(gè)完整的知覺(jué)映象。 在人類(lèi)圖像識(shí)別系統(tǒng)中,對(duì)復(fù)雜圖像的識(shí)別往往要通過(guò)不同層次的信息加工才能實(shí)現(xiàn)。對(duì)于熟悉的圖形,由于掌握了它的主要特征,就會(huì)把它當(dāng)作一個(gè)單元來(lái)識(shí)別,而不再注意它的細(xì)節(jié)了。這種由孤立的單元材料組成的整體單位叫做組塊,每一個(gè)組塊是同時(shí)被感知的。在文字材料的識(shí)別中,人們不僅可以把一個(gè)漢字的筆劃或偏旁等單元組成一個(gè)組塊,而且能把經(jīng)常在一起出現(xiàn)的字或詞組成組塊單位來(lái)加以識(shí)別。圖像識(shí)別技術(shù)是人工智能的一個(gè)重要領(lǐng)域。為了編制模擬人類(lèi)圖像識(shí)別活動(dòng)的計(jì)算機(jī)程序,人們提出了不同的圖像識(shí)別模型。例如模板匹配模型。這種模型認(rèn)為,識(shí)別某個(gè)圖像,必須在過(guò)去的經(jīng)驗(yàn)中有這個(gè)圖像的記憶模式,又叫模板。當(dāng)前的刺激如果能與大腦中的模板相匹配,這個(gè)圖像也就被識(shí)別了。例如有一個(gè)字母A,如果在腦中有個(gè)A模板,字母A的大小、方位、形狀都與這個(gè)A模板完全一致,字母A就被識(shí)別了。這個(gè)模型簡(jiǎn)單明了,也容易得到實(shí)際應(yīng)用。但這種模型強(qiáng)調(diào)圖像必須與腦中的模板完全符合才能加以識(shí)別,而事實(shí)上人不僅能識(shí)別與腦中的模板完全一致的圖像,也能識(shí)別與模板不完全一致的圖像。例如,人們不僅能識(shí)別某一個(gè)具體的字母A,也能識(shí)別印刷體的、手寫(xiě)體的、方向不正、大小不同的各種字母A。同時(shí),人能識(shí)別的圖像是大量的,如果所識(shí)別的每一個(gè)圖像在腦中都有一個(gè)相應(yīng)的模板,也是不可能的。 為了解決模板匹配模型存在的問(wèn)題,格式塔心理學(xué)家又提出了一個(gè)原型匹配模型。這種模型認(rèn)為,在長(zhǎng)時(shí)記憶中存儲(chǔ)的并不是所要識(shí)別的無(wú)數(shù)個(gè)模板,而是圖像的某些“相似性”。從圖像中抽象出來(lái)的“相似性”就可作為原型,拿它來(lái)檢驗(yàn)所要識(shí)別的圖像。如果能找到一個(gè)相似的原型,這個(gè)圖像也就被識(shí)別了。這種模型從神經(jīng)上和記憶探尋的過(guò)程上來(lái)看,都比模板匹配模型更適宜,而且還能說(shuō)明對(duì)一些不規(guī)則的,但某些方面與原型相似的圖像的識(shí)別。但是,這種模型沒(méi)有說(shuō)明人是怎樣對(duì)相似的刺激進(jìn)行辨別和加工的,它也難以在計(jì)算機(jī)程序中得到實(shí)現(xiàn)。因此又有人提出了一個(gè)更復(fù)雜的模型,即“泛魔”識(shí)別模型。二、具體應(yīng)用實(shí)例基于方向梯度極值的手形輪廓跟蹤算法摘要針對(duì)受自然光照影響的手形圖像難以準(zhǔn)確提取手形輪廓的問(wèn)題,本文基于手形邊界像素在垂直于邊界方向上存在灰度突變的特性,提出了一種基于方向梯度極值的手形輪廓跟蹤算法。該算法首先找到手形輪廓的起始點(diǎn),然后按照一定的搜索方向和規(guī)則,在局部區(qū)域內(nèi)計(jì)算候選點(diǎn)集中梯度極大值所在的點(diǎn),并逐點(diǎn)跟蹤極大值點(diǎn),得到手形輪廓。將該方法在實(shí)驗(yàn)室自采圖庫(kù)及香港科技大學(xué)(HKUST)的手形圖像庫(kù)兩個(gè)數(shù)據(jù)庫(kù)中進(jìn)行輪廓跟蹤實(shí)驗(yàn),結(jié)果顯示,自采圖庫(kù)的跟蹤準(zhǔn)確率為100%,香港科技大學(xué)手形圖像庫(kù)的跟蹤準(zhǔn)確率為85.8%,該庫(kù)中符合本文算法限制條件的圖像的跟蹤準(zhǔn)確率為99.4%。實(shí)驗(yàn)結(jié)果表明,該方法能在灰度圖像上直接跟蹤出準(zhǔn)確、連續(xù)、完整的手形輪廓,尤其適合于受光照不均影響的手形圖像的邊緣提取。1 引言在生物特征識(shí)別領(lǐng)域,手形識(shí)別以其采集方便、處理速度快、對(duì)設(shè)備要求不高、易與其它特征組合成多生物特征識(shí)別等優(yōu)點(diǎn)而備受關(guān)注和重視,已成為一種極具發(fā)展?jié)摿Φ纳锾卣髯R(shí)別技術(shù)。手形識(shí)別是指對(duì)手部的外部輪廓所構(gòu)成的幾何圖形進(jìn)行識(shí)別,提取的特征為手的不同部位的尺寸或是手指邊緣的輪廓點(diǎn)集。因此手形輪廓提取的準(zhǔn)確程度對(duì)整個(gè)手形識(shí)別過(guò)程至關(guān)重要,直接決定了提取特征的準(zhǔn)確性。采用現(xiàn)有的手形提取方法獲取完整準(zhǔn)確的手形輪廓圖形時(shí),對(duì)采集設(shè)備的遮光和光線要求比較嚴(yán)格,采集的大多是前景和背景灰度差異十分明顯的不受光照影響的手形圖像,通過(guò)閾值二值化和圖像濾波來(lái)獲得較好的分割效果。但這些手形提取方法都局限于各自的圖像條件,適用范圍局限性大。在實(shí)際應(yīng)用中往往不便于在采集圖像時(shí)加入過(guò)多的限制條件,一是限制條件過(guò)多會(huì)使用戶覺(jué)得不友好,甚至產(chǎn)生抵觸情緒;二是這大大減小了手形識(shí)別/認(rèn)證的適用范圍,制約其發(fā)展??紤]到友好性、實(shí)用性和價(jià)格等因素,手形識(shí)別應(yīng)盡量選用普通低成本設(shè)備,并盡量減少手形采集時(shí)的限制條件,但這就使得實(shí)際應(yīng)用環(huán)境中采集的圖像會(huì)不同程度地受到光照環(huán)境和采集設(shè)備的影響。如偏光導(dǎo)致的高光和陰影以及隨著照明光源的位置變化,極易在提取過(guò)程中造成手形輪廓的缺失和冗余,而設(shè)備噪聲也會(huì)給手形輪廓的提取造成很大的誤差。因此,在這些圖像條件下,原有的手形提取方法不再適用,需要尋找與之相適應(yīng)的新的手形提取方法,以確保提取的特征受外界環(huán)境的干擾盡可能小。針對(duì)實(shí)際環(huán)境中自然光照條件下拍攝的圖像易受光照影響,而原有方法難以準(zhǔn)確提取輪廓的問(wèn)題,本文提出了一種基于方向梯度極值的手形輪廓跟蹤算法,在灰度圖像上直接跟蹤手形輪廓。該方法利用手形邊界像素在垂直于邊界方向上存在灰度突變的特性,從手形輪廓起始點(diǎn)開(kāi)始,通過(guò)計(jì)算局部區(qū)域內(nèi)的候選點(diǎn)中梯度極大值所在的點(diǎn),并逐點(diǎn)跟蹤極大值點(diǎn)得到手形輪廓。分別應(yīng)用該算法對(duì)實(shí)驗(yàn)室自采的手形圖像庫(kù)和香港科技大學(xué)提供的手形圖像庫(kù)進(jìn)行實(shí)驗(yàn),結(jié)果表明了該算法的有效性。2 本文輪廓跟蹤方法在手形灰度圖像中,位于手形邊界輪廓處的像素,在垂直于邊界方向上存在灰度級(jí)的迅速變化,且真實(shí)邊界點(diǎn)在垂直于邊界方向上的灰度梯度應(yīng)為局部區(qū)域內(nèi)各像素梯度的極大值,因此可以通過(guò)判斷局部區(qū)域內(nèi)各點(diǎn)灰度梯度的大小找到手形的真實(shí)邊緣點(diǎn)。本文方法首先定位手形輪廓的起始點(diǎn),然后依據(jù)手形輪廓的走向在局部區(qū)域內(nèi)確定出候選的輪廓點(diǎn)集,用合適的梯度卷積模板計(jì)算出候選像素點(diǎn)集中垂直于邊緣方向上梯度最大的點(diǎn)(此處的邊緣方向是指:從上一輪廓點(diǎn)到該候選點(diǎn)的方向),并逐點(diǎn)跟蹤梯度最大點(diǎn),既可得到完整的手形輪廓。通過(guò)對(duì)大量圖像的觀察,發(fā)現(xiàn)位于手形邊緣處存在34個(gè)像素寬度的灰度過(guò)渡變化帶,如圖1所示。由于該過(guò)渡帶的存在,手形邊界處的像素并非在單像素寬度內(nèi)呈現(xiàn)梯度的急劇變化,因此用簡(jiǎn)單的微分算子難以找到真實(shí)邊緣。算法關(guān)鍵是:(1)找到合適的梯度卷積模板;(2)在手形邊界的過(guò)渡帶像素中確定出真實(shí)邊界點(diǎn)的準(zhǔn)則。若選取的梯度卷積模板過(guò)小,則受過(guò)渡帶像素的影響大,易出現(xiàn)梯度極大值所在的點(diǎn)偏離手形輪廓的情況;而模板過(guò)大不僅會(huì)導(dǎo)致算法計(jì)算量大,而且對(duì)于手指間縫隙較小的圖像,在跟蹤至指跟處時(shí),由于輪廓像素的方向變化較快,過(guò)大的模板窗口在此處卷積后的值表征垂直于輪廓方向梯度的能力減小,影響跟蹤的準(zhǔn)確性。因此梯度卷積模板的選取至關(guān)重要。本文通過(guò)用不同大小、不同方向的模板對(duì)大量圖像進(jìn)行實(shí)驗(yàn)驗(yàn)證得出:本文選用的5X5大小的4個(gè)方向的梯度卷積模板計(jì)算手形邊緣像素的灰度梯度效果最優(yōu)。本文均以手腕部位在圖像右側(cè)的右手圖像為例闡述該算法,如圖2。2.1 輪廓跟蹤算法描述2.1.1 確定輪廓跟蹤起始點(diǎn)本文算法設(shè)定輪廓跟蹤起始點(diǎn)為圖像最右列的手腕上邊緣點(diǎn)。位于手腕邊緣處的像素點(diǎn),灰度級(jí)存在明顯變化,且真實(shí)邊緣點(diǎn)處應(yīng)有最大的灰度變化。微分邊緣檢測(cè)算子在圖像灰度級(jí)迅速變化的點(diǎn)處得到較高的值,且灰度級(jí)變化越大,該點(diǎn)所得的值越大。因此本文用一個(gè)豎直方向的邊緣檢測(cè)模板(模板1),逐點(diǎn)與圖像最右列像素做卷積,卷積所得的值即為圖像中與模板中心元素對(duì)應(yīng)的像素點(diǎn)在豎直方向上的梯度,梯度值最大且為正值的點(diǎn)即為手形輪廓起始點(diǎn)。若在定位輪廓起始點(diǎn)時(shí),出現(xiàn)兩個(gè)梯度值最大且為正值的點(diǎn)的情況,則增大梯度模板,將模板上下各增加一個(gè)元素,用新模板對(duì)這兩個(gè)梯度值最大且為正值的點(diǎn)重新求取梯度值,若兩點(diǎn)的梯度值仍相等,則繼續(xù)增大模板,直至找到唯一的輪廓起始點(diǎn)。若出現(xiàn)兩個(gè)以上梯度值相同的點(diǎn),可用同樣方法處理。2.1.2 確定第二、第三輪廓點(diǎn)及輪廓走向依據(jù)起始點(diǎn)位置,確定第二、第三輪廓點(diǎn)。本文輪廓跟蹤順序?yàn)?從起始點(diǎn)開(kāi)始,沿逆時(shí)針?lè)较?按照手形輪廓的自然走向逐點(diǎn)跟蹤,直至跟蹤到達(dá)圖像右側(cè)邊緣,結(jié)束跟蹤。因此第二輪廓點(diǎn)的候選點(diǎn)集為起始點(diǎn)(i, j)左側(cè)的3個(gè)鄰域像素點(diǎn),如圖3所示,3個(gè)候選點(diǎn)為(i-1,j-1),(i,j-1),(i+1,j-1)。由于此時(shí)候選像素點(diǎn)位于圖像邊界,若采用本文的5X5模板進(jìn)行卷積,位于圖像邊緣處的像素不夠容納模板窗口的大小,因此不適宜用本文5X5模板求取梯度的方法確定第二輪廓點(diǎn)。故對(duì)第二輪廓點(diǎn)采用了如下求取方法:(1)依據(jù)公式(1)求得最大值MAX。(2)當(dāng)公式(1)取得最大值MAX時(shí),對(duì)應(yīng)的像素點(diǎn)坐標(biāo)(i+k,j-1)為第二輪廓點(diǎn)。MAX=maxabsh(i+k,j-1)-h(i+k-1,j-1) k=-1,0,1(1)其中:h(p,q)為圖像中第p行,第q列像素點(diǎn)的灰度值。第二輪廓點(diǎn)確定后,依據(jù)第二輪廓點(diǎn)位置,用相同方法確定第三輪廓點(diǎn),并將第三輪廓點(diǎn)作為當(dāng)前點(diǎn),將第二輪廓點(diǎn)到第三輪廓點(diǎn)的方向記錄為當(dāng)前方向。2.1.3 輪廓跟蹤規(guī)則根據(jù)前一步的走向,即當(dāng)前方向,確定下一步的可能走向(3個(gè)可選方向)。下一步走向的三個(gè)可選方向分別為當(dāng)前方向以及對(duì)應(yīng)于8方向碼(如圖4)中的當(dāng)前方向的兩個(gè)鄰接方向。例如:若當(dāng)前方向?yàn)?,則下一步的可選方向?yàn)?、4、5;若當(dāng)前方向?yàn)?,則下一步的可選方向?yàn)?、5、6;其余同理。對(duì)3個(gè)可能走向分別以從當(dāng)前點(diǎn)沿該方向前進(jìn)一點(diǎn)作為候選點(diǎn),得到3個(gè)候選點(diǎn),將每個(gè)候選點(diǎn)對(duì)應(yīng)于卷積模板的中心元素求卷積。模板的選取是根據(jù)從當(dāng)前點(diǎn)到該候選點(diǎn)的方向(稱(chēng)為候選方向)確定的,每個(gè)不同的候選方向?qū)?yīng)于不同的卷積模板進(jìn)行計(jì)算。若候選方向?yàn)?或4,選用0度方向模板;若候選方向?yàn)?或5,用135度方向模板;若候選方向?yàn)?或6,用90度方向模板;若候選方向?yàn)?或7,用45度方向模板,四個(gè)方向的卷積模板如圖5所示。對(duì)3個(gè)候選點(diǎn)分別用與之相對(duì)應(yīng)的方向梯度卷積模板求卷積,求得的值即為與該候選點(diǎn)的走向垂直方向上的梯度。當(dāng)某一候選點(diǎn)位于手形輪廓真實(shí)邊緣時(shí),其垂直于邊緣方向的梯度在三個(gè)候選點(diǎn)中應(yīng)呈現(xiàn)出最大值。因此3個(gè)候選點(diǎn)中梯度絕對(duì)值最大的點(diǎn)以及該點(diǎn)對(duì)應(yīng)的方向即為下一輪廓點(diǎn)及下一步走向。將找到的下一輪廓點(diǎn)作為新的當(dāng)前點(diǎn),將其對(duì)應(yīng)的方向作為新的當(dāng)前方向,循環(huán)此過(guò)程,直至遇到終止條件結(jié)束跟蹤。0度方向模板檢測(cè)的是垂直方向的梯度,45度方向模板檢測(cè)的是135度方向的梯度,其余兩個(gè)方向模板同理。2.1.4 輪廓跟蹤的終止條件依據(jù)模板窗口大小和跟蹤結(jié)束時(shí)的輪廓走向,當(dāng)當(dāng)前點(diǎn)的橫坐標(biāo)距離圖像右側(cè)邊界小于3個(gè)像素的距離,且跟蹤方向?yàn)?或1或7時(shí),跟蹤結(jié)束。2.2 算法步驟(1)對(duì)圖像中最右列的上數(shù)第四點(diǎn)至下數(shù)第四點(diǎn)之間的像素逐點(diǎn)用模板1做卷積,卷積所得的值最大的點(diǎn)記為輪廓跟蹤的起始點(diǎn)。若得到兩個(gè)(或兩個(gè)以上)值最大的點(diǎn),則將模板1上下各增加一個(gè)元素,用新模板對(duì)這兩點(diǎn)重新做卷積,直至只得到一個(gè)最大值為止。初始化輪廓數(shù)組,并將起始點(diǎn)存入輪廓數(shù)組。(2)將起始點(diǎn)的左側(cè)鄰域三點(diǎn)分別作為候選點(diǎn),依據(jù)公式(1)計(jì)算得到第二輪廓點(diǎn)。再以第二輪廓點(diǎn)左側(cè)鄰域三點(diǎn)為候選點(diǎn),用同樣方法找到第三輪廓點(diǎn)。將第二、第三輪廓點(diǎn)分別存入輪廓數(shù)組。將第三輪廓點(diǎn)作為當(dāng)前點(diǎn)CurrentPoint,將第二輪廓點(diǎn)到第三輪廓點(diǎn)的方向記錄為當(dāng)前方向CurrentDirection。(3)將當(dāng)前方向CurrentDirection以及對(duì)應(yīng)于圖4方向碼中當(dāng)前方向的兩個(gè)鄰接方向作為下一步的3個(gè)可能走向。(4)從當(dāng)前點(diǎn)沿著每個(gè)可能走向分別前進(jìn)一點(diǎn)作為候選點(diǎn)。對(duì)每個(gè)候選點(diǎn),依據(jù)從當(dāng)前點(diǎn)到該候選點(diǎn)的方向,從圖5中選取與該方向相對(duì)應(yīng)的卷積模板,將該候選點(diǎn)對(duì)應(yīng)于模板中心元素求卷積,將卷積結(jié)果的絕對(duì)值作為該候選點(diǎn)的灰度梯度值。(5)比較第(4)步中3個(gè)候選點(diǎn)的灰度梯度值的大小,將值最大的候選點(diǎn)作為下一個(gè)輪廓點(diǎn)(若3個(gè)候選點(diǎn)的灰度梯度值出現(xiàn)相等的情況,則若出現(xiàn)相等情況的點(diǎn)中包括中心方向上的點(diǎn),則取中心方向上的點(diǎn)作為下一輪廓點(diǎn);否則,取中心方向右側(cè)方向上的點(diǎn)作為下一輪廓點(diǎn))。將找到的輪廓點(diǎn)存入輪廓數(shù)組,將當(dāng)前方向更新為從當(dāng)前點(diǎn)到該輪廓點(diǎn)的方向,再將當(dāng)前點(diǎn)更新為該輪廓點(diǎn)。(6)判斷當(dāng)前點(diǎn)坐標(biāo)是否滿足結(jié)束條件。若當(dāng)前點(diǎn)的橫坐標(biāo)距離圖像右側(cè)邊界小于3個(gè)像素,且跟蹤方向?yàn)?或1或7時(shí),跟蹤結(jié)束,否則轉(zhuǎn)(3)繼續(xù)執(zhí)行。參考文獻(xiàn):基于方向梯度極值的手形輪廓跟蹤算法,苑瑋琦,董 茜,桑海峰,沈陽(yáng)工業(yè)大學(xué)視覺(jué)檢測(cè)技術(shù)研究所。3 實(shí)驗(yàn)結(jié)果處理圖像:代碼程序:建立10個(gè)m文件er.m,fangxianghans.m, gezhongsuanfa.m, juanji.m, lunkuo.m, moban.m, qishi.m, san.m, Untitled.m, youle.m,最終運(yùn)行Untitled文件,代碼如下:1、er.m:function secondpoint=er(firstpoint,I)M N=size(I);for i=1:3chazhi(i)=I(M-1,firstpoint+i-1)-I(M-1,firstpoint+i-2);endsecond=find(chazhi=max(chazhi);secondpoint=firstpoint+second(1)-1;2、fangxianghans.m:function fangxiang=fangxianghans(yqian,xqian,yhou,xhou)fang2=xhou-xqian;%1 0 -1 左右fang1=yhou-yqian;%1 0 -1 上下if fang1=0&fang2=-1 %向左 左 1 fangxiang=1;endif fang1=-1&fang2=-1 %向左上 左上2 fangxiang=2;endif fang1=-1&fang2=0 %向上 fangxiang=3;endif fang1=-1&fang2=1 %向右上 右上4 fangxiang=4;endif fang1=0&fang2=1 %向右 右5 fangxiang=5;endif fang1=1&fang2=1 %向右下 右下6 fangxiang=6; endif fang1=1&fang2=0 %向下 fangxiang=7;endif fang1=1&fang2=-1 %向左下 左下8 fangxiang=8;endfangxiang=fangxiang;3、gezhongsuanfa.m:clear;I=imread(5.bmp);% 讀圖片%figure;%imshow(I);%原圖像顯示%i2=im2bw(I,0.30);% 二值化%imshow(i2);%二值化顯示BW = edge(I,sobel,0.3);figure;imshow(BW);%原圖像顯示title(soble);BW = edge(I,prewitt);figure;imshow(BW);%原圖像顯示title(prewitt);BW = edge(I,roberts);figure;imshow(BW);%原圖像顯示title(roberts);BW = edge(I,log);figure;imshow(BW);%原圖像顯示title(log);BW = edge(I,canny);figure;imshow(BW);%原圖像顯示title(canny);4、juanji.m:function pointvalue=juanji(xianpointy,xianpointx,I,y,x,moban)wei_y=xianpointy+y;wei_x=xianpointx+x;I=im2double(I);pointvalues=0;for ii=1:5 for jj=1:5 pointvalues=I(wei_y+ii-3,wei_x+jj-3)*moban(ii,jj)+pointvalues; endend pointvalue=abs(pointvalues);5、lunkuo.m:function I_lunkuo=lunkuo(secondpoint,thirdpoint,I)M N=size(I);%fangxiang=fangxianghans(M,secondpoint,M-1,thirdpoint);%xianpointx=thirdpoint;%xianpointy=secondpoint;points(2)=secondpoint;points(1)=M-1;point(2)=thirdpoint;point(1)=M-2;flag=1;count=4;lunkuopoint(1,1)=1;lunkuopoint(1,2)=1;lunkuopoint(2,1)=M-1;lunkuopoint(2,2)=secondpoint;lunkuopoint(3,1)=M-2;lunkuopoint(3,2)=thirdpoint;while flag=1fangxiang=fangxianghans(points(1),points(2),point(1),point(2);xianpointy=point(1);xianpointx=point(2);pointqian=moban(fangxiang,xianpointy,xianpointx,I);points=point;point=pointqian;if point(1)=M-2&point(2)=thirdpoint%if count=M-10flag=0;end%if point(1)=M-5&point(2)=thirdpoint%if count=200%flag=0;%endlunkuopoint(count,1)=point(1) ; lunkuopoint(count,2)=point(2);count=count+1;endM N=size(I);for ii=1:M for jj=1:N I_lunkuo(ii,jj)=0; endendfor iii=1:count-2 I_lunkuo(lunkuopoint(iii,1),lunkuopoint(iii,2)=255;endmm=lunkuopoint;6、moban.m:function pointqian=moban(fangxiang,xianpointy,xianpointx,I)moban1=0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0; 0 -1 -1 -1 0; 0 -1 -1 -1 0;moban2=0 1 1 0 0; 1 1 1 0 0; 1 1 0 -1 -1; 0 0 -1 -1 -1; 0 0 -1 -1 0;moban3=0 0 0 0 0; 1 1 0 -1 -1; 1 1 0 -1 -1; 1 1 0 -1 -1; 0 0 0 0 0;moban4=0 0 1 1 0; 0 0 1 1 1; -1 -1 0 1 1; -1 -1 -1 0 0; -1 -1 0 0 0; % a=1111switch fangxiang case 1 pointqian1=juanji(xianpointy,xianpointx,I,1,-1,moban2);%向左下 8 4 pointqian2=juanji(xianpointy,xianpointx,I,0,-1,moban1);%繼續(xù)向左 1 1 pointqian3=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%向左上 2 2 case 2 pointqian1=juanji(xianpointy,xianpointx,I,0,-1,moban1);%向左 1 1 pointqian2=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%繼續(xù)左上 2 2 pointqian3=juanji(xianpointy,xianpointx,I,-1,0,moban3);%向上 3 3 case 3 pointqian1=juanji(xianpointy,xianpointx,I,-1,-1,moban4);%向左上 2 4 pointqian2=juanji(xianpointy,xianpointx,I,-1,0,moban3);%繼續(xù)向上 3 3 pointqian3=juanji(xianpointy,xianpointx,I,-1,1,moban2);%向右上 4 2 case 4 pointqian1=juanji(xianpointy,xianpointx,I,-1,0,moban3);%向上 3 pointqian2=juanji(xianpointy,xianpointx,I,-1,1,moban2);%繼續(xù)右上 4 2 pointqian3=juanji(xianpointy,xianpointx,I,0,1,moban1);%向右 5 case 5 pointqian1=juanji(xianpointy,xianpointx,I,-1,1,moban2);%向右上 4 2 pointqian2=juanji(xianpointy,xianpointx,I,0,1,moban1);%繼續(xù)向右 5 pointqian3=juanji(xianpointy,xianpointx,I,1,1,moban4);%向右下 6 2 case 6 pointqian1=juanji(xianpointy,xianpointx,I,0,1,moban1);%向右 5 pointqian2=juanji(xianpointy,xianpointx,I,1,1,moban4);%繼續(xù)右下 6 pointqian3=juanji(xianpointy,xianpointx,I,1,0,moban3);%向下 7 case 7 pointqian1=juanji(xianpointy,xianpointx,I,1,1,moban4);%向右下 6 4 pointqian2=juanji(xianpointy,xianpointx,I,1,0,moban3);%繼續(xù)向下 7 pointqian3=juanji(xianpointy,xianpointx,I,1,-1,moban2);%向左下 8 2 case 8 pointqian1=juanji(xianpointy,xianpointx,I,1,0,moban3);%向下 7 pointqian2=juanji(xianpointy,xianpointx,I,1,-1,moban2);%繼續(xù)左下 8 2 pointqian3=juanji(xianpointy,xianpointx,I,0,-1,moban1);%向左 1end bijiao(1)=pointqian1;bijiao(2)=pointqian2;bijiao(3)=pointqian3;suoyins=find(max(bijiao)=bijiao);suoyin=suoyins(1);switch fangxiang case 1 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy; pointqian(2)=xianpointx-1; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end case 2 if suoyin=1 pointqian(1)=xianpointy; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end case 3 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx-1; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end if suoyin=3 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end case 4 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx; end if suoyin=2 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end case 5 if suoyin=1 pointqian(1)=xianpointy-1; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end case 6 if suoyin=1 pointqian(1)=xianpointy; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end case 7 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx+1; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end if suoyin=3 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx-1; end case 8 if suoyin=1 pointqian(1)=xianpointy+1; pointqian(2)=xianpointx; end if suoyin=2 pointqian(1)=xianpointy+1; pointqian(2)=xianpo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論