【OpenCV】2 图像基本处理(画矩形/圆等形状+添加文字)


重点: 2.3添加文字:

  • 函数: cv2.putText(img,‘OpenCV’,(50,200), font, 3,(0,255,255),5,cv2.LINE_AA)
  • 参数: 背景图;文本;文字起始坐标(左下角为起点);字体;文字大小;颜色;线条宽度;线条形状;
  • 说明: opencv-python库的cv2.putText()不支持汉字,会出现???

1 绘制直线/矩形/圆/椭圆/多边形api

  • 1、线段绘制
    • 函数:cv2.line(img,pts, color,thickness,linetype)
    • 参数:背景图 ;起点和终点;颜色;线粗;线条类型
  • 2、矩形绘制(重点)
    • 函数:cv2.rectangle(img,prets, color,thickness, linetype)
    • 参数:背景图;左上角坐标,右下角坐标;颜色;线粗;线段类型
  • 3、圆绘制
    • 函数:cv2.circle(img,pts, radius,color,thickness, linetype)
    • 参数:背景图;圆心;半径;颜色;线粗;线段类型
  • 4、椭圆绘制
    • 函数:cv2.ellipse(img, (x,y),(long,short),angle,startAngle,endAngle,color,)
    • 参数:图像;中心点坐标;长轴,短轴;旋转角度椭圆的起始角度;终止;颜色
    • 旋转角度指长轴与水平夹角
  • 5、多边形
    • 函数:cv2.polylines(img,pts,isClosed,color,thickness,lineType)
    • 参数:图像;点坐标;是否闭合,True为闭合,False不闭合;颜色;线粗;线类型

2代码实现

2.1绘制直线/矩形/圆/椭圆

import numpy as np
import cv2
# 创建黑色背景
img = np.zeros((512,512,3), np.uint8)
cv2.imshow('black', img)
cv2.waitKey(0);cv2.destroyWindow('black')
# ========= 1、绘制直线cv2.line()  ================#
# 参数:背景图 ;起点和终点;颜色;线粗;线条类型
cv2.line(img, (0,0), (200,500),(0,255,0),5)

# ========= 2、绘制矩形cv2.rectangle() ================#
# 背景图;左上角坐标,右下角坐标;颜色;线粗;线段类型
cv2.rectangle(img,(384,0),(510,128),(0,255,255),1)

# ========= 3、绘制圆 cv2.circle()==================#
# 参数:背景图;圆心;半径;颜色;线粗;线段类型
cv2.circle(img, (447, 63),63, (0,0,255),-1)

# ========= 4、椭圆绘制 cv2.ellipse()=================#
# 参数:背景图;中心点坐标;长轴,短轴;椭圆的旋转角度;椭圆的起始角度;终止;颜色
cv2.ellipse(img, (256,256), (100, 50), 0, 0 , 360,(255,0,0),-1)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0);cv2.destroyWindow(winname)

2.2多边形绘制cv2.polylines()

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 定义四个顶点坐标
pts = np.array([[10, 5],  [50, 10], [70, 20], [20, 30]])
print(pts)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
print(pts)
#绘制多边形
cv2.polylines(img, [pts], False, (0, 255, 255))
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

2.3 添加文字cv2.putText()

  • 函数: cv2.putText(img,‘OpenCV’,(50,200), font, 3,(0,255,255),5,cv2.LINE_AA)
  • 参数: 背景图;文本;文字起始坐标(左下角为起点);字体;文字大小;颜色;线条宽度;线条形状;
import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

#添加文字
font=cv2.FONT_HERSHEY_SIMPLEX
# 背景图;文本;文字起始坐标(左下角为起点);字体;文字大小;颜色;线条宽度;线条形状;
cv2.putText(img,'OpenCV',(50,200), font, 3,(0,255,255),5,cv2.LINE_AA)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

猜你喜欢

转载自blog.csdn.net/weixin_44994302/article/details/121152390
今日推荐