opencv中的snake模型函数

来源:互联网 发布:js 控制图片旋转 编辑:程序博客网 时间:2024/05/16 11:08

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,函数终止。


0 0
原创粉丝点击