您的位置:首页 > 运维架构

opencv中的snake模型函数

2014-02-22 22:46 337 查看
opencv中的snake函数:

cvSnakeImage在头文件#include <opencv2/legacy/legacy.hpp>中

函数介绍:

cvSnakeImage函数更新snake用于最小化它的总能量,并在梯度能量场情况下的,使其对应图像边缘的局部能量极值达到最小。它的能量包括依赖于轮廓形状的内部能量(轮廓越平滑,能量越小),依赖于能量场的外部能量。

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

原图像或external energy field。

points

轮廓点(snake)。

length

轮廓中点的数目。

alpha(0~1)

连续性能量(continuity energy)的权重,一个浮点数,或者每个轮廓点对应一个的浮点数数字。

beta(0~1)

曲率能量(curvature energy)的权重,类似alpha

gamma(0~1)

图像能量(image energy)的权重,类似alpha。

coeff_usage

前三个参数使用方式的设定变量:

CV_VALUE 说明前面的alpha,beta,gamma是一个指向一个单独值的指针,每个轮廓点都是用这一相同的参数;

CV_ARRAY 说明alpha,beta,gamma是一个数组,每一个轮廓点(snake)都对应自己的一组alpha,beta,gamma值,因此,三个参数的元素个数必须和轮廓点尺寸相同;

win

每个点用于搜索最小值的邻居的范围,win.width和win.height都必须为奇数;

criteria

终止标准;

calc_gradient

梯度标志。如果非0,函数计算每个图像像素的梯度大小,并将之作为能量场;否则,输入图像本身作为能量场考虑。

参数criteria.epsilon用于定义每次迭代必须移动的最小点的数目,用于确保迭代处理运行。如果某次迭代,移动的点数少于criteria.epsilon或函数执行达到了criteria.max_iter,函数终止。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: