(笔记一)利用open_cv在图像上进行点标记,文字注记,画圆、多边形、椭圆

(1)CV2中的绘图函数:

  • cv2.line() 绘制线条
  • cv2.circle() 绘制圆
  • cv2.rectangle() 绘制矩形
  • cv2.ellipse() 绘制椭圆
  • cv2.putText() 添加注记

(2)注释

  • img表示需要绘制的图像
  • color表示线条的颜色,采用颜色矩阵
  • thickness表示线条的粗细
  • linestype表示线条的线型

(3)实例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: LIFEI
@time: 2023/8/27 10:21 
@file: im_rd.py
@project: main.py
@describe: TODO
"""
import cv2
import numpy as np


def mask(img_img):
    # 创建一个点标记,cv2.drawMarker(img,点坐标,颜色,样式,线宽)
    draw_marker = cv2.drawMarker(img_img, (256, 256), (255, 0, 0), cv2.MARKER_CROSS, thickness=8)
    # 在点标记的基础上创建一个红色线条赋值给draw_line,cv2.line(draw_marker(img,起始点坐标,终止点坐标,颜色,线宽)
    draw_line = cv2.line(draw_marker, (50, 50), (450, 450), (0, 0, 255), thickness=2)
    # 在上述基础上画一个圆赋值给circle,cv2.circle(img,原点坐标,半径,颜色,线宽)
    circle = cv2.circle(draw_line, (447, 100), 63, (0, 255, 0), 1)
    # 在上述基础上画一个矩形赋值给rect,cv2.rectangle(img,左上角坐标,右下角坐标,颜色,线宽)
    rect = cv2.rectangle(circle, (300, 300), (400, 400), (255, 0, 0), 3)
    # 在上述基础上画一个椭圆ellipse,cv2.ellipse(img,原点,坐标轴,角度,起始角度,终止角度,颜色,线宽,线型,shift)
    ellipse = cv2.ellipse(rect, (120, 120), (100, 50), 0, 0, 360, 255, 1)
    # 在上述基础上绘制文字标记赋值给text
    text = cv2.putText(ellipse, 'Open_cv', (400, 500), cv2.FONT_HERSHEY_SIMPLEX, 4, [255, 30, 56], 2)
    # 返回上述结果
    return text


if __name__ == '__main__':
    img = cv2.imread(r"D:\data\img.png")
    # 创建一个黑色背景图像赋值给img
    # img = np.zeros((512, 512, 3), np.uint8)
    # 显示上述标记
    result = mask(img)
    cv2.imshow("img", result)
    # 等待
    cv2.waitKey(0)
    # 窗口
    cv2.destroyAllWindows()

(4)结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/98641.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【跟小嘉学 Rust 编程】二十、进阶扩展

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

静态树提升对Vue生态系统的影响和发展

文章目录 1. 了解Vue 3的静态树提升介绍Vue 3的基本概念和优势解释静态树提升的作用和目标 2. 什么是静态树?解释静态树的概念和特点比较静态树和动态树的区别 3. Vue 3中的静态树提升解释Vue 3中静态树提升的原理和工作方式强调静态树提升对性能的影响和优化效果 4…

Spring MVC: 请求参数的获取

Spring MVC 前言通过 RequestParam 注解获取请求参数RequestParam用法 通过 ServletAPI 获取请求参数通过实体类对象获取请求参数附 前言 在 Spring MVC 介绍中,谈到前端控制器 DispatcherServlet 接收客户端请求,依据处理器映射 HandlerMapping 配置调…

OJ练习第156题——带因子的二叉树

带因子的二叉树 力扣链接:823. 带因子的二叉树 题目描述 给出一个含有不重复整数元素的数组 arr ,每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树,每个整数可以使用任意次数。其中:每个非叶结点的值应等于它的两个子结点…

0202hdfs的shell操作-hadoop-大数据学习

文章目录 1 进程启停管理2 文件系统操作命令2.1 HDFS文件系统基本信息2.2 介绍2.3 创建文件夹2.4 查看指定文件夹下的内容2.5 上传文件到HDFS2.6 查看HDFS文件内容2.7 下载HDFS文件2.8 HDFS数据删除操作 3 HDFS客户端-jetbrians产品插件3.1 Big Data Tools 安装3.2 配置windows…

活用 命令行通配符

本文是对 阮一峰老师命令行通配符教程[1]的学习与记录 通配符早于正则表达式出现,可以看作是原始的正则表达式. 其功能没有正则那么强大灵活,而胜在简单和方便. - 字符 切回上一个路径/分支 如图: !! 代表上一个命令, 如图: [Linux中“!"的神奇用法](https://www.cnblogs.…

ACL 访问控制 过滤数据 维护网络安全(第七课)

一 ACL 简介 ACL是Access Control List(访问控制列表)的缩写,是一种用于控制文件、目录、网络设备等资源访问权限的方法。ACL可以对每个用户或用户组设置不同的访问权,即在访问控制清单中为每个用户或用户组指定允许或禁止访问该…

Jenkins测试报告样式优化

方式一:修改Content Security Policy(临时解决,Jenkins重启后失效) 1、jenkins首页—>ManageJenkins—>Tools and Actions标题下—>Script Console 2、粘贴脚本输入框中:System.setProperty("hudson.model.Directo…

Unity碰撞检测(3D和2D)

Unity碰撞检测3D和2D 前言准备材料3D2D 代码3D使用OnCollisionEnter()进行碰撞Collider状态代码 使用OnTriggerEnter()进行碰撞Collider状态代码 2D使用OnCollisionEnter2D()进行碰撞Collider2D状态代码 使用OnTriggerEnter2D()进行碰撞Collider2D状态代码 区别3D代码OnCollisi…

Flowable7 设计器

1、flowable7 已经在主版本上移除了Flowable UI相关的包,包含bpm-json相关的所有包和流程设计器相关前端文件。 2、flowable7 版本目前只保留了xml运行相关的包,ui modeler已经移除 3、目前官方给的回复是只能在 flowable 云产品上使用设计器&#xff…

Python Tcp编程

网络连接与通信是我们学习任何编程语言都绕不过的知识点。Python 也不例外,本文就介绍因特网的核心协议 TCP ,以及如何用 Python 实现 TCP 的连接与通信。 TCP 协议 TCP协议(Transmission Control Protocol, 传输控制协议&#…

generative-model [ From GAN to WGAN ]

目录 Kullback–Leibler and Jensen–Shannon Divergence Generative Adversarial Network (GAN) What is the optimal value for D? What is the global optimal? What does the loss function represent? Problems in GANs Hard to achieve Nash equilibrium Low …

前端基础2——CSS样式

文章目录 一、使用方式1.1 内联方式1.2 内部方式1.3 外部导入方式(推荐) 二、选择器类型2.1 元素选择器2.2 ID选择器2.3 类选择器2.4 派生选择器 三、常用属性3.1 内边距和外边距3.2 文本3.3 边框3.4 背景3.5 定位3.6 浮动3.7 字体3.8 其他属性 四、案例…

【数据分享】2006-2021年我国省份级别的集中供热相关指标(免费获取\20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

【ES6】Promise.allSettled的用法

Promise.allSettled() 是一个Promise方法,用于处理一个Promise数组,返回一个新的Promise数组,每个元素对应原始Promise的状态。这个方法可以用于处理多个异步操作,并且能够获取每个操作的结果和状态。 下面是Promise.allSettled(…

Python爬虫基础之正则表达式

目录 一、什么是正则表达式? 二、re.compile()编译函数 三、group()获取匹配结果函数 四、常用匹配规则 4.1匹配单个字符 4.2匹配前字符次数 4.3匹配原生字符串 4.4匹配字符串开头和结尾 4.5分组匹配 五、re.match()开头匹配函数 六、re.search()全文搜索…

无涯教程-Android Online Test函数

Android在线测试模拟了真正的在线认证考试。您将看到基于 Android概念的多项选择题(MCQ),将为您提供四个options。您将为该问题选择最合适的答案,然后继续进行下一个问题,而不会浪费时间。完成完整的考试后,您将获得在线考试分数。 总问题数-20 最长时间-20分钟 Start Test …

Matlab图像处理-线性变换

线性变换 空间域处理技术是直接对图像的像素进行操作。灰度变换不改变原图像中像素的位置,只改变像素点的灰度值,并逐点进行,和周围的其他像素点无关。 灰度线性变换即是对图像的灰度做线性拉伸、压缩,映射函数为一个直线方程。…

并发控制:上下文、中断屏蔽和原子变量

一、上下文和并发场合 执行流:有开始有结束总体顺序执行的一段代码 又称上下文 应用编程:任务上下文 内核编程: 任务上下文:五状态 可阻塞 a. 应用进程或线程运行在用户空间 b. 应用进程或线程运行在内核空间(通过调…

ESB(Enterprise Service Bus,即企业服务总线)

以前用过部分功能,但是没有很好地去理解过。 ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。 企业服…