【OpenCV + VS】OpenCV 绘图:绘制矩形、圆形、椭圆形、线条等

内容分享1小时前发布 Ivy2024_
0 0 0

        在图像处理和计算机视觉中,绘制图形是常见的操作之一。这些图形可以用于标记图像中的感兴趣区域(ROI),可视化数据,或者在图像上展示一些重要信息。OpenCV 提供了强大的图形绘制功能,支持绘制矩形、圆形、线条、椭圆等。

示例代码:绘制矩形、圆形、椭圆形、线条



#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
void drawing_demo(Mat& image) {
    // 1. 绘制矩形
    Rect rect;
    rect.x = 250;  // 矩形左上角的 x 坐标
    rect.y = 150;  // 矩形左上角的 y 坐标
    rect.width = 100;  // 矩形的宽度
    rect.height = 100;  // 矩形的高度
    rectangle(image, rect, Scalar(0, 0, 255), 2, 8, 0);  // 绘制红色矩形,线宽为 2
 
    // 2. 绘制圆形
    circle(image, Point(350, 400), 50, Scalar(255, 0, 0), -1, 8, 0);  // 绘制填充的蓝色圆形,半径为 50
 
    // 3. 绘制线条
    line(image, Point(100, 100), Point(200, 200), Scalar(255, 255, 0));  // 绘制黄色线条
 
    // 4. 绘制椭圆
    RotatedRect rrt;
    rrt.center = Point(200, 200);  // 椭圆的中心位置
    rrt.size = Size(100, 200);  // 椭圆的宽度和高度
    rrt.angle = 90;  // 椭圆的旋转角度
    ellipse(image, rrt, Scalar(0, 0, 255), 2, 8);  // 绘制红色椭圆,线宽为 2
 
    // 显示图像
    imshow("绘图示例", image);
}
 
int main() {
    // 创建一个空白图像(黑色背景)
    Mat image = Mat::zeros(Size(500, 500), CV_8UC3);
 
    // 调用绘图函数
    drawing_demo(image);
 
    // 等待用户按键
    waitKey(0);
    destroyAllWindows();  // 关闭所有窗口
    return 0;
}

代码解析:

绘制矩形


Rect
类用于定义矩形,包含矩形的左上角坐标
(x, y)
、宽度
width
和高度
height


rectangle(image, rect, Scalar(0, 0, 255), 2, 8, 0)
:这行代码在图像
image
上绘制一个矩形。
Scalar(0, 0, 255)
表示矩形的颜色(红色),
2
是线条的宽度,
8
是线条的类型,
0
是连接点的类型(不重要,默认为 0)。

绘制圆形


circle(image, Point(350, 400), 50, Scalar(255, 0, 0), -1, 8, 0)
:这行代码在
(350, 400)
位置绘制一个半径为 50 的圆形,颜色为蓝色(
Scalar(255, 0, 0)
),
-1
表示圆形是填充的,
8
是线条的类型。

绘制线条


line(image, Point(100, 100), Point(200, 200), Scalar(255, 255, 0))
:这行代码绘制了一条从
(100, 100)

(200, 200)
的黄色线条。
Scalar(255, 255, 0)
表示颜色为黄色。

绘制椭圆


RotatedRect rrt;
:使用
RotatedRect
来定义一个旋转矩形,它不仅可以表示矩形,还可以表示椭圆。


ellipse(image, rrt, Scalar(0, 0, 255), 2, 8);
:这行代码绘制了一个红色的椭圆,线条宽度为 2。

显示图像


imshow("绘图示例", image);
:显示绘制后的图像。

结果说明:

运行这段代码时,程序将在一个 500×500 的黑色背景上绘制一个红色矩形、一个蓝色圆形、一个黄色线条和一个红色椭圆,最后显示在窗口中。

【OpenCV + VS】OpenCV 绘图:绘制矩形、圆形、椭圆形、线条等

常见图形的绘制参数:

矩形
rectangle
):

参数:
rectangle(image, rect, color, thickness, lineType)


color
:指定矩形的颜色(BGR 格式)。


thickness
:矩形边框的线宽。如果是
-1
,则表示填充矩形。


lineType
:线条的类型(例如
8
为 8-connected、
4
为 4-connected 等)。

圆形
circle
):

参数:
circle(image, center, radius, color, thickness, lineType)


center
:圆心坐标。


radius
:圆的半径。


color
:圆的颜色。


thickness
:线宽(如果是
-1
,则为填充圆)。

线条
line
):

参数:
line(image, pt1, pt2, color, thickness, lineType)


pt1

pt2
:线条的起点和终点。


color
:线条的颜色。


thickness
:线条宽度。

椭圆
ellipse
):

参数:
ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness, lineType)


center
:椭圆的中心。


axes
:椭圆的长短轴。


angle
:椭圆的旋转角度。


startAngle

endAngle
:椭圆的起始和结束角度。


color
:椭圆的颜色。

© 版权声明

相关文章

暂无评论

none
暂无评论...