c++用opencv绘制曲线
时间: 2023-06-17 12:08:17 浏览: 142
//绘制Bezier曲线-opencv实例
使用OpenCV库绘制曲线可以通过以下步骤实现:
1. 创建一个空的黑色图像,可以使用cv::Mat创建:
```
cv::Mat image = cv::Mat::zeros(height, width, CV_8UC3);
```
2. 使用cv::line或cv::polylines函数绘制曲线,这些函数需要传入起始点和终止点的坐标或者控制点的坐标:
```
cv::line(image, cv::Point(0, 0), cv::Point(100, 100), cv::Scalar(0, 0, 255), 3);
```
或者
```
std::vector<cv::Point> points;
points.push_back(cv::Point(0, 0));
points.push_back(cv::Point(50, 100));
points.push_back(cv::Point(100, 200));
cv::polylines(image, points, false, cv::Scalar(255, 0, 0), 2);
```
其中,第一个参数是图像,第二个参数是点的数组,第三个参数表示是否闭合曲线,第四个参数是颜色,最后一个参数是线宽。
3. 显示图像,可以使用cv::imshow函数:
```
cv::imshow("Image", image);
```
完整的代码示例:
```
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat image = cv::Mat::zeros(400, 400, CV_8UC3);
std::vector<cv::Point> points;
points.push_back(cv::Point(0, 0));
points.push_back(cv::Point(50, 100));
points.push_back(cv::Point(100, 200));
cv::polylines(image, points, false, cv::Scalar(255, 0, 0), 2);
cv::imshow("Image", image);
cv::waitKey();
return 0;
}
```
阅读全文