OpenCV-Python官方教程-02-绘图工具(线、矩阵、圆、椭圆、多边形,添加文字,填充多边形)

Opencv中绘图工具(线、矩形、圆、椭圆、多边形、添加文字、填充多边形):

这里用到了三个函数:cv2.line();cv2.rectangle();cv2.circle();cv2.ellipse();cv2.putText(); cv2.polylines(); cv2.fillConvexPoly();cv2.fillPoly()

  • cv2.line(img,dot1,dot2,color,thickness)
  • cv2.rectangle(img,dot1,dot2,color,thickness):dot1是左上角点的坐标(xmin,ymin),dot2是右下角点的坐标(xmax,ymax)。
  • cv2.circle(img,center,radius,color,thickness):center是圆心的坐标,radius是半径,thickness=-1代表圆是实心的
  • cv2.ellipse(img,center,axes,angle,startAngle,endAngle,color,thickness):center是中心坐标,axes是(长轴长度,短轴长度),angle是椭圆在逆时针的旋转角度,startAngle是主轴顺时针方向测量的椭圆弧的起点,endAngle是主轴顺时针方向测量的椭圆弧的终点。
  • cv2.polylines(img,[pts],bool,color,thickness):pts一系列点的坐标,bool值如果是False就是开口多条线,如果是True就是闭合多边形。
  • cv2.putText(img,str,dot,font,size,color,thickness):str是你要添加的文字,dot文字位置坐标,font文字字体,size文字大小。
  • cv2.fillConvexPoly(img,pts,color):pts是一系列点的坐标,例如triangle = np.array([[0, 0], [1500, 800], [500, 400]])。
  • cv2.fillPoly(img,[pts1,pts2,pts3…],color):pts1第一个多边形的点,pts2第二个多边形的点,pts3第三个多边形的点…

下面看一下示例代码:

import cv2
import numpy as np

img = np.zeros((512,512,3),np.uint8)
#画线
cv2.line(img,(0,0),(512,512),(255,0,0),5)
#画矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
#画圆
cv2.circle(img,(447,63),63,(0,0,255),-1)
#画椭圆
cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
#画多边形
pts=np.array([[10,5],[300,256],[70,20],[50,10]], np.int32)
pts=pts.reshape((-1,1,2))
cv2.polylines(img,[pts],False,(0,255,0),3)#False:开口即多条线
#在图片上添加文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'opencv',(10,500),font,4,(255,255,255),2)

cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV-Python官方教程-02-绘图工具(线、矩阵、圆、椭圆、多边形,添加文字,填充多边形)_第1张图片
2.

img = np.zeros((512,512,3),np.uint8)
# #填充单个多边形
rect1 = np.array([[400,400],[400,500],[500,500],[500,400]])
cv2.fillConvexPoly(img,rect1,(0,255,0))
# #填充多个多边形
triangle = np.array([[440,100 ], [200, 300], [500, 400]])
rect = np.array([[20,20],[20,400],[400,400],[400,20]])
cv2.fillPoly(img,[triangle,rect],(255,255,0))
cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV-Python官方教程-02-绘图工具(线、矩阵、圆、椭圆、多边形,添加文字,填充多边形)_第2张图片

你可能感兴趣的:(经典图像处理,Opencv,opencv绘图工具)