matlab对于椭圆检测的算法,基于弧段组合的椭圆检测算法研究
摘要:
橢圓檢測是圖像匹配與識別,圖像理解與分析,計算機(jī)視覺等領(lǐng)域的一項基礎(chǔ)任務(wù),許多研究人員對橢圓檢測問題進(jìn)行了深入研究,提出了多種檢測算法.它們大致可以分為三類:投票/聚類,最優(yōu)化,基于弧段的方法.前兩類算法都是直接基于圖像中大量離散的邊點(diǎn)進(jìn)行檢測.隨著圖像復(fù)雜性的增加,圖像中邊點(diǎn)的數(shù)目增多,噪聲,孤立點(diǎn),無關(guān)點(diǎn)也增多,勢必會影響橢圓檢測的效率和準(zhǔn)確度.因此,一些研究人員提出了用弧段來代替離散的邊點(diǎn)作為橢圓檢測數(shù)據(jù)的方法.弧段比離散的邊點(diǎn)包含相對更加準(zhǔn)確和完整的幾何形狀信息,可以避免大量無關(guān)的其它邊點(diǎn)數(shù)據(jù)參與橢圓檢測.這類方法在檢測效率和準(zhǔn)確度上具有一定優(yōu)勢. 本文在研究和分析了常見橢圓檢測算法的基礎(chǔ)上,從邊界跟蹤,弧段提取,弧段組合,橢圓檢測等方面入手,探討了與基于弧段組合的橢圓檢測算法相關(guān)的幾個關(guān)鍵問題并提出了解決方法: (1)為了排除圖像的噪聲,孤立點(diǎn),正確地連接相鄰的邊點(diǎn),獲得連續(xù),局部鄰域內(nèi)數(shù)值光滑的邊段,盡可能避免產(chǎn)生錯誤邊界走向的邊段,本文設(shè)計了一種邊點(diǎn)梯度方向引導(dǎo)的光滑邊段提取方法.這種方法利用最近跟蹤產(chǎn)生的鏈碼中所含的方向信息來確定下一邊點(diǎn)的搜索方向,利用邊點(diǎn)的梯度方向來引導(dǎo)邊界上分岔處的跟蹤路徑,從而實(shí)現(xiàn)了邊界上不連續(xù)的1~2個斷點(diǎn)的跨越,并有效地降低相交邊界上分岔選擇錯誤的發(fā)生,其效果優(yōu)于常用的8-連通邊界跟蹤算法. (2)為了去除圖像中與橢圓檢測無關(guān)的邊點(diǎn)數(shù)據(jù),正確地獲得橢圓檢測需要的弧段,依據(jù)理想的橢圓邊界上不存在角點(diǎn)和拐點(diǎn)的幾何性質(zhì),本文設(shè)計了一種分段點(diǎn)的檢測方法.這種方法利用邊點(diǎn)的離散曲率來確定角點(diǎn),利用相鄰4個點(diǎn)形成曲線的凸凹特性來定位拐點(diǎn),實(shí)現(xiàn)了邊段的正確分割.然后,結(jié)合橢圓弧的特性去除不構(gòu)成橢圓弧的邊段,從而有效地減少了無關(guān)邊段對檢測的干擾,實(shí)現(xiàn)了弧段的有效提取,為后續(xù)的橢圓檢測工作提供更加準(zhǔn)確的基礎(chǔ)數(shù)據(jù). (3)因為上述所提取的弧段一般是橢圓邊界的一部分,為了獲得盡可能完整的橢圓邊點(diǎn)數(shù)據(jù),本文設(shè)計了弧段的組合算法.該算法根據(jù)弧段與弧段兩端的連接情況來判斷它們是否屬于同一橢圓,實(shí)現(xiàn)了弧段的正確組合.相比弧段,同屬一個橢圓的弧段組合能夠為橢圓的檢測提供更加完整的邊點(diǎn)數(shù)據(jù). (4)以數(shù)值穩(wěn)定的直接最小二乘橢圓擬合算法為基礎(chǔ),完成了基于弧段組合的橢圓檢測算法的設(shè)計與實(shí)現(xiàn).在算法的實(shí)現(xiàn)技術(shù)方面,采用Java與MATLAB混合編程,充分發(fā)揮了Java動態(tài)數(shù)據(jù)類型豐富MATLAB擅長矩陣運(yùn)算,特征值和特征向量計算的優(yōu)點(diǎn),使得算法實(shí)現(xiàn)的過程變得更加靈活,降低了程序開發(fā)的復(fù)雜度. 最后,采用所設(shè)計的基于弧段組合的橢圓檢測算法對合成圖像和實(shí)際圖像進(jìn)行了實(shí)驗與分析,它可以準(zhǔn)確,有效地完成圖像中橢圓的檢測及其參數(shù)的提取結(jié)果表明該算法是有效可行的.
展開
總結(jié)
以上是生活随笔為你收集整理的matlab对于椭圆检测的算法,基于弧段组合的椭圆检测算法研究的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高效非支配排序ENS python版
- 下一篇: C#小游戏之打砖块