SnakeImage

SnakeImage用於改變輪廓位置使得它的能量最小。

基本介紹

  • 中文名:SnakeImage
  • image:輸入圖像或外部能量域
  • points:輪廓點
  • length:輪廓點的數目
函式形式,參數,說明,

函式形式

void cvSnakeImage( const IplImage* image, CvPoint* points, int length, float* alpha, float* beta, float* gamma, int coeff_usage, CvSize win, CvTermCriteria criteria, int calc_gradient=1 );

參數

  • image
  • 輸入圖像或外部能量域
  • points
  • 輪廓點 (snake).
  • length
  • 輪廓點的數目
  • alpha
  • 連續性能量的權 Weight[s],單個浮點數或長度為 length 的浮點數數組,每個輪廓點有一個權
  • beta
  • 曲率能量的權 Weight[s],與 alpha 類似
  • gamma
  • 圖像能量的權 Weight[s],與 alpha 類似
  • coeff_usage
  • 前面三個參數的不同使用方法:
  • CV_VALUE 表示每個 alpha, beta, gamma 都是指向為所有點所用的一個單獨數值;
  • CV_ARRAY 表示每個 alpha, beta, gamma 是一個指向係數數組的指針,snake 上面各點的係數都不相同。因此,各個係數數組必須與輪廓具有同樣的大小。所有數組必須與輪廓具有同樣大小
win
每個點用於搜尋最小值的鄰域尺寸,兩個 win.width 和 win.height 都必須是奇數
criteria
終止條件
calc_gradient
梯度符號。如果非零,函式為每一個圖像象素計算梯度幅值,且把它當成能量場,否則考慮輸入圖像本身。

說明

函式 cvSnakeImage 更新 snake 是為了最小化 snake 的整個能量,其中能量是依賴於輪廓形狀的內部能量(輪廓越光滑,內部能量越小)以及依賴於能量場的外部能量之和,外部能量通常在哪些局部能量極值點中達到最小值(這些局部能量極值點與圖像梯度表示的圖像邊緣相對應)。
參數 criteria.epsilon 用來定義必須從疊代中除掉以保證疊代正常運行的點的最少數目。
如果在疊代中去掉的點數目小於 criteria.epsilon 或者函式達到了最大的疊代次數 criteria.max_iter ,則終止函式。

相關詞條

熱門詞條

聯絡我們