我正在尝试创建一个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);
}
答案 0 :(得分:1)
CV_VALUE表示alpha,beta,gamma中的每一个都是指向a的指针 单个值用于所有点;
CV_ARRAY表示alpha,beta,gamma中的每一个都是指向a的指针 蛇的所有点的系数数组不同。所有 数组的大小必须等于轮廓大小。