opencv(3)绘制图案

2020-09-19  本文已影响0人  TZX_0710

本章使用opencv创建图形 采用numpy创建图纸

import cv2 as cv
import numpy as np
from matplotlib import pyplot as  plot


# 绘制opencv
def example_opencv():
    img = np.ones((512, 512, 3), np.uint8) * 255

    # 画椭圆
    # 图片 (圆心) (短轴长,长轴长),旋转角度,旋转角度,开口大小角度,(颜色),(线条粗细,-1为实心)
    cv.ellipse(img, (255, 100), (65, 65), 125, 0, 290, (0, 0, 255), -1)
    cv.circle(img, (255, 100), 30, (255, 255, 255), -1)

    cv.ellipse(img, (180, 220), (65, 65), 16, 0, 290, (0, 255, 0), -1)
    cv.circle(img, (180, 220), 30, (255, 255, 255), -1)

    cv.ellipse(img, (330, 220), (65, 65), 300, 0, 290, (255, 0, 0), -1)
    cv.circle(img, (330, 220), 30, (255, 255, 255), -1)

    font = cv.FONT_HERSHEY_SIMPLEX
    cv.putText(img, "OpenCV", (100, 400), font, 3, (0, 0, 0), 15, cv.LINE_AA)

    cv.imshow('study', img)
    cv.waitKey(0)
    cv.destroyAllWindows()


def writeTest():
    # 创建一个500行 500列 包含3个元素的矩阵
    img = np.zeros((500, 500, 3), np.uint8)
    # cv.line第一个参数表示绘制图像的位置
    # 第二个参数表示绘画的开始点为 第三个参数表示结束的位置 第五个参数表示图像颜色  第六个参数表示线条的厚度
    # 横向表示x  竖着的表示y (0,300)表示从x的0开始,y的300开始绘制(200,200) 到x=200,y=200结束
    cv.line(img, (0, 300), (200, 200), (255, 0, 0), 5)
    # 绘制一个圆圈
    cv.circle(img, (200, 200), 40, (0, 0, 255), 5)
    font = cv.FONT_HERSHEY_SIMPLEX
    cv.putText(img, 'OpenCV', (200, 250), font, 2, (255, 255, 255), 2, cv.LINE_AA)
    plot.imshow(img)
    plot.show()
    cv.waitKey(0)
    cv.destroyAllWindows()


if __name__ == '__main__':
    example_opencv()
    writeTest()

上一篇下一篇

猜你喜欢

热点阅读