OpenCV-Python|Gui模块 — 画图函数介绍

OpenCV-Python|Gui模块 — 画图函数介绍

前言

OpenCV-Python Gui模块主要是实现一些图形用户接口,例如创建窗口显示图像、画图、鼠标事件等。

代码

我们先来看一下在画图函数中出现的一些通用参数:

  • img: 用来画不同几何形状的图像
  • color: 图形的颜色。对于BGR图像,是一个数组,例如(255,0,0)表示蓝色。对于灰度图像是灰度值。
  • thickness: 线条或⚪的粗细。-1表示图形闭合,例如对于⚪会画成实心的⚫。默认值是1。
  • lineType: 线条类型,例如cv.LINE_8、cv.LINE_AA等。默认是cv.LINE_8。cv.LINE_AA表示抗锯齿线,画曲线较好。

画图举例:

import numpy as np
import cv2 as cv

# 创建一幅黑色图
img = np.zeros((512, 512, 3), np.uint8)

# 画一条对角蓝线,粗细为5
cv.line(img, pt1=(0,0), pt2=(511,511), color=(255,0,0), thickness=5)

# 在图像右上角画一个绿色矩形
cv.rectangle(img, pt1=(384,0), pt2=(510,128), color=(0,255,0), thickness=3)

# 在矩形内画一个实心圆
cv.circle(img, center=(447,63), radius=63, color=(0,0,255), thickness=-1)

# 在图像中心画半个椭圆
cv.ellipse(img, center=(256,256), axes=(100,50), angle=0, startAngle=0, endAngle=180, color=255, thickness=-1)

# 画一个有四个顶点的黄色多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv.polylines(img, [pts], True, (0,255,255))

# 添加文本
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, 'OpenCV', (10,500), font, 4, (255,255,255), 2, cv.LINE_AA)

cv.imshow('drawing', img)
cv.waitKey(0)

画线条
对于线条,需要传入线条的起始端点和结束端点。

cv.line(img, pt1=(0,0), pt2=(511,511), color=(255,0,0), thickness=5)

画矩形
对于矩形,需要传入矩形的左上角坐标和右下角坐标。

cv.rectangle(img, pt1=(384,0), pt2=(510,128), color=(0,255,0), thickness=3)

画圆
对于圆,需要圆心坐标和半径。

cv.circle(img, center=(447,63), radius=63, color=(0,0,255), thickness=-1)

画椭圆
对于椭圆,需要传入的参数有中心坐标,长轴和短轴,angle是逆时针方向的旋转角,而startAngle和endAngle表示椭圆从顺时针方向的起始位置和终止位置,例如startAngle=0和endAngle=360给出整个椭圆。

cv.ellipse(img, center=(256,256), axes=(100,50), angle=0, startAngle=0, endAngle=180, color=255, thickness=-1)

画多边形
对于多边形,需要顶点坐标。要求点的坐标形状为 ROWSx1x2,类型为int32。第三个参数表示是否闭合。

cv.polylines(img, [pts], True, (0,255,255))

添加文本
需要的参数:

  • text: 文本字符串
  • org: 文本的左下角起始坐标
  • FontFace: 字体类型
  • FontScale: 字体大小
  • color、thickness、lineType等。
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, 'OpenCV', (10,500), font, 4, (255,255,255), 2, cv.LINE_AA)

运行结果:
在这里插入图片描述

参考

https://docs.opencv.org/4.4.0/dc/da5/tutorial_py_drawing_functions.html.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值