您好,登录后才能下订单哦!
OpenCV 是一个强大的计算机视觉库,广泛用于图像处理和计算机视觉任务。在 OpenCV 中,我们可以使用 C++ 编程语言来实现各种几何图形的绘制,例如直线、矩形、圆形、椭圆等。本文将介绍如何使用 OpenCV 的 C++ 接口来绘制这些几何图形。
在开始之前,确保你已经安装了 OpenCV 库,并且配置好了开发环境。你可以通过以下命令安装 OpenCV:
sudo apt-get install libopencv-dev
在绘制几何图形之前,我们需要创建一个空白图像。可以使用 cv::Mat
类来创建一个图像矩阵。
#include <opencv2/opencv.hpp>
int main() {
// 创建一个 500x500 的空白图像,背景为白色
cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3);
image.setTo(cv::Scalar(255, 255, 255));
// 在这里绘制几何图形
// 显示图像
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
使用 cv::line
函数可以在图像上绘制直线。该函数需要指定起点、终点、颜色和线宽等参数。
cv::line(image, cv::Point(50, 50), cv::Point(450, 50), cv::Scalar(0, 0, 255), 2);
cv::Point(50, 50)
和 cv::Point(450, 50)
分别表示直线的起点和终点。cv::Scalar(0, 0, 255)
表示直线的颜色(BGR 格式),这里是红色。2
表示线宽。使用 cv::rectangle
函数可以在图像上绘制矩形。该函数需要指定矩形的左上角和右下角坐标、颜色和线宽等参数。
cv::rectangle(image, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(0, 255, 0), 3);
cv::Point(100, 100)
和 cv::Point(400, 400)
分别表示矩形的左上角和右下角。cv::Scalar(0, 255, 0)
表示矩形的颜色,这里是绿色。3
表示线宽。使用 cv::circle
函数可以在图像上绘制圆形。该函数需要指定圆心、半径、颜色和线宽等参数。
cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(255, 0, 0), -1);
cv::Point(250, 250)
表示圆心。100
表示半径。cv::Scalar(255, 0, 0)
表示圆的颜色,这里是蓝色。-1
表示填充圆形(如果为正数,则表示线宽)。使用 cv::ellipse
函数可以在图像上绘制椭圆。该函数需要指定椭圆的中心、轴长、旋转角度、起始角度、结束角度、颜色和线宽等参数。
cv::ellipse(image, cv::Point(250, 250), cv::Size(150, 100), 45, 0, 360, cv::Scalar(0, 255, 255), 2);
cv::Point(250, 250)
表示椭圆的中心。cv::Size(150, 100)
表示椭圆的长轴和短轴长度。45
表示椭圆的旋转角度。0
和 360
表示椭圆的起始角度和结束角度。cv::Scalar(0, 255, 255)
表示椭圆的颜色,这里是黄色。2
表示线宽。使用 cv::polylines
函数可以在图像上绘制多边形。该函数需要指定多边形的顶点、是否闭合、颜色和线宽等参数。
std::vector<cv::Point> points = {cv::Point(100, 100), cv::Point(200, 50), cv::Point(300, 100), cv::Point(250, 200)};
cv::polylines(image, points, true, cv::Scalar(255, 0, 255), 2);
points
是一个包含多边形顶点的向量。true
表示多边形是闭合的。cv::Scalar(255, 0, 255)
表示多边形的颜色,这里是紫色。2
表示线宽。最后,使用 cv::imshow
函数显示绘制好的图像,并使用 cv::waitKey
函数等待用户按键。
cv::imshow("Image", image);
cv::waitKey(0);
#include <opencv2/opencv.hpp>
int main() {
// 创建一个 500x500 的空白图像,背景为白色
cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3);
image.setTo(cv::Scalar(255, 255, 255));
// 绘制直线
cv::line(image, cv::Point(50, 50), cv::Point(450, 50), cv::Scalar(0, 0, 255), 2);
// 绘制矩形
cv::rectangle(image, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(0, 255, 0), 3);
// 绘制圆形
cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(255, 0, 0), -1);
// 绘制椭圆
cv::ellipse(image, cv::Point(250, 250), cv::Size(150, 100), 45, 0, 360, cv::Scalar(0, 255, 255), 2);
// 绘制多边形
std::vector<cv::Point> points = {cv::Point(100, 100), cv::Point(200, 50), cv::Point(300, 100), cv::Point(250, 200)};
cv::polylines(image, points, true, cv::Scalar(255, 0, 255), 2);
// 显示图像
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
通过 OpenCV 的 C++ 接口,我们可以轻松地在图像上绘制各种几何图形。本文介绍了如何绘制直线、矩形、圆形、椭圆和多边形,并提供了完整的代码示例。希望这篇文章能帮助你更好地理解和使用 OpenCV 进行几何图形的绘制。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。