图像入门2
图像入门2
1. 大纲
1、使用OpenCV
绘制不同的几何形状
2、学习以下功能:cv.line()
,cv.circle()
,cv.rectangle()
,cv.sllipse()
,cv.putText()
等
2. 常见参数
img
:绘制形状的图像
color
:形状的颜色,作为元组传递
厚度:线或圆等的粗细。对闭合图形传递-1,填充形状,默认厚度为1
lineType
:线的类型,是否为8连接线,抗锯齿线等。cv.LINE_AA
。
3. 绘制各类几何图形
要绘制一条线,传递线开始和结束的坐标。创建一个黑色的图像,并从左上角到右下角绘制一条直线。
# 绘制一条厚度为5的蓝色对角线
cv.line(img, (0, 0), (511, 511), (48, 137, 186), 5)
要绘制一个矩形,传递矩形的左上角和右下角的坐标,其他参数类似。
# 绘制矩形
cv.rectangle(img, (384, 0), (510, 128), (156, 123, 212), 3)
要绘制一个圆,需要确定其中心和半径,其他参数类似。
# 绘制圆形
cv.circle(img, (447, 63), 63, (64, 172, 255), -1)
要绘制一个椭圆,需要确定中心的坐标,和长短轴的长度,angle
是椭圆沿逆时针方向旋转的角度。startAngle
和EndAngle
表示从主轴沿顺时针方向测量的椭圆弧的开始和结束。即给出0和360给出完整的椭圆。
# 绘制椭圆
cv.ellipse(img, (256, 256), (100, 50), 0, 0, 360, (112, 24, 36), -1)
如果要绘制多边形,首先需要确定各个顶点的坐标,创建一个ROW*1*2
的数组,其中ROW
是顶点数,并且类型为int32
。
# 绘制多边形
pts = np.array([[100, 50], [50, 230], [270, 480], [480, 100]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0, 255, 255))
如果要绘制文本,首先需要设置字体格式font
,并调用cv.putText()
函数,第一个参数是图像名称,第二个参数是文本内容,第三个参数是文本的起始位置,第四个参数是字体的格式,第五个参数是字体的大小,第六个参数是字体的颜色。为了获得更好的外观,我们使用lineType=cv.LINE.AA
# 绘制文本
font = cv.FONT_HERSHEY_COMPLEX
cv.putText(img, 'discipline', (10, 500), font, 2, (255, 255, 255), 2, cv.LINE_AA)
在完成上述代码之后,效果如下图所示:
4. 附录(完整代码)
import numpy as np
import cv2 as cv
if __name__ == "__main__":
# 创建黑色的图像
img = np.zeros((512, 512, 3), np.uint8)
# 绘制一条厚度为5的蓝色对角线
cv.line(img, (0, 0), (511, 511), (48, 137, 186), 5)
# 绘制矩形
cv.rectangle(img, (384, 0), (510, 128), (156, 123, 212), 3)
# 绘制圆形
cv.circle(img, (447, 63), 63, (64, 172, 255), -1)
# 绘制椭圆
cv.ellipse(img, (256, 256), (100, 50), 0, 0, 360, (112, 24, 36), -1)
# 绘制多边形
pts = np.array([[100, 50], [50, 230], [270, 480], [480, 100]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0, 255, 255))
# 绘制文本
font = cv.FONT_HERSHEY_COMPLEX
cv.putText(img, 'discipline', (10, 500), font, 2, (255, 255, 255), 2, cv.LINE_AA)
cv.imshow('drawing', img)
cv.waitKey(0)
cv.destroyAllWindows()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!