• cv2 可视化操作整理(直线,圆,矩形,多边形,文本)


            经常需要图像上显示下结果,用的时候却总差几个参数记不清,整理记录下。

    1、cv2.circle(画圆或画点)

    函数原型:

    cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

    作用:根据给定的圆心和半径等画圆。

    参数说明:

            img:输入的图片data;

            center:圆心位置;

            radius:圆的半径;

            color:圆的颜色;

            thickness:默认为1,圆形轮廓的粗细(如果为正)。负厚度表示要绘制实心圆。

            lineType:默认为LINE_8, 圆边界的类型。支持的:LineTypes

            shift:默认为0,中心坐标和半径值中的小数位数。

    示例demo:

    1. import cv2
    2. img = cv2.imread(r"dog.jpg", 1)
    3. cv2.circle(img, (387, 461), 20, (0, 255, 0), thickness=2)
    4. cv2.circle(img, (286, 429), 20, (0, 0, 255), thickness=-1)
    5. cv2.imwrite(r"ret.jpg", img)

    结果:

    2、cv2.ellipse(画椭圆,扇形)

    函数原型:

    cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift) 

    作用:画椭圆。

    参数说明:

            img:需要绘图的图像;

            center:椭圆中心点坐标;

            axes:椭圆尺寸(即长、短轴);

            angle:旋转角度(顺时针方向);

            startAngle:绘制的起始角度(顺时针方向);

            endAngle:绘制的终止角度(例如,绘制整个椭圆是0,360,绘制下半椭圆就是0,180);

            color:线条颜色(BGR);

            thickness:线条粗细(默认值=1);

            lineType:线条类型(默认值=8);

            shift:圆心坐标点和数轴的精度(默认值=0)

    示例demo:

    1. import cv2
    2. img = cv2.imread(r"dog.jpg", 1)
    3. cv2.ellipse(img, (260, 240), (170, 130), 0, 0, 160, (0, 255, 0), thickness=-1) # 画扇形
    4. cv2.ellipse(img, (300, 240), (170, 130), 0, 0, 360, (0, 255, 255), thickness=3) # 画椭圆
    5. cv2.imwrite(r"ret.jpg", img)

    结果:

     3、cv2.line()(画直线)

    cv2.line(img, Point pt1, Point pt2, color, thickness=1, line_type=8, shift=0)

            pt1,pt2分别代表直线的两个端点。

    4、cv2.rectangle()(画矩形)

    cv2.rectangle(img, Point pt1, Point pt2, color, thickness=1, line_type=8, shift=0)

            pt1,pt2分别代表矩形的左上角点和右下角点。

    5、cv2.polylines(画多边形)

    函数原型: cv2.polylines(image, [pts], isClosed, color, thickness)

    作用:cv2.polylines()方法用于绘制任何图像上的多边形。

    参数:

            image:这是上圆要绘制的图像;

            pts:多边形点集数组;

            isClosed:指示绘制的折线是否闭合的标志。如果它们是闭合的,则该函数从每条曲线的最后一个顶点到其第一个顶点绘制一条线顶点;

            color:这是折线的颜色来绘制。对于BGR,我们传递一个元组;

            thickness:它是折线边的厚度。

    注意:绘制多边形 pts以元组表示每个点的坐标,多边形的点集必须是int32位。

    1. import cv2
    2. import numpy as np
    3. img = cv2.imread(r"dog.jpg", 1)
    4. pts = np.array([(165, 49), (590, 426), (286, 429)], np.int32) # shape=(N,2)
    5. pts = pts.reshape((-1, 1, 2)) # shape=(N,1,2),非必要,但与轮廓线兼容
    6. cv2.polylines(img, [pts], False, (0, 0, 255), 5)
    7. cv2.imwrite(r"ret.jpg", img)

    结果:

     

  • 相关阅读:
    跳槽有技巧?超强测试开发面试经验等你pick
    【JS的设计模式一】
    逆傅里叶变IFFT原始信号恢复方法研究-附Matlab代码
    JAVA服务器端发送邮件问题:Could not connect to SMTP host: smtp.qq.com, port: 465
    golang中的RSA算法,加密解密,签名校验,导出公钥密钥,导入公钥密钥
    Vue 2 进入、离开和列表过渡
    练[NCTF2019]Fake XML cookbook
    mysql体系结构及引擎
    pdf转excel,如何把pdf转换成excel表格
    Java异常编程题(巩固语法)
  • 原文地址:https://blog.csdn.net/weixin_34910922/article/details/126755429