第十六节 多边形的填充与绘制

void  QUickdemo::polyline_drawing_demo(Mat& image)
{
    Mat canvas = Mat::zeros(Size(512,512), CV_8UC3);
    Point p1(100, 100);
    Point p2(350, 100);
    Point p3(450, 280);
    Point p4(320, 450);
    Point p5(80, 400);
    std::vector<Point>pts;--Point表示二维坐标点,pts存储多个像素点
    pts.push_back(p1);
    pts.push_back(p2);
    pts.push_back(p3);
    pts.push_back(p4);
    pts.push_back(p5);

fillPoly(canvas, pts, Scalar(255, 255, 0), 8, 0);--

• canvas:目标图像,函数会在这个图像上进行绘制操作。

• pts:一个std::vector<Point>类型的向量的集合,每个内部向量表示一个多边形的顶点集合。

• Scalar(255, 255, 0):指定填充的颜色,这里是黄色(蓝色通道为 0,绿色通道为 255,红色通道为 255)。

• 8:连接类型,通常表示 8 连接,允许对角线方向的连接。

• 0:位移参数,一般使用默认值。
 

    polylines(canvas, pts, true, Scalar(0, 0, 255), 2, 8, 0);--

在 OpenCV 中,polylines函数用于在图像上绘制一系列的多边形轮廓。

函数原型:
void polylines(Mat& img, const std::vector<std::vector<Point> >& pts, bool isClosed, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
参数解释:

• img:要在其上绘制多边形的图像。

• pts:一个包含多个多边形顶点集合的向量。每个内部的向量表示一个多边形的顶点坐标。

• isClosed:表示多边形是否闭合。如果为true,则多边形的最后一个点会与第一个点连接起来形成闭合图形;如果为false,则多边形不闭合。

• color:多边形的颜色,可以是一个Scalar对象,表示 B(蓝色)、G(绿色)、R(红色)和 alpha(透明度)通道的值。

• thickness:多边形轮廓的线宽。

• lineType:线条的类型,可以是LINE_4、LINE_8或LINE_AA等。

• shift:坐标点的小数位数。

    imshow("多边形绘制",canvas);
    

}


另一种表现形式

std::vector<std::vector<Point>>contours;--声明了一个可以存储多个向量contours(每个向量存储一组点)的容器
contours.push_back(pts);--将之前存储的包含点的向量pts添加到contours中

drawContours(canvas, contours, -1, Scalar(255, 0, 0), -1);

 canvas:要在其上绘制轮廓的图像。

• contours:存储轮廓信息的std::vector<std::vector<Point>>类型的向量。如前面解释的,这个向量存储了多个由一组坐标点组成的轮廓。

• -1:表示绘制所有的轮廓。如果指定一个非负整数,则表示绘制指定索引的轮廓。

• Scalar(255, 0, 0):表示绘制轮廓的颜色。在这个例子中,颜色为蓝色(蓝色通道为 255,绿色通道为 0,红色通道为 0)。

• -1:表示轮廓内部被填充。如果设置为一个正整数,则表示轮廓线的宽度。

这个函数会将contours中的所有轮廓用指定的颜色绘制在图像canvas上,如果最后一个参数为-1,则会填充轮廓内部。

个人理解,如有不对,请多指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值