Opencv(Python版)-2 在OpenCV中绘制函数

学习使用OpenCV绘制不同的几何形状
学习以下函数:cv2.line(),cv2.circle(),cv2.rectangle(),cv2.ellipse(),cv2.putText()等。
drawing_opencv

创建画板

# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)

画线

# 画一条厚度为5像素的蓝色斜线
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

绘制矩形

# 绘制矩形,需要矩形的左上角和右下角。这次我们将在图像的右上角绘制一个绿色矩形。
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

绘制圆

# 绘制圆,需要其中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。
img = cv2.circle(img,(447,63), 63, (0,0,255), -1)

绘制椭圆

# 要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。
# 下一个参数是轴长度(长轴长度,短轴长度)。角度是椭圆在逆时针方向上的旋转角度。
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

绘制多边形

# 要绘制多边形,首先需要顶点坐标。
# 将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数,它应该是int32类型。
# 在这里,我们绘制一个带有四个黄色顶点的小多边形。
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
# 如果第三个参数为False,将获得连接所有点的折线,而不是闭合形状。
img = cv2.polylines(img,[pts],True,(0,255,255))

向图像添加文字

# 向图像添加文字:
# 要将文本放入图像中,您需要指定以下内容。
# 要写入的文本数据
# 想要放置它的位置坐标(即数据开始的左下角)。
# 字体类型(检查支持字体的cv2.putText()文档)
# 字体缩放(指定字体大小)
# 常见的事情,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv2.LINE_AA。
# 我们将以白色在我们的图像上编写OpenCV。
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

从上到下向画板添加图形
drawing
最后的效果
drawing_opencv

将每一步的结果显示出来

import numpy as np
import cv2

# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)
cv2.imshow('img1',img)

# 画一条厚度为5像素的蓝色斜线
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('img2',img)

# 绘制矩形,需要矩形的左上角和右下角。这次我们将在图像的右上角绘制一个绿色矩形。
img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.imshow('img3',img)

# 绘制圆,需要其中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。
img = cv2.circle(img,(447,63), 63, (0,0,255), -1)
cv2.imshow('img4',img)

# 绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。
# 下一个参数是轴长度(长轴长度,短轴长度)。角度是椭圆在逆时针方向上的旋转角度。
img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
cv2.imshow('img5',img)

# 绘制多边形,首先需要顶点坐标。
# 将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数,它应该是int32类型。
# 在这里,我们绘制一个带有四个黄色顶点的小多边形。
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
# 如果第三个参数为False,将获得连接所有点的折线,而不是闭合形状。
img = cv2.polylines(img,[pts],True,(0,255,255))
cv2.imshow('img6',img)

# 向图像添加文字:
# 要将文本放入图像中,您需要指定以下内容。
# 要写入的文本数据
# 想要放置它的位置坐标(即数据开始的左下角)。
# 字体类型(检查支持字体的cv2.putText()文档)
# 字体缩放(指定字体大小)
# 常见的事情,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv2.LINE_AA。
# 我们将以白色在我们的图像上编写OpenCV。
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
cv2.imshow('img7',img)
cv2.waitKey(0)
cv2.destroyWindow()

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值