美文网首页
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