今天看到一个关于OpenCV的练习题,用绘图功能创建OpenCV的徽标。
关于OpenCV的绘图功能,在下面这篇笔记里写过了,这里不再多写,直接上代码!OpenCV学习——绘图功能_笨小古的博客-CSDN博客_opencv窗口绘图
import cv2 as cv
import numpy as np
img_p = np.zeros((1000, 1000, 3), np.uint8)
img_p.fill(255)
# 上面红色的部分
cv.circle(img_p, (500, 200), 100, (0, 0, 255), -1)
cv.circle(img_p, (500, 200), 40, (255, 255, 255), -1)
cv.ellipse(img_p, (500, 200), (100, 100), 0, 60, 120, (255, 255, 255), -1)
# 左下角绿色的部分
cv.circle(img_p, (380, 408), 100, (0, 255, 0), -1)
cv.circle(img_p, (380, 408), 40, (255, 255, 255), -1)
cv.ellipse(img_p, (380, 408), (100, 100), 0, 300, 360, (255, 255, 255), -1)
# 右下角蓝色的部分
cv.circle(img_p, (620, 408), 100, (255, 0, 0), -1)
cv.circle(img_p, (620, 408), 40, (255, 255, 255), -1)
cv.ellipse(img_p, (620, 408), (100, 100), 0, 240, 300, (255, 255, 255), -1)
# 如果需要还可加上"OpenCV"字体
font = cv.FONT_HERSHEY_DUPLEX
cv.putText(img_p, "OpenCV", (210, 750), font, 5, (0, 0, 0), 8)
cv.namedWindow('image_p', cv.WINDOW_NORMAL)
cv.imshow('image_p', img_p)
cv.imwrite('opencv_logo.png', img_p)
cv.waitKey(0)
cv.destroyAllWindows()
关于绘图过程中的坐标关系如下:
画扇形的函数为:
# 绘制扇形 1.目标图片 2.椭圆圆心 3.长短轴长度 4.偏转角度 5.圆弧起始角度 6.终止角度 7.颜色 8.是否填充
cv2.ellipse(img_p, (500, 200), (100, 100), 0, 60, 120, (255, 255, 255), -1)
绘制椭圆也是用这个函数。
椭圆函数中使用的角度不是我们常用的圆角。有关更多详细信息,请访问此链接:http://answers.opencv.org/question/14541/angles-in-ellipse-function/。