一、线段绘制
cv2.line(dst,(100,100),(400,400),(0,0,255),2,cv2.LINE_AA)
参数一:目标图片数据
参数二:当前线段绘制的起始位置(也就是两点确定一条直线)
参数三:当前线段绘制的终止位置(也就是两点确定一条直线)
参数四:当前线段颜色(B,G,R)
参数五:当前线段的宽度
参数六:设置当前线段的类型
import cv2
import numpy as np
newImageInfo = (500,500,3)#目标图片的大小
dst = np.zeros(newImageInfo,np.uint8)#创建一个目标图片#绘制线段
cv2.line(dst,(100,100),(400,400),(0,0,255))
cv2.line(dst,(100,200),(400,200),(0,255,0),5)
cv2.line(dst,(100,300),(400,300),(255,0,0),20,cv2.LINE_AA)
#当然,也可以实现三角形、矩形等形状的绘制,也无非多几条线段而已
cv2.imshow('dst',dst)
cv2.waitKey(0)
效果图如下:
二、矩形、圆形以及任意多边形的绘制
cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)
参数一:当前的目标图片
参数二:矩形左上角的起始点
参数三:矩形右下角位置
参数四:矩形颜色
参数五:是否填充;-1需要填充;其他正值为矩形边缘宽度
cv2.circle(dst,(250,250),(50),(0,255,0),2)
参数一:当前的目标图片
参数二:圆心的位置
参数三:圆的半径
参数四:绘制圆的线条颜色
参数五:是否填充;若为-1表示填充;若为其他正值表面线条宽度
cv2.ellipse(dst,(256,256),(150,100),0,0,180,(255,255,0),-1)
参数一:当前的目标图片
参数二:椭圆形的圆形
参数三:轴的长度,因为椭圆有俩轴,所以有两个值
参数四:偏转角度
参数五:圆弧的起始角度
参数六:圆弧的终止角度
参数七:线条颜色
参数八:是否填充;若为-1表示填充;若为其他正值表面线条宽度
import cv2
import numpy as np
newImageInfo = (500,500,3)
dst = np.zeros(newImageInfo,np.uint8)#绘制矩形
cv2.rectangle(dst,(50,100),(200,300),(255,0,0),-1)#绘制圆形
cv2.circle(dst,(250,250),(50),(0,255,0),2)#椭圆形、扇形、圆弧
cv2.ellipse(dst,(256,256),(150,100),0,0,180,(255,255,0),-1)#任意多边形
points = np.array([[150,50],[140,140],[200,170],[250,250],[150,50]],np.int32)
#print(points.shape)
points = points.reshape((-1,1,2))
#print(points.shape)
cv2.polylines(dst,[points],True,(0,255,255))cv2.imshow('dst',dst)
cv2.waitKey(0)
效果图如下:
三、文字图片绘制
cv2.rectangle(img,(20,20),(250,250),(0,255,0),3)
参数一:原图像
参数二:方框的起始位置
参数三:方框的终止位置
参数四:方框颜色
参数五:是否填充;若为-1表示填充;若为其他正值表面线条宽度
cv2.putText(img,'this is a cat',(45,45),font,1,(0,0,255),2,cv2.LINE_AA)
参数一:目标图片
参数二:文字的内容
参数三:写入的坐标
参数四:字体类型
参数五:字体大小
参数六:字体颜色
参数七:字体粗细
参数八:字体线条类型
import cv2
import numpy as np
img = cv2.imread('E:\Jupyter_workspace\study\data/cat.png',1)
font = cv2.FONT_HERSHEY_SIMPLEX#选择字体
cv2.rectangle(img,(20,20),(250,250),(0,255,0),3)#画一个小方框
cv2.putText(img,'this is a cat',(45,45),font,1,(0,0,255),2,cv2.LINE_AA)
cv2.imshow('src',img)
cv2.waitKey(0)
效果图如下:
cv2.resize(img,(width,height))
参数一:所选取的照片
参数二:将该照片的宽高
import cv2
img = cv2.imread('E:\Jupyter_workspace\study\data/cat.png',1)
height = int(img.shape[0]*0.2)
width = int(img.shape[1]*0.2)
imgResize = cv2.resize(img,(width,height))
for i in range(0,height):for j in range(0,width):img[i+10,j+20] = imgResize[i,j]
cv2.imshow('src',img)
cv2.waitKey(0)
效果图如下: