python画圆及其内接多边形_opencv python 画图操作/画线/画矩形/画圆/画多边形/添加文字...

Drawing Functions in OpenCV

学习目标函数

cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putText() etc

参数介绍

img:需要绘制形状的图像

color:颜色的形式. 对于BGR,将作为元组传递比如(255,0,0)表示蓝色.对于灰度图,只需要传递标量值.

thickness:线或圆形等图像的厚度.如果对闭合图像像圆形传递“-1”,它将填充形状. 默认厚度 = 1.

lineType:线的类型.默认情况下,它是8连接的.cv2.LINE_AA是适合曲线的抗锯齿线.

1画线

cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

pt1:直线起点

pt2:直线终点

应用

我们将创建一个黑色图像,并在其上从左上角到右下角绘制一条蓝线。

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

# Draw a diagonal blue line with thickness of 5 px

cv2.line(img,(0,0),(511,511),(255,0,0),5)

cv2.imshow('line',img)

cv2.waitKey()

2绘制矩形

cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

pt1:矩形左上角坐标

pt2:矩形右下角坐标

应用

在图像的右上角绘制一个绿色矩形。

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.imshow('line',img)

cv2.waitKey()

3画圆

cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

center:圆心位置

radius:半径

应用

在上面绘制的矩形内绘制一个圆。

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.circle(img,(447,63), 63, (0,0,255), -1)

cv2.imshow('line',img)

cv2.waitKey()

4绘制椭圆

cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

center:中心位置

axes:轴长度(长轴长度,短轴长度)

angle:椭圆在逆时针方向上的旋转角度

startAngle:主轴顺时针方向测量的椭圆弧的起点

endAngle:主轴顺时针方向测量的椭圆弧的终点

应用

在图像的中心绘制一个半椭圆。

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

cv2.imshow('line',img)

cv2.waitKey()

5绘制多边形

cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

要绘制多边形,首先需要顶点坐标.将这些点转换为ROWSx1x2形状的数组,其中ROWS是顶点数,它应该是int32类型.

应用

绘制一个带有四个黄色顶点的小多边形.

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)

pts = pts.reshape((-1,1,2))

cv2.polylines(img,[pts],True,(0,255,255))

cv2.imshow('line',img)

cv2.waitKey()

Note:

如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状.

cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将单独绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.

6向图像添加文字

向图像添加文字:

cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

要将文本放入图像中,您需要指定以下内容。

text:要写入的文本数据

org:您想要放置它的位置坐标(即数据开始的左下角)。

fontFace:字体类型(检查cv2.putText()文档以获取支持的字体)

fontScale:字体比例(指定字体大小)

•常规的东西,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv.LINE_AA。

应用

我们将在图像上写白色的opencv几个字母.

代码 :

import numpy as np

import cv2

# Create a black image

img = np.zeros((512,512,3), np.uint8)

font = cv2.FONT_HERSHEY_SIMPLEX

cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

cv2.imshow('show',img)

cv2.waitKey()

文章来源:segmentfault,作者:sakurala。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

3bd16c71c09c78ecd52251f00b4c6dfa.png

后台-系统设置-扩展变量-手机广告位-内容正文底部

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值