opencv绘制图形

1.绘制圆

cv.circle(img,centerpoint,r,color,thickness)

参数

img 要绘制圆形的图像

centerpoint,r 圆心和半径

color 线条颜色

thickness 线条宽度,为-1时生成闭合图案并补充颜色

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
#创建图像
img=np.zeros((512,512,3))
#在图像中绘制圆
cv.circle(img,(256,256),60,(255,0,255),-5)#5表示空心圆
#显示图像
plt.imshow(img[:,:,::-1])
plt.show()

2.绘制直线

img = cv2.line(img, pt1, pt2, color, thickness)

参数

img:画布。 pt1:线段的起点坐标。 pt2:线段的终点坐标。 color:绘制线段时的线条颜色。 thickness:绘制线段时的线条宽度。

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
#创建图像
img=np.zeros((512,512,3))
#在图像中绘制直线
cv.line(img,(0,0),(511,511),(255,0,0),5)
plt.imshow(img[:,:,::-1])
plt.show()

3.绘制矩形

cv.rectangle(img,leftupper,rightdown,color,thickness)

参数

img 要绘制矩形的图像

leftupper,rightdown 矩形的左上角和右下角坐标

color 线条颜色

thickness 线条宽度

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img=np.zeros((512,512,3))
#在图像中绘制矩形
cv.rectangle(img,(100,100),(400,400),(0,255,0),5)
plt.imshow(img[:,:,::-1])
plt.show()

4.多边形的绘制

cv.polylines(img,pts,isClosed,color,thickness)

参数:

img:图像

pts:由多边形各个顶点的坐标组成的一个列表,这个列表是一个numpy的数组类型

isColsed:如果结果为true,表示一个闭合的多边形,false表示不闭合的多边形

color:线条颜色

thichness:线条宽度

实操代码如下:

import cv2 as cv
import matplotlib.pyplot as pl
import numpy as np
arr=np.zeros((300,300,3),np.uint8)#创建画布
pts=np.array([[100,50],[200,50],[250,250],[50,250]],np.int32)#按顺时针给出等腰梯形的四个顶点
img=cv.polylines(arr,[pts],True,(0,0,255),5)
pl.imshow(img[:,:,::-1])
pl.show()

5.绘制文字

cv.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)参数img:画布

text:要绘制文字内容

org:文字在画布中的左下角坐标

fontFace:字体样式

fontScale:字体大小

color:字体颜色

thickness:文字线条宽度

lineType:线型(线的产生算法,有4和8两个值,默认为8)

bottomLeftOrigin:绘制文字时的方向,有True,flase默认为flase

字体参数:

cv.FONT_HERSHEY_COMPLEX            #正常大小的serif字体
cv.FONT_HERSHEY_SIMPLEX            #正常大小的sans-serif字体
cv.FONT_HERSHEY_DUPLEX             #正常大小的serif字体,比FONT_HERSHEY_SIMPLEX复杂
cv.FONT_HERSHEY_PLAIN              #小号的serif字体
cv.FONT_HERSHEY_COMPLEX_SMALL      #FONT_HERSHEY_COMPLEX字体样式的简化版
cv.FONT_HERSHEY_SCRIPT_COMPLEX     #是手写字体的进阶版
cv.FONT_HERSHEY_SCRIPT_SIMPLEX     #手写字体
cv.FONT_HERSHEY_TRIPLEX            #正常大小的serif字体,比FONT_HERSHEY_COMPLEX更复杂
cv.FONT_ITALIC                     #斜体
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img=np.zeros((512,512,3))
#在图像中绘制文字
cv.putText(img,"cv2",(100,150),cv.FONT_HERSHEY_COMPLEX,5,(255,255,255),3)
plt.imshow(img[:,:,::-1])
plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值