我只想在OpenCv中画一条抛物线。 我使用下面的代码绘制抛物线的近似值
cvEllipse(img,cvPoint(500,500),cvSize(100,200),0,180,360,cvScalar(255,0,255),1,8,0);
但我需要的是采用抛物线的实际公式并清楚地绘制函数。 Y = AX ^ 2
答案 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,蓝色