3.opencv常用操作

 一、绘制线段

cv2.line()

参数说明:

  • img:图像
  • color:线条颜色,元组形式。
  • pts:起始点
  • thickness:线条的粗细。-1为填充,默认为1。
  • linetype:线条类型。8型或者cv2.LINE_AA,默认为8型。
import cv2
import numpy as np

img = np.zeros((512,512,3), np.uint8)
cv2.line(img, (0,0), (511,511), (255,0,0), 5)  # 起始点,颜色,线条
cv2.imshow("example",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 二、绘制矩形

cv2.rectangle()

参数说明:

  • img:图像
  • pts:左上角和右下角坐标点
  • color:颜色,元组形式。
  • thickness:线条的粗细。-1为填充,默认值为1。
  • linetype:线条的类型,使用默认值即可。
import cv2
import numpy as np
img = np.zeros((512,512,3),np.uint8)

cv2.rectangle(img,(0,0),(122,122), (255,0,0),3)  # 左上角+右下角坐标,颜色,粗细
cv2.imshow("example", img)
cv2.waitKey(0)
cv2.destroyWindow()

三、画圆

 cv2.circle()

参数说明:

  • img:图像
  • pts:圆心
  • radius:半径
  • color:颜色
  • thickness:线条粗细。-1为填充,默认值为1。
  • linetype:线条类型,使用默认值即可。
import cv2
import numpy as np
img = np.zeros((255,225,3),np.uint8)
cv2.circle(img,(122,122),64,(0,255,255),-1) # -1表示填充
cv2.imshow("exmple",img)
cv2.waitKey(0)
cv2.destroyWindow()

四、绘制椭圆

cv2.ellipse()

参数说明:

  • 参数1:图片
  • 参数2:椭圆中心点
  • 参数3:x/y轴的长度
  • 参数4:angle--椭圆的旋转角度
  • 参数5:startAngle-椭圆的起始角度
  • 参数6:endAmgle-椭圆的结束角度
import cv2
import numpy as np

img = np.zeros((255, 255, 3), np.uint8)
# 中心点+长短轴+旋转角度+起始角度+终止角度
cv2.ellipse(img, (122, 122), (50, 10), 0, 0, 180, (255, 0, 0), -1) 
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyWindow()

五、绘制多边形

cv2.polylines()

参数说明:

  • 参数1:图片
  • 参数2:pts,表示的是点对
  • 参数3:isClosed,布尔型,Ture表示的是线段闭合,False表示的是仅保留线段
  • 参数4:color,线段的颜色,格式是(R,G,B)值
  • 参数5:thickness,线段粗细
  • 参数6:lineType,线型
import cv2
import numpy as np

img = np.zeros((255,255,3), np.uint8)
pts = np.array([[10,5], [50,10], [70,20], [20,30]])
print(pts.shape)

# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
print(pts.shape)

cv2.polylines(img,[pts],True,(0,255,0)) # Ture表示线段闭合
cv2.imshow("example",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

六、添加文字

cv2.putText()

参数说明:

  • 参数1:图片
  • 参数2:要添加的文字
  • 参数3:文字的起始位置,左下角为起点
  • 参数4:字体
  • 参数5:文字大小(缩放比例)
  • 参数6:颜色
  • 参数7:线条宽高
  • 参数8:线条形状
import cv2
import numpy as np

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

font = cv2.FONT_HERSHEY_SCRIPT_SIMPLEX  # 设置字体
cv2.putText(img, "hello", (10, 110), font, 3, (255, 255, 0), 2, cv2.LINE_AA)  

cv2.imshow("example", img)
cv2.waitKey(0)
cv2.destroyWindow()

 综合案例:

import cv2
import numpy as np

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

# 绘制直线
cv2.line(img, (0, 0), (255, 255), (255, 255, 0), 1)

# 绘制矩形
cv2.rectangle(img, (10, 10), (30, 20), (0, 255, 0), 3)

# 绘制圆形
cv2.circle(img, (120, 122), 23, (0, 255, 0), -1)

# 绘制椭圆
cv2.ellipse(img, (220, 220), (100, 50), 0, 0, 320, (250, 250, 0), -1)

# 绘制多边形
pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]])
pts.reshape([-1, 1, 2])
cv2.polylines(img, [pts], True, (0, 0, 255), 2)

# 添加文字
font = cv2.FONT_HERSHEY_SCRIPT_SIMPLEX
cv2.putText(img, "opencv", (100, 50), font, 4, (255, 250, 10), 2)

cv2.imshow("example", img)
cv2.waitKey(0)
cv2.destroyWindow()

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值