美文网首页
OpenCV-Python学习(三):基本图形绘制

OpenCV-Python学习(三):基本图形绘制

作者: 星光下的胖子 | 来源:发表于2020-06-23 19:50 被阅读0次

    函数:

    基本图像绘制:
    主要参数:
        img:源图像
        color:需要传入的颜色
        thickness:线条的粗细,默认值是1,thickness为-1表示填充内部颜色。
        linetype:线条的类型,包括8 连接、抗锯齿等。默认情况是 8 连接。
                  lineType=cv2.LINE_AA表示抗锯齿,这样看起来会非常平滑。
    
        1.直线: cv2.line
            line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
        2.矩形: cv2.rectangle
            rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
        3.圆: cv2.circle
            circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
        4.椭圆: cv2.ellipse
            ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
            angle表示椭圆顺时针旋转的角度
        5.多边形: cv2.polylines
            polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
            isClosed表示收尾是否相连
    
            给多边形填充颜色:
            fillPoly(img, pts, color, lineType=None, shift=None, offset=None)
        6.写文字: cv2.putText
            putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
            org表示字体的左下角坐标,
            fontFace表示字体类型,示例: fontFace=cv2.FONT_HERSHEY_SIMPLEX
            fontScale表示字体大小,示例: fontScale=1
            lineType=cv2.LINE_AA表示抗锯齿
    

    示例:

    import cv2
    import numpy
    
    img = cv2.imread("image/1.jpg")
    
    # 直线
    cv2.line(img, (100, 20), (250, 120), color=(0, 0, 255), thickness=2)
    
    # 矩形
    cv2.rectangle(img, (100, 20), (250, 120), color=(0, 255, 0), thickness=2)
    
    # 圆
    cv2.circle(img, (150, 150), 60, color=(255, 0, 0), thickness=2)
    
    # 椭圆: angle=45表示椭圆顺时针旋转45度
    cv2.ellipse(img, (50, 250), (50, 30), 45, 0, 360, color=(255, 255, 0), thickness=2)
    cv2.ellipse(img, (150, 250), (50, 30), 45, 0, 90, color=(0, 255, 255), thickness=-1)
    
    # 多边形: isClosed=True表示首位相连(闭合)
    pts = numpy.array([[10, 5], [50, 10], [70, 20], [20, 30]], dtype=numpy.int32)
    cv2.polylines(img, [pts], isClosed=True, color=(255, 0, 255), thickness=2)
    # 给多边形填充颜色
    cv2.fillPoly(img, [pts], color=(0, 0, 0))
    
    # 写字: (0, 350)是字体左下角下标,lineType=cv2.LINE_AA表示抗锯齿
    cv2.putText(img, "Hello World", (0, 350), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), thickness=2)
    cv2.putText(img, "Hello World", (0, 400), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), thickness=2, lineType=cv2.LINE_AA)
    
    cv2.imshow("image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    结果如下:


    相关文章

      网友评论

          本文标题:OpenCV-Python学习(三):基本图形绘制

          本文链接:https://www.haomeiwen.com/subject/paxkfktx.html