人工智能課程論文_第1頁
人工智能課程論文_第2頁
人工智能課程論文_第3頁
人工智能課程論文_第4頁
人工智能課程論文_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

..摘要數(shù)字圖像處理是一門新興技術(shù),隨著計算機硬件的發(fā)展,數(shù)字圖像的實時處理已經(jīng)成為可能,由于數(shù)字圖像處理的各種算法的出現(xiàn),使得其處理速度越來越快,能更好的為人們服務。數(shù)字圖像處理是一種通過計算機采用一定的算法對圖形圖像進行處理的技術(shù)。數(shù)字圖像處理技術(shù)已經(jīng)在各個領(lǐng)域上都有了比較廣泛的應用。圖像處理的信息量很大,對處理速度的要求也比較高。MATLAB強大的運算和圖形展示功能,使圖像處理變得更加的簡單和直觀。本文介紹了MATLAB語言的特點,基于MATLAB的數(shù)字圖像處理環(huán)境,介紹了如何利用MATLAB及其圖像處理工具箱進行數(shù)字圖像形狀的邊緣提取和識別分類。論文主要論述了利用MATLAB實現(xiàn)對圖像中的三角形,正方形,圓,橢圓,菱形的邊緣提取和自動識別分類。關(guān)鍵詞:MATLAB;數(shù)字圖像處理;圖像形狀;圖像分類..目錄MACROBUTTONInsertCrossReference134421引言2257591.1課題研究目的及意義279471.2國內(nèi)外研究現(xiàn)狀2267382數(shù)字圖像形狀及預處理3223792.1概述3187922.2數(shù)字圖像的預處理454802.2.1數(shù)字圖像4285262.2.2采樣6316062.2.3量化6195852.2.4采樣、量化和圖像細節(jié)的關(guān)系7285882.3幾種典型的形狀特征描述方法787623形狀特征及提取分類8229293.1矩形度974133.2圓形度9213153.3矩10145563.4不變矩1042793.5基于不變矩的形狀特征提取1118591特征提取步驟115677邊緣提取算子的確定1129347邊緣提取常用算子1124330Canny算子12248123.6邊緣提取實驗結(jié)果及分析14247553.6.1邊緣提取算法分析14269圖像形狀識別結(jié)果1428963結(jié)論2423778參考文獻 255970附錄:261引言本章簡略介紹課題的研究目的及意義,該課題國內(nèi)外研究現(xiàn)狀以及論文內(nèi)容安排等。1.1課題研究目的及意義隨著信息化多媒體時代的到來及世界范圍內(nèi)Internet的風行,人們在工作和生活中越來越多的接觸到大量的各種各樣的圖像信息。圖像作為一種重要的信息載體,具有直觀、內(nèi)容豐富、無語言限制和便于國際交流等特點,是組成多媒體信息的重要內(nèi)容。圖像處理技術(shù)已經(jīng)廣泛深入的應用于各行各業(yè)中。設計制造、醫(yī)療衛(wèi)生、藝術(shù)文化、建筑工程、地理、公安等領(lǐng)域相繼建立了各種圖像庫。在浩如煙海的信息中,尋找感興趣的資料是極其耗時的,人們對信息檢索和系統(tǒng)的依賴日益加強。圖像的特征提取是基于內(nèi)容的圖像檢索系統(tǒng)部分的核心內(nèi)容。本文研究的重點就是如何從靜態(tài)圖像中提取出圖像的形狀特征。典型框架是:對圖像的形狀進行人工標注分類。這種方法當圖像數(shù)量不大時,不失為一種簡單易行的方法。然而,當圖像數(shù)據(jù)量非常龐大時,基于文本的圖像檢索存在著諸多困難,此時圖像形狀的自動識別就派上用場了。1.2國內(nèi)外研究現(xiàn)狀因為圖像特征提取及識別具有很強的實用性,國內(nèi)外測繪界、計算機視覺、模式識別與人工智能等領(lǐng)域都對其進行了深入研究。國外如美國的Mckeown實驗室、英國的VGG實驗室、德國的波恩大學、奧地利的格拉茨大學等,國內(nèi)如清華大學、北京大學、中科院等,在這方面都做了許多工作,取得了很大的成績,有的成果己具備初步的實用價值。在上述研究的基礎(chǔ)上,近年來國內(nèi)外推出了一系列圖形圖像軟件,它們具備了較強的圖像特征提取和識別的功能。國外流行的圖像特征提取及識別的軟件,例如:德國softelec公司的VPStudio,日本日立公司的Imageseries,美國GTX公司的GTXRasterseries,挪威Rasterex公司的RxAutoImagePro2000等。國內(nèi)圖像特征提取及識別軟件,例如:東大阿爾派的SEAS系統(tǒng),華中理工大學的EDIS工程圖信息系統(tǒng),西工大CAD中心的NPPU-EDRS工程圖智能輸入與識別系統(tǒng),清華紫光的TH-DAIMS圖紙?zhí)幚硐到y(tǒng)等。從上面特征提取和識別的研究現(xiàn)狀來看,由于特征提取及識別問題本身的多樣性和復雜性,現(xiàn)有的理論和方法離實際要求還有相當距離,一些根本的問題還有待進一步深入研究?,F(xiàn)有的特征提取和識別算法基本上還是處于實驗階段,其實用性、通用性、準確性等方面離大規(guī)模實際應用的要求還有一定差距。所有這些應用都是和問題的性質(zhì)密不可分的,至今還沒有發(fā)展成統(tǒng)一、有效的可應用于所有模式識別的理論。雖然各特征提取與識別算法的處理能力、特征提取能力、特征識別能力的效果方面各有所長,但是仍然在算法的性能、通用性、自動化程度、準確率方面存在很多不足。因此,為了彌補這些不足,對于圖像特征提取及識別技術(shù)的研究需要更多的關(guān)注,付出更多的努力。2數(shù)字圖像形狀及預處理2.1概述形狀特征是對圖像中邊界清晰的目標的最好表達方式。是圖像目標的一種顯著特征,在實際中通常利用形狀特征或主要邊界對圖像進行檢索和分類。圖像分類〔識別屬于模式識別的范疇,其主要內(nèi)容是圖像經(jīng)過某些預處理〔增強、復原、壓縮后,進行圖像分割和特征提取,從而進行判決分類。圖像分類常采用經(jīng)典的模式識別方法,有統(tǒng)計模式分類和句法〔結(jié)構(gòu)模式分類,近年來新發(fā)展起來的模糊模式識別和人工神經(jīng)網(wǎng)絡模式分類在圖像識別中也越來越受到重視。Matlab是非常好用的圖像處理軟件。Matlab是由美國MathWorks公司開發(fā)的集數(shù)值計算、符號計算和圖形可視化三大基本功能于一體的,功能強大、操作簡單的語言。是國際公認的優(yōu)秀數(shù)學應用軟件之一。Matlab的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學,工程中常用的形式十分相似,故用Matlab來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多。Matlab包括擁有數(shù)百個內(nèi)部函數(shù)的主包和三十幾種工具包<Toolbox>。工具包又可以分為功能性工具包和學科工具包。功能工具包用來擴充Matlab的符號計算,可視化建模仿真,文字處理及實時控制等功能。學科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。開放性使Matlab廣受用戶歡迎。除內(nèi)部函數(shù)外,所有Matlab主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包。本文正是要使用Matlab從"輪廓"這個局部中找出特征來判斷"形狀"這個總體。2.2數(shù)字圖像的預處理2.2.1數(shù)字圖像所謂數(shù)字圖像就是把傳統(tǒng)圖像的畫面分割成如圖2-1所示的被成為像素〔pictureelement,簡稱pixel。有時候也用pel這一簡寫詞的小的離散點,各像素的灰度值也是用離散值即整數(shù)值來表示的。數(shù)字圖像〔digitalimagine和傳統(tǒng)的圖像即模擬圖像<picture>是有差別的。圖2-1數(shù)字圖像常見的數(shù)字圖像格式有以下幾種:〔1PCX〔WindowsPaintbrush格式。可處理1,4,8,16,24位等圖像數(shù)據(jù)。文件內(nèi)容包括:文件頭〔128字節(jié),圖像數(shù)據(jù)、擴展顏色映射表數(shù)據(jù)?!?BMP〔WindowsBitmap格式。有1,4,8,24位非壓縮圖像,8位RLE〔Run-lengthEncoded圖像。文件內(nèi)容包括:文件頭〔一個BITMAPFILEHEADER數(shù)據(jù)結(jié)構(gòu),位圖信息數(shù)據(jù)塊〔位圖信息頭BITMAPINFOHEADER和一個顏色表和圖像數(shù)據(jù)。〔3HDF〔HierarchicalDataFormat格式。有8位,24位光柵數(shù)據(jù)集?!?JPEG<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ù)字圖像,需要對傳統(tǒng)的模擬圖像進行采樣與量化兩種操作〔二者統(tǒng)稱為數(shù)字化。數(shù)字圖像處理<DigitalImageProcessing>是通過計算機對圖像進行去除噪聲、增強、復原、分割、提取特征等處理的方法和技術(shù)。數(shù)字圖像處理的產(chǎn)生和迅速發(fā)展主要受三個因素的影響:一是計算機的發(fā)展;二是數(shù)學的發(fā)展<特別是離散數(shù)學理論的創(chuàng)立和完善>;三是廣泛的農(nóng)牧業(yè)、林業(yè)、環(huán)境、軍事、工業(yè)和醫(yī)學等方面的應用需求的增長。對數(shù)字圖像經(jīng)行處理要用到Matlab程序,它在數(shù)字圖像方面的用處巨大。圖像處理工具包是由一系列支持圖像處理操作的函數(shù)組成的。所支持的圖像處理操作有:圖像的幾何操作、鄰域和區(qū)域操作、圖像變換、圖像恢復與增強、線性濾波和濾波器設計、變換<DCT變換等>、圖像分析和統(tǒng)計、二值圖像操作等。下面就Matlab在圖像處理中各方面的應用分別進行介紹?!?圖像文件格式的讀寫和顯示。Matlab提供了圖像文件讀入函數(shù)imread<>,用來讀取如:bmp、tif、tiffpcx、jpg、gpeg、hdf、xwd等格式圖像文;圖像寫出函數(shù)imwrite<>,還有圖像顯示函數(shù)image<>、imshow<>等等?!?圖像處理的基本運算。Matlab提供了圖像的和、差等線性運算,以及卷積、相關(guān)、濾波等非線性算。例如,conv2<I,J>實現(xiàn)了I,J兩幅圖像的卷積。〔3圖像變換。Matlab提供了一維和二維離散傅立葉變換<DFT>、快速傅立葉變換<FFT>、離散余弦變換<DCT>及其反變換函數(shù),以及連續(xù)小波變換<CWT>、離散小波變換<DWT>及其反變換。〔4圖像的分析和增強。針對圖像的統(tǒng)計計算Matlab提供了校正、直方圖均衡、中值濾波、對比度調(diào)整、自適應濾波等對圖像進行的處理?!?圖像的數(shù)學形態(tài)學處理。針對二值圖像,Matlab提供了數(shù)學形態(tài)學運算函數(shù);腐蝕<Erode>、膨脹<Dilate>算子,以及在此基礎(chǔ)上的開<Open>、閉<Close>算子、厚化<Thicken>、薄化<Thin>算子等豐富的數(shù)學形態(tài)學運算。以上所提到的Matlab在圖像中的應用都是由相應的Matlab函數(shù)來實現(xiàn)的,使用時,只需按照函數(shù)的調(diào)用語法正確輸入?yún)?shù)即可。具體的用法可參考Matlab豐富的幫助文檔。圖像邊緣對圖像識別和計算機分析十分有用,在Matlab中,函數(shù)edge<>用于灰度圖像邊緣的提取,它支持六種不同的邊緣提取方法,即Sobel方法、Prewitt方法、Robert方法,Laplacian2Gaussian方法、過零點方法和Canny方法。基本的圖像類型分為以下幾種:<1>索引圖像索引圖像包括圖像矩陣與顏色圖數(shù)組,其中,顏色圖是按圖像中顏色值進行排序后的數(shù)組。對于每個像素,圖像矩陣包含一個值,這個值就是顏色圖中的索引。顏色圖為m*3雙精度值矩陣,各行分別指定紅綠藍〔RGB單色值。Colormap=[R,G,B],R,G,B為值域為[0,1]的實數(shù)值。圖像矩陣與顏色圖的關(guān)系依賴于圖像矩陣是雙精度型還是uint8〔無符號8位整型類型。如果圖像矩陣為雙精度類型,第一點的值對應于顏色圖的第一行,第二點對應于顏色圖的第二行,依次類推。如果圖像矩陣是uint8,有一個偏移量,第0點值對應于顏色圖的第一行,第一點對應于第二行,依次類推;uint8長用于圖形文件格式,它支持256色。〔2灰度圖像在MATLAB中,灰度圖像是保存在一個矩陣中的,矩陣中的每一個元素代表一個像素點。矩陣可以是雙精度類型,其值域為[0,1];也可以為uint8類型,其數(shù)據(jù)范圍為[0,255]。矩陣的每個元素代表不同的亮度或灰度級?!?二進制圖像二進制圖像中,每個點為兩離散值中的一個,這兩個值代表開或關(guān)。二進制圖像保存在一個由二維的由0〔關(guān)和1〔開組成的矩陣中。從另一個角度講,二進制圖像可以看成為一個僅包括黑與白的灰度圖像,也可以看作只有兩種顏色的索引圖像。二進制圖像可以保存為雙精度或uint8類型的雙精度數(shù)組,顯然使用uint8類型更節(jié)省空間。在圖像處理工具箱中,任何一個返回二進制圖像的函數(shù)都是以uint8類型邏輯數(shù)組來返回的。〔4RGB圖像與索引圖像一樣,RGB圖像分別用紅,綠,藍三個亮度值為一組,代表每個像素的顏色。與索引圖像不同的是,這些亮度值直接存在圖像數(shù)組中,而不是存放在顏色圖中。圖像數(shù)組為M*N*3,M,N表示圖像像素的行列數(shù)。2.2.2采樣采樣〔sampling就是把在時間上和空間上連續(xù)的圖像變成離散點〔采樣點,即像素的集合的一種操作。圖像基本上是在二維平面上連續(xù)分布的信息形式要把它輸入到計算機中,首先要把二維信號變成一維信號,因此要進行掃描〔scanning。最常用的掃描方法是在二維平面上按一定間隔順序地從上方順序地沿水平方向的直線〔掃描線掃描,從而取出濃淡值〔灰度值的線掃描〔Laster掃描。對于由此得到的一維信號,通過求出每一特定間隔的值,可以得到離散的信號。對于運動圖像除進行水平,垂直兩個方向的掃描以外,還有進行時間軸上的掃描。通過采樣,如設橫向的像素數(shù)為M,縱向的像素數(shù)為N,則畫面的大小可以表示為"M*N"個像素。量化經(jīng)過采樣,圖像被分解成在時間上和空間上離散分布的像素,但是像素的值〔灰度值還是連續(xù)值。像素的值,是指白色-灰色-黑色的濃淡值,有時候也指光的強度〔亮度值或灰度值。把這些連續(xù)的濃淡值或灰度值變?yōu)殡x散的值〔整數(shù)值的操作就是量化。如果把這些連續(xù)變化的值〔灰度值量化為8bit,則灰度值被分成0-255的256個級別,分別對應于各個灰度值的濃淡程度,叫做灰度等級或灰度標度。在0-255的值對應于白-黑的時候,有以0為白,255為黑的方法,也有以0為黑,255為白的方法,這取決于圖像的輸入方法以及用什么樣的觀點對圖像進行處理等,這是在編程時應特別注意的問題。但在只有黑白二值的二值圖像的情形,一般設0為白,1為黑。對連續(xù)的灰度值賦予量化級的,即灰度值方法有:均勻量化〔uniformquantization,線性量化〔linerquantization,對數(shù)量化,MAX量化,錐形量化〔taperedquantization等。采樣、量化和圖像細節(jié)的關(guān)系上面的數(shù)字化過程,需要確定數(shù)值N和灰度級的級數(shù)K。在數(shù)字圖像處理中,一般都取成2的整數(shù)冪,即:<2-1><2-2>一幅數(shù)字圖像在計算機中所占的二進制存儲位數(shù)b為<2-3>例如,灰度級為256級<m=8>的512×512的一幅數(shù)字圖像,需要大約210萬個存儲位。隨著N和m的增加,計算機所需要的存儲量也隨之迅速增加。由于數(shù)字圖像是連續(xù)圖像的近似,從圖像數(shù)字化的過程可以看到。這種近似的程度主要取決于采樣樣本的大小和數(shù)量<N值>以及量化的級數(shù)K<或m值>。N和K的值越大,圖像越清晰。2.3幾種典型的形狀特征描述方法對形狀分析和分類的方法技術(shù)有許多。通常來說,形狀特征表示方法可以分為兩類:基于邊界的和基于區(qū)域的。前者使用形狀的外部邊界,而后者使用整個區(qū)域。這兩類形狀特征的最典型的方法分別是傅立葉描述符、變形模板匹配和形狀不變矩。此外輪廓匹配方法還有幾何參數(shù)法、邊界方向直方圖法、小波重要系數(shù)法和小波輪廓表示法等。幾種典型的形狀特征描述方法:〔1邊界特征法該方法通過對邊界特征的描述來獲取圖像的形狀參數(shù)。其中Hough變換檢測平行直線方法和邊界方向直方圖方法是經(jīng)典方法。Hough變換是利用圖像全局特性而將邊緣像素連接起來組成區(qū)域封閉邊界的一種方法,其基本思想是點—線的對偶性;邊界方向直方圖法首先微分圖像求得圖像邊緣,然后,做出關(guān)于邊緣大小和方向的直方圖,通常的方法是構(gòu)造圖像灰度梯度方向矩陣?!?傅里葉形狀描述符法傅里葉形狀描述符<Fouriershapedescriptors>基本思想是用物體邊界的傅里葉變換作為形狀描述,利用區(qū)域邊界的封閉性和周期性,將二維問題轉(zhuǎn)化為一維問題。由邊界點導出三種形狀表達,分別是曲率函數(shù)、質(zhì)心距離、復坐標函數(shù)?!?幾何參數(shù)法形狀的表達和匹配采用更為簡單的區(qū)域特征描述方法,例如采用有關(guān)形狀定量測度〔如矩、面積、周長等的形狀參數(shù)法〔shapefactor。在QBIC系統(tǒng)中,便是利用圓度、偏心率、主軸方向和代數(shù)不變矩等幾何參數(shù),進行基于形狀特征的圖像檢索。需要說明的是,形狀參數(shù)的提取,必須以圖像處理及圖像分割為前提,參數(shù)的準確性必然受到分割效果的影響,對分割效果很差的圖像,形狀參數(shù)甚至無法提取。〔4形狀不變矩法利用目標所占區(qū)域的矩作為形狀描述參數(shù)來進行分類。〔5其它方法近年來,在形狀的表示和匹配方面的工作還包括有限元法〔FiniteElementMethod或FEM、旋轉(zhuǎn)函數(shù)〔TurningFunction和小波描述符〔WaveletDescriptor等方法。3形狀特征及提取分類本文主要采用的是幾何參數(shù)法來判斷給出的的圖像是什么形狀。對于圖像分類問題,特征提取的好壞是決定分類性能的關(guān)鍵因素。提取物體的形狀特征前,首先要對圖像進行邊緣提取,以獲得物體的輪廓邊界,然后需要把輪廓邊界區(qū)域的特征抽取出來。在這些特征里面,有一部分可以用數(shù)字量值來描述,但更多的特征是一些沒有明顯特征的幾何圖形。為了便于圖像的匹配,需要對這些幾何圖形進行進一步的描述。圖像中物體的性質(zhì)不能因為圖像的平移、旋轉(zhuǎn)、比例尺度的改變而發(fā)生變化。所以,在進行形狀描述時,選擇的描述符應具有平移不變性、旋轉(zhuǎn)不變性、尺度不變性等特點。不但如此,選擇的描述符還應該能夠刻畫形狀的本質(zhì)特點,使得該描述符具有良好的可分辨能力。圖像特征選擇的原則特征提取是對模式所包含的輸入信息進行處理和分析,將不易受隨機因素干擾的信息作為該模式的特征提取出來。特征提取過程是去除冗余信息的過程,具有提高識別精度,減少運算量和提高運算速度的作用。3.1矩形度用目標圖像的面積和包圍該圖像的最小的矩形面積之比作為目標矩形度的一種度量參數(shù),記為<3-1>其中表示目標圖像的面積,表示包圍該圖像的最小矩形的面積。R的大小能反映目標物體和矩形的接近程度。矩形度的值限定在0到1之間。3.2圓形度對于面積一定的圖形,一半周長越小,圓形表面越光滑,越接近圓;反之,周長越大,則圓形表面褶皺越多,形狀也就越復雜?;谶@個原因,一般采用圓形度來衡量圖形偏向圓形狀的程度。形狀的圓形度是指目標物體的周長平方和其面積之比,記為<3-2>其中:P表示圖形的周長,A表示周長所圍的面積。理論上講,圓的圓形度為1.0,正方形的圓形度為=0.79,正三角形的圓形度為=0.60.另外,圓形度還有兩個計算公式:<3-3>其中,A為區(qū)域面積,為區(qū)域最小外接圓面積。該指標同樣認為圓形區(qū)域最緊湊,其緊湊度為1。在計算中采用最小外接圓面積作為衡量區(qū)域形狀的標準。<3-4>其中,A為區(qū)域面積,L為區(qū)域最長軸長度。該指標噎人為圓形為標準形狀,但它只考慮了最長軸的長度,只能概略地反映連通區(qū)域的形狀。3.3矩當物體是一些簡單的幾何圖像,用以上的形狀描述參數(shù)物體比較合適。如果圖像的邊界特征復雜,用以上的參數(shù)來描述物體的形狀比較困難。對于復雜的物體,我們可以通過矩和輪廓描述符來描述復雜物體。矩特征是建立在對一個區(qū)域內(nèi)部灰度值分布的統(tǒng)計分析基礎(chǔ)上的,是一種統(tǒng)計平均的描述,可以從全局觀點描述對象的整體特征。矩是一種線性特征,矩特征對于圖像的旋轉(zhuǎn)、比例尺度、平移具有不變性,因此可以用來描述圖像中區(qū)域的形狀特性。3.4不變矩二維矩不變量理論是在1962年由美籍華人學者胡貴明提出的,并將矩用于形狀識別。對于連續(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>。將上述矩特征量進行位置歸一化,得到圖像f<x,y>的中心矩:對于數(shù)字圖像f<x,y>,用雙重求和的形式代替上述積分,點<x,y>處的<p+q>階矩定義為:<3-6>由此可見該中心幾何矩也符合尺度不變性的特性。3.5基于不變矩的形狀特征提取特征提取步驟連續(xù)外輪廓邊緣圖像圖像外輪廓圖像庫連續(xù)外輪廓邊緣圖像圖像外輪廓圖像庫特征庫不變矩特征目標區(qū)域連續(xù)、單值、二值化輪廓特征庫不變矩特征目標區(qū)域連續(xù)、單值、二值化輪廓圖3-1形狀特征提取系統(tǒng)流程1.確定用Canny算子對圖像進行邊緣提取,得到邊緣圖像;2.對邊緣圖像進行輪廓跟蹤,得到外輪廓圖像;3.對外輪廓圖像進行預處理:首先平滑輪廓線得到連續(xù)的輪廓線,采用自適應二值化的方法二值化該輪廓線,再細化輪廓線。最后得到清晰的連續(xù)平滑、單像素、二值化的外輪廓圖像;4.進行種子填充,得到圖像的外輪廓線所包圍的目標區(qū)域;5.計算目標區(qū)域的七個不變矩,構(gòu)成這幅圖像的形狀特征向量;6.對形狀特征向量進行內(nèi)部歸一化處理,將特征值存入圖像特征庫。邊緣提取算子的確定圖像邊緣蘊含了豐富的信息,是抽取圖像形狀特征的重要屬性。因此,邊緣算子必須能做到清晰,準確。邊緣提取常用算子邊緣提取的主要計算方法是基于方向?qū)?shù)掩模求卷積的方法,得到橫向縱向的梯度圖像和模值圖像,然后根據(jù)梯度方向來進行模的極大值提取,獲得需要的物體邊緣。它是對目標輪廓線或邊界的檢出。常用的有Roberts算子、Prewitt算子、Sobel算子和Laplacian算子。在實際應用中,因為一些實際的因素,如光照、隨機噪聲的影響,往往會使圖像模糊或出現(xiàn)孤立的邊緣點,使邊緣檢測遇到很多難題。前面的幾種方法在不同程度上存在著對噪聲敏感的缺點。我們需要精確的檢測出圖像的邊緣點,意味著以下三點:1、低失誤率,既要少將真正的邊緣丟失,也要少將非邊緣判為邊緣;2、高定位精度,檢測出的邊緣應在真正的邊緣位置上;3、對每個邊緣有唯一的響應,得到的邊緣為單邊緣。Canny算子Canny算子是一類具有優(yōu)良性能的邊緣檢測算子,它在許多圖像處理領(lǐng)域得到廣泛應用。從本質(zhì)上講,它并不只是簡單的進行梯度運算來決定像素是否為邊緣點,在決定一個像素是否為當前邊緣點時,需要考慮其它像素的影響;也不是簡單的邊界跟蹤,在尋找邊緣點時,需要根據(jù)當前像素及前面處理過的像素來進行判斷。它把邊緣檢測的問題轉(zhuǎn)換為檢測函數(shù)極大值的問題。其基本思想是:先對處理的圖像選擇一定的Gauss濾波器進行平滑濾波,然后采用一種稱之為"非最大值抑制"<Non-maxSuppression>的技術(shù),對平滑后的圖像處理后,得到最后的邊緣圖像。Canny提出了判斷邊緣檢測算子好壞的三個標準:〔1信噪比準則盡量做到不漏檢又不誤檢使輸出的信噪比最大。信噪比數(shù)值越大,提取的邊緣質(zhì)量越高;〔2定位精度準則檢測出的邊緣點位置距實際邊緣點的位置最近,使得輸出的圖像定位精度高;〔3單邊緣響應準則每個邊緣點的響應是唯一的。每一個實際存在的邊緣點和檢測到的邊緣點是一一對應的,得到的邊緣寬度為單像素。以上面的準則為基礎(chǔ),利用泛函求導的方法導出一個由邊緣定位精度和信噪比乘積組成的表達式,這個表達式近似于Gauss函數(shù)的一階導數(shù),此即為該函數(shù)的最好近似。Canny算子的算法實現(xiàn)主要包括5個部分:圖像濾波、計算圖像梯度、抑制梯度非最大點、搜索邊界的起點、跟蹤邊界。平滑圖像時也用到高斯濾波器,用到的高斯函數(shù)為:〔3-7原始圖片原始圖片平滑濾波選擇Gauss濾波器平滑濾波選擇Gauss濾波器非極值抑制處理非極值抑制處理選擇極值點的鄰域結(jié)構(gòu)選擇極值點的鄰域結(jié)構(gòu)獲得圖像邊界獲得圖像邊界圖3-2canny算子的基本流程1、采用高斯濾波對圖像進行濾波,濾波先對x方向進行,然后對y方向進行,主要是用于去除圖像中的噪聲;2、產(chǎn)生一個一維高斯分布函數(shù),用來生成高斯濾波系數(shù)。理論上高斯數(shù)據(jù)的長度應該是無限長的,但是實際的高斯數(shù)據(jù)只能是有限長的數(shù)據(jù)長度。根據(jù)概率論的知識,選取[-3σ,3σ]之間的數(shù)據(jù)長度;3、計算方向?qū)?shù),利用原圖像計算圖像像素的方向?qū)?shù);4、計算梯度,利用方向?qū)?shù)的計算結(jié)果,采用二階范數(shù)計算梯度;5、抑制局部像素非最大梯度點,這個函數(shù)是Canny算子的重要部分,Canny算子認為梯度圖中只有某些點才有可能成為邊界點或者是邊界的起點;6、根據(jù)梯度計算及經(jīng)過非最大抑制后的結(jié)果設定閾值,這個函數(shù)也是Canny算子的重要部分,閾值的設定直接涉及到哪些像素點可能成為邊界點。參數(shù)設置的值越高,檢測出來的邊緣點數(shù)目會越少;7、利用函數(shù)尋找邊界的起始點;8、根據(jù)以上步驟的執(zhí)行結(jié)果,從一個像素點開始進行搜索,搜索以該像素點為邊界起點的一條邊界的所有邊界點,函數(shù)采用了遞歸算法。3.6邊緣提取實驗結(jié)果及分析邊緣提取算法分析相對來說,用Sobel算子進行邊緣檢測得到的圖像效果較好,因為Sobel算子提供了精確的邊緣方向估計。但是,應用Sobel算子得到的邊緣圖像存在著不連續(xù)、定位精度低、對噪聲敏感、以及邊緣是多像素點的問題。而Canny算子提取的邊緣很好的克服了以上的缺點,不僅能很好的檢測邊緣,而且能抑制點狀噪聲。圖像形狀識別結(jié)果圖3-3原始圖像的邊緣提取結(jié)果采用canny邊緣提取算法隊員圖像進行邊緣提取。所用基本程序代碼如下:formatlongi=imread<'t2.bmp'>;imshow<i>;a=rgb2gray<i>;bw=edge<a,'canny'>;imshow<bw>;圖3-4基于上圖邊緣提取及識別分類的結(jié)果基于canny算法的邊緣提取結(jié)果圖,根據(jù)其圓形度及矩進行分類的結(jié)果,原圖像的各種特征都不變,只是多出了形狀的標注。識別程序所用的核心程序代碼如下: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>,'長方形'>elseif<tamgiacdeu<1.05>&<tamgiacdeu>0.95>text<s<k>.Centroid<1>-20,s<k>.Centroid<2>,'三角形'>其中a為圖像中心到邊緣的最大距離,b為圖像中心到邊緣的最小距離。如果圖像為標準的話,各公式算出的結(jié)果應均為1。本程序允許有5%的誤差,所以判斷參數(shù)的范圍都是在0.95到1.05之間。程序中各個公式都是根據(jù)各種形狀的面積計算的特征來確定的。如橢圓的面積為。程序先把圖像的邊緣提取出來,然后分別計算這幾個參數(shù),然后和預設的值逐個進行比較,直到判斷出圖像是什么形狀。圖3-5基于sobel算法邊緣提取及識別分類的結(jié)果對橢圓進行邊緣提取,并根據(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算法邊緣提取及識別分類的結(jié)果對三角形進行邊緣提取,并根據(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算法邊緣提取及識別分類的結(jié)果對圓進行邊緣提取,并根據(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算法邊緣提取及識別分類的結(jié)果對菱形進行邊緣提取,并根據(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算法邊緣提取及識別分類的結(jié)果對正方形進行邊緣提取,并根據(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算法邊緣提取及識別分類的結(jié)果對長方形進行邊緣提取,并根據(jù)求出的圓形度和矩判斷出該圖形為長方形。判斷程序代碼如下: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>,'長方形'>圖3-11基于sobel算法邊緣提取及識別分類的結(jié)果對圖中各進行邊緣提取,并根據(jù)求出的圓形度和矩分別判斷出各為什么圖形并輸出顯示。..結(jié)論圖像的形狀特征相對于其它特征是比較難以精確提取,同時也是難以匹配的,尋找符合人眼感知特性的形狀特征不是一個簡單的工作。這是因為一方面圖像的形狀難以用簡單的參數(shù)來描述;另一方面,當前的計算機處理技術(shù)對形狀提取的參數(shù)難以準確處理。另外,圖像的形狀特征往往會因圖像的尺寸、圖像的旋轉(zhuǎn)及平移而發(fā)生變化,因而這些因素都制約了基于形狀特征的圖像檢索系統(tǒng)的發(fā)展。形狀特征的表達必須以對圖像中物體或區(qū)域的分割為基礎(chǔ),這是計算機視覺的困難問題之一,至今沒有很好的解決。因為目前的技術(shù)無法做到準確而穩(wěn)健的自動圖像分割。本次論文根據(jù)邊緣提取的算法,把各種圖像的邊緣提取出來,再根據(jù)各種形狀的圖像的圓形度,矩形度來判斷出圖中的圖形是正方形還是三角形還是圓或是橢圓與菱形。從仿真結(jié)果來看,本次的程序基本達到題目的要求。但本次仿真主要是根據(jù)圖像的形狀進行識別,在以后可以根據(jù)圖像的紋理和色彩來對圖像進行進一步的分類識別,可以把三者結(jié)合起來,這對提高圖像識別的準確性會有很大的提升。這可以運用在圖像自動識別分類上,會在圖像智能檢索領(lǐng)域有很大用處。..參考文獻[1]徐明遠,劉增力,《MATLAB仿真在信號處理中的應用》,XX電子科技大學出版社,2007.11.[2]于萬波,《基于MATLAB的圖像處理》,清華大學出版社,2008.3.[3]飛思科技產(chǎn)品研發(fā)中心,《MATLAB7.0輔助圖像處理》,電子工業(yè)出版社,2003.1.[4]章毓晉,《圖像處理與分析》,北京清華大學出版社2004.7.[5]張志涌,《精通MATLAB6.5》,北京北航電子版,2002.12.[6]孫家廣,楊長貴,《計算機圖形學》,清華大學出版社,1995.5.[7]閆敬文,《數(shù)字圖像處理MATLAB版》,國防工業(yè)出版社,2007.2....附錄:論文中所用程序:邊緣提取及形狀識別分類的主程序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>,'長方形'>;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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論