当前位置: 首页 > article >正文

OpenCV学习(二)——OpenCV中绘图功能

    • 2. OpenCV中绘图功能
      • 2.1 画线
      • 2.2 画矩形
      • 2.3 画圆
      • 2.4 画多边形
      • 2.5 添加文本

2. OpenCV中绘图功能

绘图可以实现画线、画矩形、画圆、画多边形和添加文本等操作。

import cv2
import numpy as np

# 读取图像
img = cv2.imread('lena.jpg')

# 画直线
cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5)

# 画矩形
cv2.rectangle(img, (100, 150), (150, 200), (0, 255, 0), 3)

# 画圆
cv2.circle(img, (200, 300), 40, (0, 0, 255), -1)

# 画多边形
pts = np.array([[15, 10], [20, 30], [70, 20], [50, 60]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255), 3)

# 添加文本
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'lena', (120, 450), font, 4, (255, 255, 255), 2, cv2.LINE_AA)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

请添加图片描述

2.1 画线

cv2.line(img, pt1, pt2, color, thickness=None)

  • img:绘制形状的图像
  • pt1:线的开始坐标
  • pt2:线的结束坐标
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.2 画矩形

cv2.rectangle(img, pt1, pt2, color, thickness=None)

  • img:绘制形状的图像
  • pt1:矩形左上角点坐标
  • pt2:矩形右上角点坐标
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.3 画圆

cv2.circle(img, center, radius, color, thickness=None)

  • img:绘制形状的图像
  • center:中心坐标
  • radius:半径
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.4 画多边形

cv2.polylines(img, pts, isClosed, color, thickness=None)

  • img:绘制形状的图像
  • pts:顶点的坐标,为数组且类型为int32
  • isClosed:是否闭合
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.5 添加文本

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None)

  • img:添加文本的图像
  • text:写入的文字数据
  • org:位置坐标(即数据开始的左下角)
  • fontFace:字体类型
  • fontScale:字体比例(指定字体大小)
  • color:文本的颜色
  • thickness:文本的粗细
  • lineType:线条类型

http://www.kler.cn/news/108152.html

相关文章:

  • 【孙哥说Spring5】第三章 Spring的事务处理
  • 图解Kafka高性能之谜(五)
  • 【计算机网络笔记】DNS报文格式
  • 日常软件游戏丢失msvcp120dll怎么修复?分享5个修复方法
  • Python---使用turtle模块+for循环绘制五角星---利用turtle(海龟)模块
  • 解决国外镜像无法访问导致的R包无法安装问题
  • HDU 1062:字符串反转
  • 面向对象设计模式——命令模式
  • 17、简单记录一下两个流媒体工具和推流测试
  • springboot配置https
  • 用于读取验证码的 OCR 模型
  • 设计模式:桥接模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
  • vue中父组件给子组件传递了参数后,什么时候确保子组件中收到的参数更新了
  • 创新领航 | 竹云参编《基于区块链的数据资产评估实施指南》正式发布!
  • 【Python机器学习】零基础掌握MissingIndicator缺失值填充
  • Node.js的基本概念node -v 和npm -v 这两个命令的作用
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:101-120)
  • 2016年下半年上午易错题(软件设计师考试)
  • [100天算法】-连通网络的操作次数(day 46)
  • LVS-DR模式+keepalived+nginx+tomcat实现动静分离、负载均衡、高可用实验
  • 方舟生存进化ARK个人服务器搭建教程保姆级
  • 聊一下Word2vec-训练优化篇
  • 【Python爬虫三天从0到1】Day1:爬虫核心
  • 计算机视觉-光源的目的和作用
  • autoware.ai中检测模块lidar_detector caffe
  • vscode markdown 使用技巧 -- 如何快速打出一个Tab 或多个空格
  • Web3 治理实践探讨:如何寻找多元化发展路径?
  • 【python练习】在棋盘上收集奖品,跟着书本理思路
  • 2-Java进阶知识总结-6-多线程
  • shell脚本的编写(输入、输出、变量、数组等的使用规范及实例)