Snake邊界提取優化

2021-10-11 22:48:29 字數 1296 閱讀 5644

snake是一種主動輪廓模型,是對主動輪廓模型的理解:你先給它乙個初始輪廓,模型以初始輪廓為基準逐步迭代,來改進影象的輪廓,使其更加精確。主動輪廓模型目前用到了2種:cv和snake。前者沒有看演算法內部的原理。而snake,以最原始的**《snakes: active contour models》為出發點。

snake在逐步迭代優化過程的目標是能量函式最小化,這個能量函式指的是輪廓能量和影象能量的總和(為什麼要最小化這個能量總和,還不太清楚,**也沒有具體說)。snake的目標不像sobel、canny等找到整張圖的輪廓。它只搜尋你給出的初始輪廓附近,達到輪廓更精確的目標,至少原版的snake只能達到區域性優化的目標。

能量函式:

其中而內部能量由兩部分構成:一階導數的模(稱為彈性能量)和二階導數的模(彎曲能量)

為什麼是這樣的呢?據說是因為曲線曲率的關係,閉合的輪廓曲線中,凸曲線按照法向量的方向,具有向內的作用力;凹曲線法向量向外,具有向外的力。而曲率計算就是跟一階導數、二階導數相關的。很複雜,不甚理解。

在迭代過程中,彈性能量能快速的把輪廓壓縮成光滑的圓;彎曲能量將輪廓拉成光滑的曲線或直線,他們的作用是保持輪廓的光滑和連續性。通常alpha越大,輪廓收斂越快;beta越大,輪廓越光滑。

線性能量:

邊緣能量:

終端(角點)能量:

通常可以根據更期望輪廓趨向於哪方面來選擇以上三種能量。在迭代優化過程中,外部能量會使輪廓朝(灰度)高梯度位置靠近。而通常梯度高的位置都是影象中前景與背景的界限或者物體與物體之間、物體內部不同部分的界限,適合用於分割。

對於優化,優化的目標是總能量函式區域性極小,通過能量函式極小或者迭代次數來控制迭代的終止。極小化能量函式通過尤拉方程計算解,作者在附錄中用了數值方法進行推到,將尤拉方程推到為:

其中引入外部能量:

再轉化為每一步迭代演進過程:

a+ ri為五對角條帶矩陣。

關於影象能量中line、edge、termatation計算其實都挺複雜的。反倒是計算梯度向量場簡單一些。將影象能量由線、邊緣、角點的能量替換為梯度向量場,就是**f snake。

邊界輪廓提取(邊緣提取)例項

邊緣提取,指數字影象處理中,對於輪廓的乙個處理。對於邊界處,灰度值變化比較劇烈的地方,就定義為邊緣。也就是拐點,拐點是指函式發生凹凸性變化的點。二階導數為零的地方。並不是一階導數,因為一階導數為零,表示是極值點。邊緣提取 邊緣檢測的基本思想首先是利用邊緣增強運算元,突出影象中的區域性邊緣,然後定義象...

使用Freeman鏈碼提取影像邊界

第一篇部落格,還真不知道寫些什麼。恰好最近寫了乙個小功能,還是蠻有用,希望能幫到用得著的朋友,也為以後積累資料吧。在gis行業中,有時會計算影像的面積,希望提取出影像的邊界,在做影像鑲嵌是還會求取影像的有效範圍等。那麼,針對乙個影像,如何能夠得到它的有效範圍呢?1 arcgis中有乙個工具,好像是在...

濾鏡高斯模糊的邊界或邊框問題的解決和優化

相信有很多剛剛接觸svg濾鏡模糊的新人們都可能遇到過這種問題 1.當模糊偏量很小的時候 這是我們期望的並且沒有什麼問題 當偏量略大時 對於半徑為10時,2偏量的模糊已經出現了問題 高斯模糊的偏量為2時已經出現問題了 高斯模糊偏量為3問題更明顯 關鍵標籤 fecomposite 乙個神奇的標籤,可以將...