【深度之眼opencv-2】:图像基本操作-绘图&几何变换

本文详细介绍了使用OpenCV进行图像的基本操作,包括绘图函数(线段、矩形、圆、椭圆、多边形及添加文字)和图像的几何变换(平移、缩放、旋转、镜像、放射变换及透视变换)。通过实例讲解了各函数的参数及使用方法,帮助读者掌握图像处理的核心技巧。
摘要由CSDN通过智能技术生成

绘图函数

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, (
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值