欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenCv(绘图)-线性,圆,椭圆,多边形,文本

程序员文章站 2022-03-31 19:52:16
...

导包

import numpy as np
import cv2 as cv

绘制图像

#创建一个512*512的空灰度框图,后面的操作都在此框图上操作
img = np.zeros((512,512,3),np.uint8)
#绘制一条蓝色直线,第一个参数为绘制对象,第二个参数为起点,第三个参数未终点,第四个参数厚度,即线条的宽度
#注意:框图左上角为坐标轴的中心原点,向下延伸为y轴的正方向,向右延伸为x轴的正方向
cv.line(img,(0,0),(511,511),(255,0,0),5)
#绘制矩形
cv.rectangle(img,(384,0),(510,128),(0,250,0),3)
#绘制圆,圆心:(447,63),半径:63,-1:将颜色全部填充与圆内(若将-1去掉,则只有圆的轮廓),默认厚度为1
cv.circle(img,(447,63),63,(0,0,255),-1)
#椭圆中心:(256,256),(椭圆长轴长度,椭圆短轴长度):(100,50)
#第一个0:图形偏转角度(类比图形旋转),第二个0:图形起始角度,180:图形终止角度(本例为0-180:半个椭圆)
#255:默认颜色为B通道的值,可以自己去调节颜色,用三通道也可以
#-1:填充椭圆内部
cv.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
#选取多边形顶点,并用数组存储,int32为存取数字类型
pts = np.array([[10,5],[20,30],[70,20],[50,10]],np.int32)
#第一个参数为-1,表示此参数由后面参数决定,比如后面为一行两列,那么第一个参数为2,代表两行两列
pts = pts.reshape((-1,1,2))
#img:图像名称,[pts]:顶点,True:表示闭合
cv.polylines(img,[pts],True,(0,255,255))
#使用默认字体
font = cv.FONT_HERSHEY_COMPLEX
#img:绘制图像,'OENCV':绘制文本内容,(10,500):文本框的左下角
#4:尺寸因子,值越大,尺寸越大,(255,255,255):颜色,2:线条厚度,cv.LINE_AA:线条类型
cv.putText(img,'OPENCV',(10,500),font,4,(255,255,255),2,cv.LINE_AA)

框图显示

#建立空窗口,此方法加载的图像可以调整窗口的大小
cv.namedWindow('image',cv.WINDOW_NORMAL)
#显示图像
cv.imshow('image',img)
#窗口暂停
cv.waitKey(0)
#为了可以关闭窗口
cv.destroyAllWindows()