




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..摘要數(shù)字圖像處理是一門新興技術(shù),隨著計(jì)算機(jī)硬件的發(fā)展,數(shù)字圖像的實(shí)時(shí)處理已經(jīng)成為可能,由于數(shù)字圖像處理的各種算法的出現(xiàn),使得其處理速度越來(lái)越快,能更好的為人們服務(wù)。數(shù)字圖像處理是一種通過(guò)計(jì)算機(jī)采用一定的算法對(duì)圖形圖像進(jìn)行處理的技術(shù)。數(shù)字圖像處理技術(shù)已經(jīng)在各個(gè)領(lǐng)域上都有了比較廣泛的應(yīng)用。圖像處理的信息量很大,對(duì)處理速度的要求也比較高。MATLAB強(qiáng)大的運(yùn)算和圖形展示功能,使圖像處理變得更加的簡(jiǎn)單和直觀。本文介紹了MATLAB語(yǔ)言的特點(diǎn),基于MATLAB的數(shù)字圖像處理環(huán)境,介紹了如何利用MATLAB及其圖像處理工具箱進(jìn)行數(shù)字圖像形狀的邊緣提取和識(shí)別分類。論文主要論述了利用MATLAB實(shí)現(xiàn)對(duì)圖像中的三角形,正方形,圓,橢圓,菱形的邊緣提取和自動(dòng)識(shí)別分類。關(guān)鍵詞:MATLAB;數(shù)字圖像處理;圖像形狀;圖像分類..目錄MACROBUTTONInsertCrossReference134421引言2257591.1課題研究目的及意義279471.2國(guó)內(nèi)外研究現(xiàn)狀2267382數(shù)字圖像形狀及預(yù)處理3223792.1概述3187922.2數(shù)字圖像的預(yù)處理454802.2.1數(shù)字圖像4285262.2.2采樣6316062.2.3量化6195852.2.4采樣、量化和圖像細(xì)節(jié)的關(guān)系7285882.3幾種典型的形狀特征描述方法787623形狀特征及提取分類8229293.1矩形度974133.2圓形度9213153.3矩10145563.4不變矩1042793.5基于不變矩的形狀特征提取1118591特征提取步驟115677邊緣提取算子的確定1129347邊緣提取常用算子1124330Canny算子12248123.6邊緣提取實(shí)驗(yàn)結(jié)果及分析14247553.6.1邊緣提取算法分析14269圖像形狀識(shí)別結(jié)果1428963結(jié)論2423778參考文獻(xiàn) 255970附錄:261引言本章簡(jiǎn)略介紹課題的研究目的及意義,該課題國(guó)內(nèi)外研究現(xiàn)狀以及論文內(nèi)容安排等。1.1課題研究目的及意義隨著信息化多媒體時(shí)代的到來(lái)及世界范圍內(nèi)Internet的風(fēng)行,人們?cè)诠ぷ骱蜕钪性絹?lái)越多的接觸到大量的各種各樣的圖像信息。圖像作為一種重要的信息載體,具有直觀、內(nèi)容豐富、無(wú)語(yǔ)言限制和便于國(guó)際交流等特點(diǎn),是組成多媒體信息的重要內(nèi)容。圖像處理技術(shù)已經(jīng)廣泛深入的應(yīng)用于各行各業(yè)中。設(shè)計(jì)制造、醫(yī)療衛(wèi)生、藝術(shù)文化、建筑工程、地理、公安等領(lǐng)域相繼建立了各種圖像庫(kù)。在浩如煙海的信息中,尋找感興趣的資料是極其耗時(shí)的,人們對(duì)信息檢索和系統(tǒng)的依賴日益加強(qiáng)。圖像的特征提取是基于內(nèi)容的圖像檢索系統(tǒng)部分的核心內(nèi)容。本文研究的重點(diǎn)就是如何從靜態(tài)圖像中提取出圖像的形狀特征。典型框架是:對(duì)圖像的形狀進(jìn)行人工標(biāo)注分類。這種方法當(dāng)圖像數(shù)量不大時(shí),不失為一種簡(jiǎn)單易行的方法。然而,當(dāng)圖像數(shù)據(jù)量非常龐大時(shí),基于文本的圖像檢索存在著諸多困難,此時(shí)圖像形狀的自動(dòng)識(shí)別就派上用場(chǎng)了。1.2國(guó)內(nèi)外研究現(xiàn)狀因?yàn)閳D像特征提取及識(shí)別具有很強(qiáng)的實(shí)用性,國(guó)內(nèi)外測(cè)繪界、計(jì)算機(jī)視覺、模式識(shí)別與人工智能等領(lǐng)域都對(duì)其進(jìn)行了深入研究。國(guó)外如美國(guó)的Mckeown實(shí)驗(yàn)室、英國(guó)的VGG實(shí)驗(yàn)室、德國(guó)的波恩大學(xué)、奧地利的格拉茨大學(xué)等,國(guó)內(nèi)如清華大學(xué)、北京大學(xué)、中科院等,在這方面都做了許多工作,取得了很大的成績(jī),有的成果己具備初步的實(shí)用價(jià)值。在上述研究的基礎(chǔ)上,近年來(lái)國(guó)內(nèi)外推出了一系列圖形圖像軟件,它們具備了較強(qiáng)的圖像特征提取和識(shí)別的功能。國(guó)外流行的圖像特征提取及識(shí)別的軟件,例如:德國(guó)softelec公司的VPStudio,日本日立公司的Imageseries,美國(guó)GTX公司的GTXRasterseries,挪威Rasterex公司的RxAutoImagePro2000等。國(guó)內(nèi)圖像特征提取及識(shí)別軟件,例如:東大阿爾派的SEAS系統(tǒng),華中理工大學(xué)的EDIS工程圖信息系統(tǒng),西工大CAD中心的NPPU-EDRS工程圖智能輸入與識(shí)別系統(tǒng),清華紫光的TH-DAIMS圖紙?zhí)幚硐到y(tǒng)等。從上面特征提取和識(shí)別的研究現(xiàn)狀來(lái)看,由于特征提取及識(shí)別問(wèn)題本身的多樣性和復(fù)雜性,現(xiàn)有的理論和方法離實(shí)際要求還有相當(dāng)距離,一些根本的問(wèn)題還有待進(jìn)一步深入研究。現(xiàn)有的特征提取和識(shí)別算法基本上還是處于實(shí)驗(yàn)階段,其實(shí)用性、通用性、準(zhǔn)確性等方面離大規(guī)模實(shí)際應(yīng)用的要求還有一定差距。所有這些應(yīng)用都是和問(wèn)題的性質(zhì)密不可分的,至今還沒有發(fā)展成統(tǒng)一、有效的可應(yīng)用于所有模式識(shí)別的理論。雖然各特征提取與識(shí)別算法的處理能力、特征提取能力、特征識(shí)別能力的效果方面各有所長(zhǎng),但是仍然在算法的性能、通用性、自動(dòng)化程度、準(zhǔn)確率方面存在很多不足。因此,為了彌補(bǔ)這些不足,對(duì)于圖像特征提取及識(shí)別技術(shù)的研究需要更多的關(guān)注,付出更多的努力。2數(shù)字圖像形狀及預(yù)處理2.1概述形狀特征是對(duì)圖像中邊界清晰的目標(biāo)的最好表達(dá)方式。是圖像目標(biāo)的一種顯著特征,在實(shí)際中通常利用形狀特征或主要邊界對(duì)圖像進(jìn)行檢索和分類。圖像分類〔識(shí)別屬于模式識(shí)別的范疇,其主要內(nèi)容是圖像經(jīng)過(guò)某些預(yù)處理〔增強(qiáng)、復(fù)原、壓縮后,進(jìn)行圖像分割和特征提取,從而進(jìn)行判決分類。圖像分類常采用經(jīng)典的模式識(shí)別方法,有統(tǒng)計(jì)模式分類和句法〔結(jié)構(gòu)模式分類,近年來(lái)新發(fā)展起來(lái)的模糊模式識(shí)別和人工神經(jīng)網(wǎng)絡(luò)模式分類在圖像識(shí)別中也越來(lái)越受到重視。Matlab是非常好用的圖像處理軟件。Matlab是由美國(guó)MathWorks公司開發(fā)的集數(shù)值計(jì)算、符號(hào)計(jì)算和圖形可視化三大基本功能于一體的,功能強(qiáng)大、操作簡(jiǎn)單的語(yǔ)言。是國(guó)際公認(rèn)的優(yōu)秀數(shù)學(xué)應(yīng)用軟件之一。Matlab的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用Matlab來(lái)解算問(wèn)題要比用C,FORTRAN等語(yǔ)言完相同的事情簡(jiǎn)捷得多。Matlab包括擁有數(shù)百個(gè)內(nèi)部函數(shù)的主包和三十幾種工具包<Toolbox>。工具包又可以分為功能性工具包和學(xué)科工具包。功能工具包用來(lái)擴(kuò)充Matlab的符號(hào)計(jì)算,可視化建模仿真,文字處理及實(shí)時(shí)控制等功能。學(xué)科工具包是專業(yè)性比較強(qiáng)的工具包,控制工具包,信號(hào)處理工具包,通信工具包等都屬于此類。開放性使Matlab廣受用戶歡迎。除內(nèi)部函數(shù)外,所有Matlab主包文件和各種工具包都是可讀可修改的文件,用戶通過(guò)對(duì)源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包。本文正是要使用Matlab從"輪廓"這個(gè)局部中找出特征來(lái)判斷"形狀"這個(gè)總體。2.2數(shù)字圖像的預(yù)處理2.2.1數(shù)字圖像所謂數(shù)字圖像就是把傳統(tǒng)圖像的畫面分割成如圖2-1所示的被成為像素〔pictureelement,簡(jiǎn)稱pixel。有時(shí)候也用pel這一簡(jiǎn)寫詞的小的離散點(diǎn),各像素的灰度值也是用離散值即整數(shù)值來(lái)表示的。數(shù)字圖像〔digitalimagine和傳統(tǒng)的圖像即模擬圖像<picture>是有差別的。圖2-1數(shù)字圖像常見的數(shù)字圖像格式有以下幾種:〔1PCX〔WindowsPaintbrush格式??商幚?,4,8,16,24位等圖像數(shù)據(jù)。文件內(nèi)容包括:文件頭〔128字節(jié),圖像數(shù)據(jù)、擴(kuò)展顏色映射表數(shù)據(jù)?!?BMP〔WindowsBitmap格式。有1,4,8,24位非壓縮圖像,8位RLE〔Run-lengthEncoded圖像。文件內(nèi)容包括:文件頭〔一個(gè)BITMAPFILEHEADER數(shù)據(jù)結(jié)構(gòu),位圖信息數(shù)據(jù)塊〔位圖信息頭BITMAPINFOHEADER和一個(gè)顏色表和圖像數(shù)據(jù)?!?HDF〔HierarchicalDataFormat格式。有8位,24位光柵數(shù)據(jù)集。〔4JPEG<JointPhotographicExpertsGroup>格式,是一種成為聯(lián)合圖像專家組的圖像壓縮格式?!?TIFF〔TaggedImageFileFormat格式。處理1,4,8,24位非壓縮圖像,1,4,8,24位packbit壓縮圖像,一位CCITT壓縮圖像等。文件內(nèi)容包括:文件頭,參數(shù)指針表與參數(shù)域,參數(shù)數(shù)據(jù)表和圖像數(shù)據(jù)四部分?!?XWD<XWindowsDump>格式。1,8位Zpixmaps,Xybitmaps,1位Xypixmaps?!?PNG〔PortableNetworkGraphics格式。為了從一般的照片,景物等模擬圖像中得到數(shù)字圖像,需要對(duì)傳統(tǒng)的模擬圖像進(jìn)行采樣與量化兩種操作〔二者統(tǒng)稱為數(shù)字化。數(shù)字圖像處理<DigitalImageProcessing>是通過(guò)計(jì)算機(jī)對(duì)圖像進(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)用需求的增長(zhǎng)。對(duì)數(shù)字圖像經(jīng)行處理要用到Matlab程序,它在數(shù)字圖像方面的用處巨大。圖像處理工具包是由一系列支持圖像處理操作的函數(shù)組成的。所支持的圖像處理操作有:圖像的幾何操作、鄰域和區(qū)域操作、圖像變換、圖像恢復(fù)與增強(qiáng)、線性濾波和濾波器設(shè)計(jì)、變換<DCT變換等>、圖像分析和統(tǒng)計(jì)、二值圖像操作等。下面就Matlab在圖像處理中各方面的應(yīng)用分別進(jìn)行介紹?!?圖像文件格式的讀寫和顯示。Matlab提供了圖像文件讀入函數(shù)imread<>,用來(lái)讀取如:bmp、tif、tiffpcx、jpg、gpeg、hdf、xwd等格式圖像文;圖像寫出函數(shù)imwrite<>,還有圖像顯示函數(shù)image<>、imshow<>等等?!?圖像處理的基本運(yùn)算。Matlab提供了圖像的和、差等線性運(yùn)算,以及卷積、相關(guān)、濾波等非線性算。例如,conv2<I,J>實(shí)現(xiàn)了I,J兩幅圖像的卷積?!?圖像變換。Matlab提供了一維和二維離散傅立葉變換<DFT>、快速傅立葉變換<FFT>、離散余弦變換<DCT>及其反變換函數(shù),以及連續(xù)小波變換<CWT>、離散小波變換<DWT>及其反變換?!?圖像的分析和增強(qiáng)。針對(duì)圖像的統(tǒng)計(jì)計(jì)算Matlab提供了校正、直方圖均衡、中值濾波、對(duì)比度調(diào)整、自適應(yīng)濾波等對(duì)圖像進(jìn)行的處理?!?圖像的數(shù)學(xué)形態(tài)學(xué)處理。針對(duì)二值圖像,Matlab提供了數(shù)學(xué)形態(tài)學(xué)運(yùn)算函數(shù);腐蝕<Erode>、膨脹<Dilate>算子,以及在此基礎(chǔ)上的開<Open>、閉<Close>算子、厚化<Thicken>、薄化<Thin>算子等豐富的數(shù)學(xué)形態(tài)學(xué)運(yùn)算。以上所提到的Matlab在圖像中的應(yīng)用都是由相應(yīng)的Matlab函數(shù)來(lái)實(shí)現(xiàn)的,使用時(shí),只需按照函數(shù)的調(diào)用語(yǔ)法正確輸入?yún)?shù)即可。具體的用法可參考Matlab豐富的幫助文檔。圖像邊緣對(duì)圖像識(shí)別和計(jì)算機(jī)分析十分有用,在Matlab中,函數(shù)edge<>用于灰度圖像邊緣的提取,它支持六種不同的邊緣提取方法,即Sobel方法、Prewitt方法、Robert方法,Laplacian2Gaussian方法、過(guò)零點(diǎn)方法和Canny方法?;镜膱D像類型分為以下幾種:<1>索引圖像索引圖像包括圖像矩陣與顏色圖數(shù)組,其中,顏色圖是按圖像中顏色值進(jìn)行排序后的數(shù)組。對(duì)于每個(gè)像素,圖像矩陣包含一個(gè)值,這個(gè)值就是顏色圖中的索引。顏色圖為m*3雙精度值矩陣,各行分別指定紅綠藍(lán)〔RGB單色值。Colormap=[R,G,B],R,G,B為值域?yàn)閇0,1]的實(shí)數(shù)值。圖像矩陣與顏色圖的關(guān)系依賴于圖像矩陣是雙精度型還是uint8〔無(wú)符號(hào)8位整型類型。如果圖像矩陣為雙精度類型,第一點(diǎn)的值對(duì)應(yīng)于顏色圖的第一行,第二點(diǎn)對(duì)應(yīng)于顏色圖的第二行,依次類推。如果圖像矩陣是uint8,有一個(gè)偏移量,第0點(diǎn)值對(duì)應(yīng)于顏色圖的第一行,第一點(diǎn)對(duì)應(yīng)于第二行,依次類推;uint8長(zhǎng)用于圖形文件格式,它支持256色?!?灰度圖像在MATLAB中,灰度圖像是保存在一個(gè)矩陣中的,矩陣中的每一個(gè)元素代表一個(gè)像素點(diǎn)。矩陣可以是雙精度類型,其值域?yàn)閇0,1];也可以為uint8類型,其數(shù)據(jù)范圍為[0,255]。矩陣的每個(gè)元素代表不同的亮度或灰度級(jí)。〔3二進(jìn)制圖像二進(jìn)制圖像中,每個(gè)點(diǎn)為兩離散值中的一個(gè),這兩個(gè)值代表開或關(guān)。二進(jìn)制圖像保存在一個(gè)由二維的由0〔關(guān)和1〔開組成的矩陣中。從另一個(gè)角度講,二進(jìn)制圖像可以看成為一個(gè)僅包括黑與白的灰度圖像,也可以看作只有兩種顏色的索引圖像。二進(jìn)制圖像可以保存為雙精度或uint8類型的雙精度數(shù)組,顯然使用uint8類型更節(jié)省空間。在圖像處理工具箱中,任何一個(gè)返回二進(jìn)制圖像的函數(shù)都是以u(píng)int8類型邏輯數(shù)組來(lái)返回的?!?RGB圖像與索引圖像一樣,RGB圖像分別用紅,綠,藍(lán)三個(gè)亮度值為一組,代表每個(gè)像素的顏色。與索引圖像不同的是,這些亮度值直接存在圖像數(shù)組中,而不是存放在顏色圖中。圖像數(shù)組為M*N*3,M,N表示圖像像素的行列數(shù)。2.2.2采樣采樣〔sampling就是把在時(shí)間上和空間上連續(xù)的圖像變成離散點(diǎn)〔采樣點(diǎn),即像素的集合的一種操作。圖像基本上是在二維平面上連續(xù)分布的信息形式要把它輸入到計(jì)算機(jī)中,首先要把二維信號(hào)變成一維信號(hào),因此要進(jìn)行掃描〔scanning。最常用的掃描方法是在二維平面上按一定間隔順序地從上方順序地沿水平方向的直線〔掃描線掃描,從而取出濃淡值〔灰度值的線掃描〔Laster掃描。對(duì)于由此得到的一維信號(hào),通過(guò)求出每一特定間隔的值,可以得到離散的信號(hào)。對(duì)于運(yùn)動(dòng)圖像除進(jìn)行水平,垂直兩個(gè)方向的掃描以外,還有進(jìn)行時(shí)間軸上的掃描。通過(guò)采樣,如設(shè)橫向的像素?cái)?shù)為M,縱向的像素?cái)?shù)為N,則畫面的大小可以表示為"M*N"個(gè)像素。量化經(jīng)過(guò)采樣,圖像被分解成在時(shí)間上和空間上離散分布的像素,但是像素的值〔灰度值還是連續(xù)值。像素的值,是指白色-灰色-黑色的濃淡值,有時(shí)候也指光的強(qiáng)度〔亮度值或灰度值。把這些連續(xù)的濃淡值或灰度值變?yōu)殡x散的值〔整數(shù)值的操作就是量化。如果把這些連續(xù)變化的值〔灰度值量化為8bit,則灰度值被分成0-255的256個(gè)級(jí)別,分別對(duì)應(yīng)于各個(gè)灰度值的濃淡程度,叫做灰度等級(jí)或灰度標(biāo)度。在0-255的值對(duì)應(yīng)于白-黑的時(shí)候,有以0為白,255為黑的方法,也有以0為黑,255為白的方法,這取決于圖像的輸入方法以及用什么樣的觀點(diǎn)對(duì)圖像進(jìn)行處理等,這是在編程時(shí)應(yīng)特別注意的問(wèn)題。但在只有黑白二值的二值圖像的情形,一般設(shè)0為白,1為黑。對(duì)連續(xù)的灰度值賦予量化級(jí)的,即灰度值方法有:均勻量化〔uniformquantization,線性量化〔linerquantization,對(duì)數(shù)量化,MAX量化,錐形量化〔taperedquantization等。采樣、量化和圖像細(xì)節(jié)的關(guān)系上面的數(shù)字化過(guò)程,需要確定數(shù)值N和灰度級(jí)的級(jí)數(shù)K。在數(shù)字圖像處理中,一般都取成2的整數(shù)冪,即:<2-1><2-2>一幅數(shù)字圖像在計(jì)算機(jī)中所占的二進(jìn)制存儲(chǔ)位數(shù)b為<2-3>例如,灰度級(jí)為256級(jí)<m=8>的512×512的一幅數(shù)字圖像,需要大約210萬(wàn)個(gè)存儲(chǔ)位。隨著N和m的增加,計(jì)算機(jī)所需要的存儲(chǔ)量也隨之迅速增加。由于數(shù)字圖像是連續(xù)圖像的近似,從圖像數(shù)字化的過(guò)程可以看到。這種近似的程度主要取決于采樣樣本的大小和數(shù)量<N值>以及量化的級(jí)數(shù)K<或m值>。N和K的值越大,圖像越清晰。2.3幾種典型的形狀特征描述方法對(duì)形狀分析和分類的方法技術(shù)有許多。通常來(lái)說(shuō),形狀特征表示方法可以分為兩類:基于邊界的和基于區(qū)域的。前者使用形狀的外部邊界,而后者使用整個(gè)區(qū)域。這兩類形狀特征的最典型的方法分別是傅立葉描述符、變形模板匹配和形狀不變矩。此外輪廓匹配方法還有幾何參數(shù)法、邊界方向直方圖法、小波重要系數(shù)法和小波輪廓表示法等。幾種典型的形狀特征描述方法:〔1邊界特征法該方法通過(guò)對(duì)邊界特征的描述來(lái)獲取圖像的形狀參數(shù)。其中Hough變換檢測(cè)平行直線方法和邊界方向直方圖方法是經(jīng)典方法。Hough變換是利用圖像全局特性而將邊緣像素連接起來(lái)組成區(qū)域封閉邊界的一種方法,其基本思想是點(diǎn)—線的對(duì)偶性;邊界方向直方圖法首先微分圖像求得圖像邊緣,然后,做出關(guān)于邊緣大小和方向的直方圖,通常的方法是構(gòu)造圖像灰度梯度方向矩陣。〔2傅里葉形狀描述符法傅里葉形狀描述符<Fouriershapedescriptors>基本思想是用物體邊界的傅里葉變換作為形狀描述,利用區(qū)域邊界的封閉性和周期性,將二維問(wèn)題轉(zhuǎn)化為一維問(wèn)題。由邊界點(diǎn)導(dǎo)出三種形狀表達(dá),分別是曲率函數(shù)、質(zhì)心距離、復(fù)坐標(biāo)函數(shù)。〔3幾何參數(shù)法形狀的表達(dá)和匹配采用更為簡(jiǎn)單的區(qū)域特征描述方法,例如采用有關(guān)形狀定量測(cè)度〔如矩、面積、周長(zhǎng)等的形狀參數(shù)法〔shapefactor。在QBIC系統(tǒng)中,便是利用圓度、偏心率、主軸方向和代數(shù)不變矩等幾何參數(shù),進(jìn)行基于形狀特征的圖像檢索。需要說(shuō)明的是,形狀參數(shù)的提取,必須以圖像處理及圖像分割為前提,參數(shù)的準(zhǔn)確性必然受到分割效果的影響,對(duì)分割效果很差的圖像,形狀參數(shù)甚至無(wú)法提取?!?形狀不變矩法利用目標(biāo)所占區(qū)域的矩作為形狀描述參數(shù)來(lái)進(jìn)行分類?!?其它方法近年來(lái),在形狀的表示和匹配方面的工作還包括有限元法〔FiniteElementMethod或FEM、旋轉(zhuǎn)函數(shù)〔TurningFunction和小波描述符〔WaveletDescriptor等方法。3形狀特征及提取分類本文主要采用的是幾何參數(shù)法來(lái)判斷給出的的圖像是什么形狀。對(duì)于圖像分類問(wèn)題,特征提取的好壞是決定分類性能的關(guān)鍵因素。提取物體的形狀特征前,首先要對(duì)圖像進(jìn)行邊緣提取,以獲得物體的輪廓邊界,然后需要把輪廓邊界區(qū)域的特征抽取出來(lái)。在這些特征里面,有一部分可以用數(shù)字量值來(lái)描述,但更多的特征是一些沒有明顯特征的幾何圖形。為了便于圖像的匹配,需要對(duì)這些幾何圖形進(jìn)行進(jìn)一步的描述。圖像中物體的性質(zhì)不能因?yàn)閳D像的平移、旋轉(zhuǎn)、比例尺度的改變而發(fā)生變化。所以,在進(jìn)行形狀描述時(shí),選擇的描述符應(yīng)具有平移不變性、旋轉(zhuǎn)不變性、尺度不變性等特點(diǎn)。不但如此,選擇的描述符還應(yīng)該能夠刻畫形狀的本質(zhì)特點(diǎn),使得該描述符具有良好的可分辨能力。圖像特征選擇的原則特征提取是對(duì)模式所包含的輸入信息進(jìn)行處理和分析,將不易受隨機(jī)因素干擾的信息作為該模式的特征提取出來(lái)。特征提取過(guò)程是去除冗余信息的過(guò)程,具有提高識(shí)別精度,減少運(yùn)算量和提高運(yùn)算速度的作用。3.1矩形度用目標(biāo)圖像的面積和包圍該圖像的最小的矩形面積之比作為目標(biāo)矩形度的一種度量參數(shù),記為<3-1>其中表示目標(biāo)圖像的面積,表示包圍該圖像的最小矩形的面積。R的大小能反映目標(biāo)物體和矩形的接近程度。矩形度的值限定在0到1之間。3.2圓形度對(duì)于面積一定的圖形,一半周長(zhǎng)越小,圓形表面越光滑,越接近圓;反之,周長(zhǎng)越大,則圓形表面褶皺越多,形狀也就越復(fù)雜。基于這個(gè)原因,一般采用圓形度來(lái)衡量圖形偏向圓形狀的程度。形狀的圓形度是指目標(biāo)物體的周長(zhǎng)平方和其面積之比,記為<3-2>其中:P表示圖形的周長(zhǎng),A表示周長(zhǎng)所圍的面積。理論上講,圓的圓形度為1.0,正方形的圓形度為=0.79,正三角形的圓形度為=0.60.另外,圓形度還有兩個(gè)計(jì)算公式:<3-3>其中,A為區(qū)域面積,為區(qū)域最小外接圓面積。該指標(biāo)同樣認(rèn)為圓形區(qū)域最緊湊,其緊湊度為1。在計(jì)算中采用最小外接圓面積作為衡量區(qū)域形狀的標(biāo)準(zhǔn)。<3-4>其中,A為區(qū)域面積,L為區(qū)域最長(zhǎng)軸長(zhǎng)度。該指標(biāo)噎人為圓形為標(biāo)準(zhǔn)形狀,但它只考慮了最長(zhǎng)軸的長(zhǎng)度,只能概略地反映連通區(qū)域的形狀。3.3矩當(dāng)物體是一些簡(jiǎn)單的幾何圖像,用以上的形狀描述參數(shù)物體比較合適。如果圖像的邊界特征復(fù)雜,用以上的參數(shù)來(lái)描述物體的形狀比較困難。對(duì)于復(fù)雜的物體,我們可以通過(guò)矩和輪廓描述符來(lái)描述復(fù)雜物體。矩特征是建立在對(duì)一個(gè)區(qū)域內(nèi)部灰度值分布的統(tǒng)計(jì)分析基礎(chǔ)上的,是一種統(tǒng)計(jì)平均的描述,可以從全局觀點(diǎn)描述對(duì)象的整體特征。矩是一種線性特征,矩特征對(duì)于圖像的旋轉(zhuǎn)、比例尺度、平移具有不變性,因此可以用來(lái)描述圖像中區(qū)域的形狀特性。3.4不變矩二維矩不變量理論是在1962年由美籍華人學(xué)者胡貴明提出的,并將矩用于形狀識(shí)別。對(duì)于連續(xù)圖像二維函數(shù)f<x,y>,其<p+q>階矩定義為如下黎曼積分形式:<3-5>式中p,q=0,1,2,L。根據(jù)唯一性定理〔Papoulis,1965,若f<x,y>是分段連續(xù)的,即只要在xy平面區(qū)域有非零值,則所有的各階矩均存在,且矩序列{}唯一的被f<x,y>所確定。反之,{}也唯一的確定了f<x,y>。將上述矩特征量進(jìn)行位置歸一化,得到圖像f<x,y>的中心矩:對(duì)于數(shù)字圖像f<x,y>,用雙重求和的形式代替上述積分,點(diǎn)<x,y>處的<p+q>階矩定義為:<3-6>由此可見該中心幾何矩也符合尺度不變性的特性。3.5基于不變矩的形狀特征提取特征提取步驟連續(xù)外輪廓邊緣圖像圖像外輪廓圖像庫(kù)連續(xù)外輪廓邊緣圖像圖像外輪廓圖像庫(kù)特征庫(kù)不變矩特征目標(biāo)區(qū)域連續(xù)、單值、二值化輪廓特征庫(kù)不變矩特征目標(biāo)區(qū)域連續(xù)、單值、二值化輪廓圖3-1形狀特征提取系統(tǒng)流程1.確定用Canny算子對(duì)圖像進(jìn)行邊緣提取,得到邊緣圖像;2.對(duì)邊緣圖像進(jìn)行輪廓跟蹤,得到外輪廓圖像;3.對(duì)外輪廓圖像進(jìn)行預(yù)處理:首先平滑輪廓線得到連續(xù)的輪廓線,采用自適應(yīng)二值化的方法二值化該輪廓線,再細(xì)化輪廓線。最后得到清晰的連續(xù)平滑、單像素、二值化的外輪廓圖像;4.進(jìn)行種子填充,得到圖像的外輪廓線所包圍的目標(biāo)區(qū)域;5.計(jì)算目標(biāo)區(qū)域的七個(gè)不變矩,構(gòu)成這幅圖像的形狀特征向量;6.對(duì)形狀特征向量進(jìn)行內(nèi)部歸一化處理,將特征值存入圖像特征庫(kù)。邊緣提取算子的確定圖像邊緣蘊(yùn)含了豐富的信息,是抽取圖像形狀特征的重要屬性。因此,邊緣算子必須能做到清晰,準(zhǔn)確。邊緣提取常用算子邊緣提取的主要計(jì)算方法是基于方向?qū)?shù)掩模求卷積的方法,得到橫向縱向的梯度圖像和模值圖像,然后根據(jù)梯度方向來(lái)進(jìn)行模的極大值提取,獲得需要的物體邊緣。它是對(duì)目標(biāo)輪廓線或邊界的檢出。常用的有Roberts算子、Prewitt算子、Sobel算子和Laplacian算子。在實(shí)際應(yīng)用中,因?yàn)橐恍?shí)際的因素,如光照、隨機(jī)噪聲的影響,往往會(huì)使圖像模糊或出現(xiàn)孤立的邊緣點(diǎn),使邊緣檢測(cè)遇到很多難題。前面的幾種方法在不同程度上存在著對(duì)噪聲敏感的缺點(diǎn)。我們需要精確的檢測(cè)出圖像的邊緣點(diǎn),意味著以下三點(diǎn):1、低失誤率,既要少將真正的邊緣丟失,也要少將非邊緣判為邊緣;2、高定位精度,檢測(cè)出的邊緣應(yīng)在真正的邊緣位置上;3、對(duì)每個(gè)邊緣有唯一的響應(yīng),得到的邊緣為單邊緣。Canny算子Canny算子是一類具有優(yōu)良性能的邊緣檢測(cè)算子,它在許多圖像處理領(lǐng)域得到廣泛應(yīng)用。從本質(zhì)上講,它并不只是簡(jiǎn)單的進(jìn)行梯度運(yùn)算來(lái)決定像素是否為邊緣點(diǎn),在決定一個(gè)像素是否為當(dāng)前邊緣點(diǎn)時(shí),需要考慮其它像素的影響;也不是簡(jiǎn)單的邊界跟蹤,在尋找邊緣點(diǎn)時(shí),需要根據(jù)當(dāng)前像素及前面處理過(guò)的像素來(lái)進(jìn)行判斷。它把邊緣檢測(cè)的問(wèn)題轉(zhuǎn)換為檢測(cè)函數(shù)極大值的問(wèn)題。其基本思想是:先對(duì)處理的圖像選擇一定的Gauss濾波器進(jìn)行平滑濾波,然后采用一種稱之為"非最大值抑制"<Non-maxSuppression>的技術(shù),對(duì)平滑后的圖像處理后,得到最后的邊緣圖像。Canny提出了判斷邊緣檢測(cè)算子好壞的三個(gè)標(biāo)準(zhǔn):〔1信噪比準(zhǔn)則盡量做到不漏檢又不誤檢使輸出的信噪比最大。信噪比數(shù)值越大,提取的邊緣質(zhì)量越高;〔2定位精度準(zhǔn)則檢測(cè)出的邊緣點(diǎn)位置距實(shí)際邊緣點(diǎn)的位置最近,使得輸出的圖像定位精度高;〔3單邊緣響應(yīng)準(zhǔn)則每個(gè)邊緣點(diǎn)的響應(yīng)是唯一的。每一個(gè)實(shí)際存在的邊緣點(diǎn)和檢測(cè)到的邊緣點(diǎn)是一一對(duì)應(yīng)的,得到的邊緣寬度為單像素。以上面的準(zhǔn)則為基礎(chǔ),利用泛函求導(dǎo)的方法導(dǎo)出一個(gè)由邊緣定位精度和信噪比乘積組成的表達(dá)式,這個(gè)表達(dá)式近似于Gauss函數(shù)的一階導(dǎo)數(shù),此即為該函數(shù)的最好近似。Canny算子的算法實(shí)現(xiàn)主要包括5個(gè)部分:圖像濾波、計(jì)算圖像梯度、抑制梯度非最大點(diǎn)、搜索邊界的起點(diǎn)、跟蹤邊界。平滑圖像時(shí)也用到高斯濾波器,用到的高斯函數(shù)為:〔3-7原始圖片原始圖片平滑濾波選擇Gauss濾波器平滑濾波選擇Gauss濾波器非極值抑制處理非極值抑制處理選擇極值點(diǎn)的鄰域結(jié)構(gòu)選擇極值點(diǎn)的鄰域結(jié)構(gòu)獲得圖像邊界獲得圖像邊界圖3-2canny算子的基本流程1、采用高斯濾波對(duì)圖像進(jìn)行濾波,濾波先對(duì)x方向進(jìn)行,然后對(duì)y方向進(jìn)行,主要是用于去除圖像中的噪聲;2、產(chǎn)生一個(gè)一維高斯分布函數(shù),用來(lái)生成高斯濾波系數(shù)。理論上高斯數(shù)據(jù)的長(zhǎng)度應(yīng)該是無(wú)限長(zhǎng)的,但是實(shí)際的高斯數(shù)據(jù)只能是有限長(zhǎng)的數(shù)據(jù)長(zhǎng)度。根據(jù)概率論的知識(shí),選取[-3σ,3σ]之間的數(shù)據(jù)長(zhǎng)度;3、計(jì)算方向?qū)?shù),利用原圖像計(jì)算圖像像素的方向?qū)?shù);4、計(jì)算梯度,利用方向?qū)?shù)的計(jì)算結(jié)果,采用二階范數(shù)計(jì)算梯度;5、抑制局部像素非最大梯度點(diǎn),這個(gè)函數(shù)是Canny算子的重要部分,Canny算子認(rèn)為梯度圖中只有某些點(diǎn)才有可能成為邊界點(diǎn)或者是邊界的起點(diǎn);6、根據(jù)梯度計(jì)算及經(jīng)過(guò)非最大抑制后的結(jié)果設(shè)定閾值,這個(gè)函數(shù)也是Canny算子的重要部分,閾值的設(shè)定直接涉及到哪些像素點(diǎn)可能成為邊界點(diǎn)。參數(shù)設(shè)置的值越高,檢測(cè)出來(lái)的邊緣點(diǎn)數(shù)目會(huì)越少;7、利用函數(shù)尋找邊界的起始點(diǎn);8、根據(jù)以上步驟的執(zhí)行結(jié)果,從一個(gè)像素點(diǎn)開始進(jìn)行搜索,搜索以該像素點(diǎn)為邊界起點(diǎn)的一條邊界的所有邊界點(diǎn),函數(shù)采用了遞歸算法。3.6邊緣提取實(shí)驗(yàn)結(jié)果及分析邊緣提取算法分析相對(duì)來(lái)說(shuō),用Sobel算子進(jìn)行邊緣檢測(cè)得到的圖像效果較好,因?yàn)镾obel算子提供了精確的邊緣方向估計(jì)。但是,應(yīng)用Sobel算子得到的邊緣圖像存在著不連續(xù)、定位精度低、對(duì)噪聲敏感、以及邊緣是多像素點(diǎn)的問(wèn)題。而Canny算子提取的邊緣很好的克服了以上的缺點(diǎn),不僅能很好的檢測(cè)邊緣,而且能抑制點(diǎn)狀噪聲。圖像形狀識(shí)別結(jié)果圖3-3原始圖像的邊緣提取結(jié)果采用canny邊緣提取算法隊(duì)員圖像進(jìn)行邊緣提取。所用基本程序代碼如下:formatlongi=imread<'t2.bmp'>;imshow<i>;a=rgb2gray<i>;bw=edge<a,'canny'>;imshow<bw>;圖3-4基于上圖邊緣提取及識(shí)別分類的結(jié)果基于canny算法的邊緣提取結(jié)果圖,根據(jù)其圓形度及矩進(jìn)行分類的結(jié)果,原圖像的各種特征都不變,只是多出了形狀的標(biāo)注。識(shí)別程序所用的核心程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;dolech=a-b;vuong=c/<4*b^2>chunhat=c/<4*b*<a^2-b^2>^0.5>;tamgiacdeu=<c*3^0.5>/<<a+b>^2>;elip=c/<a*b*pi>;thoi=<c*<a^2-b^2>^0.5>/<2*a^2*b>ifdolech<10text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'圓'>elseif<vuong<1.05>&<vuong>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'正方形'>elseif<elip<1.05>&<elip>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'橢圓'>elseif<thoi<1.05>&<thoi>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'菱形'>elseif<<chunhat<1.05>&<chunhat>0.95>>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'長(zhǎng)方形'>elseif<tamgiacdeu<1.05>&<tamgiacdeu>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'三角形'>其中a為圖像中心到邊緣的最大距離,b為圖像中心到邊緣的最小距離。如果圖像為標(biāo)準(zhǔn)的話,各公式算出的結(jié)果應(yīng)均為1。本程序允許有5%的誤差,所以判斷參數(shù)的范圍都是在0.95到1.05之間。程序中各個(gè)公式都是根據(jù)各種形狀的面積計(jì)算的特征來(lái)確定的。如橢圓的面積為。程序先把圖像的邊緣提取出來(lái),然后分別計(jì)算這幾個(gè)參數(shù),然后和預(yù)設(shè)的值逐個(gè)進(jìn)行比較,直到判斷出圖像是什么形狀。圖3-5基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)橢圓進(jìn)行邊緣提取,并根據(jù)求出的圓形度判斷出該圖形為橢圓。判斷程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;elip=c/<a*b*pi>;elseif<elip<1.05>&<elip>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'橢圓'>圖3-6基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)三角形進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為三角形。判斷程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;tamgiacdeu=<c*3^0.5>/<<a+b>^2>;elseif<tamgiacdeu<1.05>&<tamgiacdeu>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'三角形'>圖3-7基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)圓進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為圓。判斷程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;dolech=a-b;ifdolech<10text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'圓'>..圖3-8基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)菱形進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為菱形。判斷程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;thoi=<c*<a^2-b^2>^0.5>/<2*a^2*b>elseif<thoi<1.05>&<thoi>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'菱形'>圖3-9基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)正方形進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為正方形。判斷程序代碼如下:b=min<khoangcach{k}>;c=dt<k>.Area;vuong=c/<4*b^2>elseif<vuong<1.05>&<vuong>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'正方形'>圖3-10基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)長(zhǎng)方形進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為長(zhǎng)方形。判斷程序代碼如下:a=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;chunhat=c/<4*b*<a^2-b^2>^0.5>;elseif<<chunhat<1.05>&<chunhat>0.95>>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'長(zhǎng)方形'>圖3-11基于sobel算法邊緣提取及識(shí)別分類的結(jié)果對(duì)圖中各進(jìn)行邊緣提取,并根據(jù)求出的圓形度和矩分別判斷出各為什么圖形并輸出顯示。..結(jié)論圖像的形狀特征相對(duì)于其它特征是比較難以精確提取,同時(shí)也是難以匹配的,尋找符合人眼感知特性的形狀特征不是一個(gè)簡(jiǎn)單的工作。這是因?yàn)橐环矫鎴D像的形狀難以用簡(jiǎn)單的參數(shù)來(lái)描述;另一方面,當(dāng)前的計(jì)算機(jī)處理技術(shù)對(duì)形狀提取的參數(shù)難以準(zhǔn)確處理。另外,圖像的形狀特征往往會(huì)因圖像的尺寸、圖像的旋轉(zhuǎn)及平移而發(fā)生變化,因而這些因素都制約了基于形狀特征的圖像檢索系統(tǒng)的發(fā)展。形狀特征的表達(dá)必須以對(duì)圖像中物體或區(qū)域的分割為基礎(chǔ),這是計(jì)算機(jī)視覺的困難問(wèn)題之一,至今沒有很好的解決。因?yàn)槟壳暗募夹g(shù)無(wú)法做到準(zhǔn)確而穩(wěn)健的自動(dòng)圖像分割。本次論文根據(jù)邊緣提取的算法,把各種圖像的邊緣提取出來(lái),再根據(jù)各種形狀的圖像的圓形度,矩形度來(lái)判斷出圖中的圖形是正方形還是三角形還是圓或是橢圓與菱形。從仿真結(jié)果來(lái)看,本次的程序基本達(dá)到題目的要求。但本次仿真主要是根據(jù)圖像的形狀進(jìn)行識(shí)別,在以后可以根據(jù)圖像的紋理和色彩來(lái)對(duì)圖像進(jìn)行進(jìn)一步的分類識(shí)別,可以把三者結(jié)合起來(lái),這對(duì)提高圖像識(shí)別的準(zhǔn)確性會(huì)有很大的提升。這可以運(yùn)用在圖像自動(dòng)識(shí)別分類上,會(huì)在圖像智能檢索領(lǐng)域有很大用處。..參考文獻(xiàn)[1]徐明遠(yuǎn),劉增力,《MATLAB仿真在信號(hào)處理中的應(yīng)用》,XX電子科技大學(xué)出版社,2007.11.[2]于萬(wàn)波,《基于MATLAB的圖像處理》,清華大學(xué)出版社,2008.3.[3]飛思科技產(chǎn)品研發(fā)中心,《MATLAB7.0輔助圖像處理》,電子工業(yè)出版社,2003.1.[4]章毓晉,《圖像處理與分析》,北京清華大學(xué)出版社2004.7.[5]張志涌,《精通MATLAB6.5》,北京北航電子版,2002.12.[6]孫家廣,楊長(zhǎng)貴,《計(jì)算機(jī)圖形學(xué)》,清華大學(xué)出版社,1995.5.[7]閆敬文,《數(shù)字圖像處理MATLAB版》,國(guó)防工業(yè)出版社,2007.2....附錄:論文中所用程序:邊緣提取及形狀識(shí)別分類的主程序functionvarargout=chuongtrinhnhandang<varargin>%CHUONGTRINHNHANDANGM-fileforchuongtrinhnhandang.fig%CHUONGTRINHNHANDANG,byitself,createsanewCHUONGTRINHNHANDANGorraisestheexisting%singleton*.%%H=CHUONGTRINHNHANDANGreturnsthehandletoanewCHUONGTRINHNHANDANGorthehandleto%theexistingsingleton*.%%CHUONGTRINHNHANDANG<'CALLBACK',hObject,eventData,handles,...>callsthelocal%functionnamedCALLBACKinCHUONGTRINHNHANDANG.Mwiththegiveninputarguments.%%CHUONGTRINHNHANDANG<'Property','Value',...>createsanewCHUONGTRINHNHANDANGorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforechuongtrinhnhandang_OpeningFunctiongetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtochuongtrinhnhandang_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone%instancetorun<singleton>".%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpchuongtrinhnhandang%LastModifiedbyGUIDEv2.516-May-200822:19:38%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct<'gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',chuongtrinhnhandang_OpeningFcn,...'gui_OutputFcn',chuongtrinhnhandang_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]>;ifnargin&&ischar<varargin{1}>gui_State.gui_Callback=str2func<varargin{1}>;endifnargout[varargout{1:nargout}]=gui_mainfcn<gui_State,varargin{:}>;elsegui_mainfcn<gui_State,varargin{:}>;end%Endinitializationcode-DONOTEDIT%Executesjustbeforechuongtrinhnhandangismadevisible.functionchuongtrinhnhandang_OpeningFcn<hObject,eventdata,handles,varargin>%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>%varargincommandlineargumentstochuongtrinhnhandang<seeVARARGIN>%Choosedefaultcommandlineoutputforchuongtrinhnhandanghandles.output=hObject;%Updatehandlesstructureguidata<hObject,handles>;%UIWAITmakeschuongtrinhnhandangwaitforuserresponse<seeUIRESUME>%uiwait<handles.figure1>;%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=chuongtrinhnhandang_OutputFcn<hObject,eventdata,handles>%varargoutcellarrayforreturningoutputargs<seeVARARGOUT>;%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%ExecutesonbuttonpressinLoad_Image.functionLoad_Image_Callback<hObject,eventdata,handles>[filename,pathname]=uigetfile<{'*.bmp';'*.jpg';'*.gif';'*.*'},'PickanImageFile'>;S=imread<[pathname,filename]>;axes<handles.axes1>;imshow<S>;handles.S=S;guidata<hObject,handles>;%hObjecthandletoLoad_Image<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>%ExecutesonbuttonpressinEdge_Detection.functionEdge_Detection_Callback<hObject,eventdata,handles>b=get<handles.edit1,'String'>;S=handles.S;axes<handles.axes2>;a=rgb2gray<S>;bw=edge<a,b>;bw=bwareaopen<bw,30>;se=strel<'disk',2>;bw=imclose<bw,se>;bw=imfill<bw,'holes'>;imshow<bw>;handles.bw=bw;%hObjecthandletoEdge_Detection<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>%ExecutesonbuttonpressinRecognize.functionRecognize_Callback<hObject,eventdata,handles>globali;b=get<handles.edit1,'String'>;S=handles.S;axes<handles.axes3>;formatlong;a=rgb2gray<S>;bw=edge<a,b>;bw=bwareaopen<bw,30>;se=strel<'disk',2>;bw=imclose<bw,se>;bw=imfill<bw,'holes'>;L=bwlabel<bw>;s=regionprops<L,'centroid'>;dt=regionprops<L,'area'>;dim=size<s>;BW_filled=imfill<bw,'holes'>;boundaries=bwboundaries<BW_filled>;imshow<S>;holdon;fork=1:dim<1>b=boundaries{k};dim=size<b>;fori=1:dim<1>khoangcach{k}<1,i>=sqrt<<b<i,2>-s<k>.Centroid<1>>^2+<b<i,1>-s<k>.Centroid<2>>^2>;enda=max<khoangcach{k}>;b=min<khoangcach{k}>;c=dt<k>.Area;dolech=a-b;vuong=c/<4*b^2>;chunhat=c/<4*b*<a^2-b^2>^0.5>;tamgiacdeu=<c*3^0.5>/<<a+b>^2>;elip=c/<a*b*pi>;thoi=<c*<a^2-b^2>^0.5>/<2*a^2*b>;ifdolech<10text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'圓'>;elseif<vuong<1.05>&<vuong>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'正方形'>;elseif<elip<1.05>&<elip>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'橢圓'>;elseif<thoi<1.05>&<thoi>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'菱形'>;elseif<<chunhat<1.05>&<chunhat>0.95>>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'長(zhǎng)方形'>;elseif<tamgiacdeu<1.05>&<tamgiacdeu>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'三角形'>;endend%hObjecthandletoRecognize<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>functionedit1_Callback<hObject,eventdata,handles>%hObj
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 被貓抓傷免責(zé)協(xié)議書
- 酒吧部門承包協(xié)議書
- 車輛內(nèi)部通信協(xié)議書
- 項(xiàng)目分包免責(zé)協(xié)議書
- 車間員工承包協(xié)議書
- 出租房裝修合同協(xié)議書
- 運(yùn)營(yíng)中心授權(quán)協(xié)議書
- 防疫卡口接車協(xié)議書
- 遼寧畢業(yè)三方協(xié)議書
- 車輛糾紛解決協(xié)議書
- 2024年10月自考00152組織行為學(xué)試題及答案
- 承包荒地治沙合同范例
- 心血管內(nèi)科降低患者橈動(dòng)脈止血器壓迫不適發(fā)生率品管圈PDCA成果匯報(bào)書
- 第11課 近代職業(yè)教育的興起和發(fā)展
- 軟著設(shè)計(jì)說(shuō)明書
- 第二單元《踐行職業(yè)道德》測(cè)試卷-高二思想政治課《職業(yè)道德與法治》附答案
- 三年合同到期不續(xù)簽勞動(dòng)仲裁申請(qǐng)書
- 申請(qǐng)銀行減免利息的申請(qǐng)書
- 員工培訓(xùn)與開發(fā)
- 維修協(xié)議勞務(wù)合同
- 《長(zhǎng)大以后做什么》繪本省公開課獲獎(jiǎng)?wù)n件說(shuō)課比賽一等獎(jiǎng)?wù)n件
評(píng)論
0/150
提交評(píng)論