opencv 贝塞尔曲线绘制,用C++
时间: 2023-09-11 19:11:42 浏览: 113
vc++实现贝塞尔曲线的绘制
使用C++绘制贝塞尔曲线与Python类似,也是使用`cv::polylines()`函数。
下面是一个简单的例子,其中绘制了一个二次贝塞尔曲线:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个黑色背景的图像
Mat img = Mat::zeros(Size(512, 512), CV_8UC3);
// 定义控制点
Point pts[] = { Point(100, 200), Point(200, 400), Point(400, 300) };
int npts = sizeof(pts) / sizeof(pts[0]);
// 绘制控制点
for (int i = 0; i < npts; i++) {
circle(img, pts[i], 5, Scalar(0, 0, 255), -1);
}
// 绘制贝塞尔曲线
const Point* ppt[1] = {pts};
int npt[] = {npts};
polylines(img, ppt, npt, 1, false, Scalar(0, 255, 0), 3);
imshow("image", img);
waitKey(0);
destroyAllWindows();
return 0;
}
```
运行以上代码,可以得到一个有控制点和贝塞尔曲线的图像。
如果需要绘制三次贝塞尔曲线,只需要在`pts`数组中添加一个控制点即可。
阅读全文