在opencv中画一条抛物线

时间:2014-09-16 14:01:40

标签: opencv drawing computer-vision

我只想在OpenCv中画一条抛物线。 我使用下面的代码绘制抛物线的近似值

cvEllipse(img,cvPoint(500,500),cvSize(100,200),0,180,360,cvScalar(255,0,255),1,8,0);

但我需要的是采用抛物线的实际公式并清楚地绘制函数。 Y = AX ^ 2

1 个答案:

答案 0 :(得分:1)

这样的事情应该可以解决问题

int width = 500;
float miny = -1, maxy = 1;
Mat image = Mat::zeros(width,width,CV_8UC3);
vector<Point2f> list_point(width);
for(int i = 0; i < width; i++){
   list_point[i].x = i;
   float real_y = miny + ((maxy-miny)*i)/width;
   list_point[i].y = real_y*real_y;
}
//Draw the curve
for(int i = 1; i < width; i++) line(image,list_point[i-1],list_point[i],Scalar(255,255,255));
imshow("image",image);
waitKey();

结果是miny = -20,maxy = 20,绿色,miny = -10,maxy = 30,蓝色

Result of the algorithm