我正在尝试制作一个Snake Active Contour程序,我一直在查看不同的网站,这些网站显示了他们如何对蛇进行编程,但没有一个解释什么是CV_VALUE或系数用法以及他们如何初始化它。
这里有一些我正在处理的代码,但我不知道问题是什么。
void snake(Mat copy){
threshold(copy, copy, 170, 255, CV_THRESH_BINARY);
float alpha = 0.1; //Continuity snake
float beta = 0.5; //Curvature snake
float gamma = 0.4; //Movement snake
//Have to be odd
CvSize size;
size.width = 5;
size.height = 5;
CvTermCriteria criteria;
criteria.type = CV_TERMCRIT_ITER;
criteria.max_iter = 10000;
criteria.epsilon = 0.1;
int cpt = 40;
CvPoint pointsArray[5];
pointsArray[0].x = 0;
pointsArray[0].y = 95;
pointsArray[1].x = 5;
pointsArray[1].y = 95;
pointsArray[2].x = 10;
pointsArray[2].y = 95;
pointsArray[3].x = 15;
pointsArray[3].y = 95;
pointsArray[4].x = 20;
pointsArray[4].y = 95;
//The Code (image, points, length, alpha (consistency), beta (curve), gamma (movement), coefficient Usage, win, criteria, calcGradient)
cvSnakeImage(copy, pointsArray, cpt, &alpha, &beta, &gamma, CV_VALUE, size,criteria, 0);
}
-
CV_VALUE 表示 alpha、beta、gamma 中的每一个都是指向用于所有点的单个值;
-
CV_ARRAY 表示 alpha、beta、gamma 中的每一个都是指向蛇的所有点的系数数组都不同。都数组的大小必须等于轮廓大小。