了解蛇

时间:2015-06-18 18:54:23

标签: opencv

我正在尝试创建一个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);

}

1 个答案:

答案 0 :(得分:1)

  • CV_VALUE表示alpha,beta,gamma中的每一个都是指向a的指针 单个值用于所有点;

  • CV_ARRAY表示alpha,beta,gamma中的每一个都是指向a的指针 蛇的所有点的系数数组不同。所有 数组的大小必须等于轮廓大小。