目录
- 绘图函数
-
- 1:线段绘制--`cv2.line(img, pts, color, thickness, linetype)`
- 2:矩形绘制-`cv2.rectangle(img, prets, color, thickness, linetype) `
- 3:圆、椭圆绘制-`cv2.circle() & cv2.ellipse()`
- 4:多边形绘制-`cv2.polylines(img,pts,isClosed,color,thick ness,lineType)`
- 5:添加文字-`cv2.putText()`
- 综合效果
- 图像的几何变换
-
- 1:平移-`cv2.warpAffine(src, M, dsize, flags, borderMode, borderValue)`
- 2:缩放-`cv2.resize(src,dsize=None,fx,fy,interpolation)`
- 3:旋转-`cv2.getRotationMatrix2D(center, angle, scale) & cv2.cv2.warpAffine()`
- 4:镜像
- 5:放射变换-`cv2.getAffineTransform(pos1,pos2) & cv2.warpAffine()`
- 6:透视变换-`cv2.getPerspectiveTransform(pos1, pos2) & cv2.warpAffine()`
- 综合效果
- 文档矫正
绘图函数
1:线段绘制–cv2.line(img, pts, color, thickness, linetype)
- 函数:cv2.line(img,pts, color,thickness, linetype)
- 参数说明:
• img:待绘制图像
• color:形状的颜色,元组如(255,0,0)。
• pts:起点和终点
• thickness:线条的粗细。 -1为填充,默认值是 1.
• linetype:线条的类型,8型或cv2.LINE_AA, 默认值为8型。
# 绘制一条线宽为5的线段
cv2.line(img,(0,0),(200,500),(0,0,255),5)
2:矩形绘制-cv2.rectangle(img, prets, color, thickness, linetype)
- 函数:cv2.rectangle(img,prets, color, thickness, linetype)
- 参数说明:
• img:待绘制图像;
• pts:左上角和右下角坐标点;
• color:形状的颜色,元组如(255,0,0);
• thickness:线条的粗细。 -1为填充,默认值是 1;
• linetype:线条的类型,使用默认值即可;
# 画一个绿色边框的矩形,参数2:左上角坐标,参数3:右下角坐标
cv2.rectangle(img,(384,0),(510,128),(0,255,255),1)
3:圆、椭圆绘制-cv2.circle() & cv2.ellipse()
- 函数:cv2.circle(img, pts, radius, color, thickness, linetype)
- 参数说明:
• img:待绘制图像。
• pts:圆心。
• radius:半径。
• color:颜色。
• thickness:线条的粗细。 -1为填充,默
认值是 1。
• linetype:线条的类型,使用默认值即可。
# 画一个填充红色的圆,参数2:圆心坐标,参数3:半径
cv2.circle(img,(447,63), 63, (0,0,255), -1)
- 函数:cv2.ellipse()
画椭圆需要的参数比较多,请对照后面的代码理解这几个参数.
- 参数说明:
参数2:椭圆中心(x,y)
参数3:x/y轴的长度
参数4:angle–椭圆的旋转角度
参数5:startAngle–椭圆的起始角度
参数6:endAngle–椭圆的结束角度
# 在图中心画一个填充的半圆
cv2.ellipse(img, (256, 256), (100, 50), 0, 30, 180, (255, 0, 0), -1)
4:多边形绘制-cv2.polylines(img,pts,isClosed,color,thick ness,lineType)
- 函数: cv2.polylines(img,pts,isClosed,color,thick ness,lineType)
- 参数说明:
参数1:img图像,表示你要在哪张图像上画线
参数2:pts,表示的是点对,形式如下:
参数3:isClosed,布尔型,True表示的是线段 闭合,False表示的是仅保留线段
参数4:color,线段颜色,格式是(R,G,B)值
参数5:thickness, 数值型,线宽度,默认值为 1,-1则会填充整个图形;
参数6:lineType,线型;
# 绘制多边形
# 定义四个顶点坐标
pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], False, (0, 255, 0))
5:添加文字-cv2.putText()
- 函数:cv2.putText()
- 参数:
参数2:要添加的文本
参数3:文字的起始坐标(左下角为起点)
参数4:字体
参数5:文字大小(缩放比例)
参数6:颜色
参数7:线条宽度
参数8:线条形状
# 添加文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'OpenCV', (50, 200), font, 3, (0, 255, 255), 5)
综合效果
import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
# 线段,参数2:左上角坐标,参数3:右下角坐标
cv2.line(img, (0, 0), (200, 500), (0, 0, 255), 5)
# 画一个矩形,参数2:左上角坐标,参数3:右下角坐标
cv2.rectangle(img, (