使用频率最高的 opencv 基础绘图操作 - python 实现

news2024/12/24 19:37:26

以下是 opencv-python 基本操作绘制示例,绘制:

1)圆,2)矩形,3)线段,4)文本。

安装 opencv-python

pip install opencv-python

在图上绘制圆的操作,示例如下:

#-*-coding:utf-8-*-
# date:2021-03-21
# Author: DataBall - XIAN
'''
学习内容(Contents):
    1、绘制空心圆
    2、绘制实心圆
'''

import cv2 # 导入OpenCV库

if __name__ == "__main__":

    path = 'images/1.jpg'
    img = cv2.imread(path)

    x,y = 500,400 # 圆心 ,为整形 int
    Rr = 60# 半径,为整形 int
    cv2.circle(img, (x,y), Rr, (0,0,255), -1) #绘制实心圆
    #
    x,y = 300,200 # 圆心 ,为整形 int
    Rr = 120# 半径,为整形 int
    cv2.circle(img, (x,y), Rr, (0,255,0), 4) #绘制空心圆

    cv2.namedWindow('image',0)
    cv2.imshow('image',img)# 显示图片

    cv2.waitKey(0)# 等待,直到键盘有按键按下
    cv2.destroyAllWindows() # 销毁所有显示窗口

在图上绘制矩形的操作,示例如下:

#-*-coding:utf-8-*-
# date:2021-03-21
# Author: DataBall - XIAN
'''
学习内容(Contents):
    1、绘制空心矩形
    2、绘制实心矩形
'''

import cv2 # 导入OpenCV库

if __name__ == "__main__":

    path = 'images/1.jpg'
    img = cv2.imread(path)

    x1,y1 = 200,200# 左上坐标,为整形 int
    x2,y2 = 400,400# 右下坐标,为整形 int
    cv2.rectangle(img, (x1,y1), (x2,y2), (255,0,0), -1) # 绘制实心矩形
    #
    x1,y1 = 500,500# 左上坐标,为整形 int
    x2,y2 = 600,600# 右下坐标,为整形 int
    cv2.rectangle(img, (x1,y1), (x2,y2), (255,0,255), 5) # 绘制空心矩形

    cv2.namedWindow('image',0)
    cv2.imshow('image',img)# 显示图片

    cv2.waitKey(0)# 等待,直到键盘有按键按下
    cv2.destroyAllWindows() # 销毁所有显示窗口

在图上绘制线段的操作,示例如下:

#-*-coding:utf-8-*-
# date:2021-03-21
# Author: DataBall - XIAN
'''
学习内容(Contents):
    1、绘制线段
'''

import cv2 # 导入OpenCV库

if __name__ == "__main__":

    path = 'images/1.jpg'
    img = cv2.imread(path)

    x1,y1 = 200,200# 坐标,为整形 int
    x2,y2 = 500,500# 坐标,为整形 int
    cv2.line(img, (x1,y1),(x2,y2), (0,150,255), 5)

    cv2.namedWindow('image',0)
    cv2.imshow('image',img)# 显示图片

    cv2.waitKey(0)# 等待,直到键盘有按键按下
    cv2.destroyAllWindows() # 销毁所有显示窗口

在图上绘制文本内容的操作,示例如下:

#-*-coding:utf-8-*-
# date:2021-03-22
# Author: DataBall - XIAN
'''
学习内容(Contents):
    1、图像上绘制文本
    2、保存图片
'''

import cv2 # 导入OpenCV库

if __name__ == "__main__":

    path = 'images/1.jpg'
    img = cv2.imread(path)

    cv2.putText(img, " Hello Computer Vision !", (5,55),cv2.FONT_HERSHEY_DUPLEX, 1.5, (55, 0, 220),7)
    cv2.putText(img, " Hello Computer Vision !", (5,55),cv2.FONT_HERSHEY_DUPLEX, 1.5, (255, 50, 50),2)
    cv2.imwrite("save.jpg",img)
    cv2.namedWindow('image',0)
    cv2.imshow('image',img)# 显示图片

    cv2.waitKey(0)# 等待,直到键盘有按键按下
    cv2.destroyAllWindows() # 销毁所有显示窗口

​​

助力快速掌握数据集的信息和使用方式。

数据可以如此美好

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP-HarmonyOS Application Developer 习题(五)

1、以下哪种原子化布局能力属于自适应变化能力? A. 拉伸 B.占比 C. 隐藏 D.拆行 答案:A 分析:划分为“自适应变化能力”和“自适应布局能力”两类。 其中,自适应变化能力包含了缩放能力和拉伸能力,自适应布局能力包含了隐藏、折…

『Mysql进阶』Mysql explain详解(五)

目录 Explain 介绍 Explain分析示例 explain中的列 1. id 列 2. select_type 列 3. table 列 4. partitions 列 5. type 列 6. possible_keys 列 7. key 列 8. key_len 列 9. ref 列 10. rows 列 11. filtered 列 12. Extra 列 Explain 介绍 EXPLAIN 语句提供有…

Spring学习——SpringAOP

0. IOC思想(DI)1. 关键注解Repositorypublic class DeptDaoImpl1 implements DeptDao{}RepositoryPrimarypublic class DeptDaoImpl2 implements DeptDao{}Servicepublic class DeptServiceImpl implements DeptService{AutowiredQulifier("deptDaoImpl2")private De…

UE5学习笔记24-添加武器弹药

一、给角色的武器添加弹药 1.创建界面,根据笔记23的界面中添加 2.绑定界面控件 UPROPERTY(meta (Bindwidget))UTextBlock* WeaponAmmoAmount;UPROPERTY(meta (Bindwidget))UTextBlock* CarriedAmmoAmount; 3.添加武器类型枚举 3.1创建武器类型枚举头文件 3.2创建文…

C++容器:map

1.铺垫 1.1map和unorder_map,两者的实现思想不同,但是用法是相同的;map的思想是平衡二叉树;unorder_map的思想是哈希; 1.2在现实及做题中,百分之99,都在使用unorder_map,接下来的讲…

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币,(i 1, 2, 3 , …),那么展开看每一天可以得到的金币数:1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 ,2个2, 3个3…,那么我…

P20机型HW睡眠省电-调研

摘要 AI睡眠场景识别 不激进的智能管控 睡眠省电 UI 以前有单独的睡眠开关选项,现在没有了,但是智能充电模式是使用AI睡眠模式 睡眠识别 华为专利上提到的论文《BTP-A Bedtime Predicting Algorithm》 各种事件状态(亮灭屏、alarm、主动…

《数字信号处理》学习08-围线积分法(留数法)计算z 逆变换

目录 一,z逆变换相关概念 二,留数定理相关概念 三,习题 一,z逆变换相关概念 接下来开始学习z变换的反变换-z逆变换(z反变化)。 由象函数 求它的原序列 的过程就称为 逆变换。即 。 求z逆变换…

RTR-Chapter8

第八章 光与颜色 光量辐射度量学光度学色度学使用RGB颜色进行渲染 从场景到屏幕HDR显示编码色调映射色调再现变换曝光 颜色分级 光量 辐射度量学 辐射度量学(radiometry)研究的是对电磁辐射(electromagnetic radiation)的测量&am…

linux线程 | 线程的控制(二)

前言: 本节内容是线程的控制部分的第二个小节。 主要是列出我们的线程控制部分的几个细节性问题以及我们的线程分离。这些都是需要大量的代码去进行实验的。所以, 准备好接受新知识的友友们请耐心观看。 现在开始我们的学习吧。 ps:本节内容适合了解线程…

开源情报(OSINT)入门:初学者指南

欢迎来到令人兴奋的开源情报 (OSINT) 世界!如果您是该领域的新手,OSINT 就是收集和分析公开信息以获取见解并制作情报产品。 无论您是安全爱好者、记者还是只是对 OSINT 感兴趣,本入门指南都将带您了解基础知识,让您开始第一次&a…

MySQL进阶学习一(2024.10.07版)

2024-10-06 -------------------------------------------------------------------------------------------------------------------------------- 1.一条SQL语句是如何执行的 单进程的多线程模型 MySQL的物理目录 show global variables like "%basedir%"; …

初学Vue(3)(内置指令)

文章目录 十四、内置指令v-textv-htmlv-cloak(没有值)v-oncev-pre自定义指令一、定义语法二、配置对象中常用的3个问题三、备注 十四、内置指令 回顾: v-bind :单向绑定解析表达式,可简写为 :xxx v-model : 双向数据绑…

HTML快速入门--第一节--五个基本标签

一、网络编程的三大基石 1.1 url 统一资源定位符: 网址:整个互联网中可以唯一且准确的确定一个资源的位置 (url项目外) 网址:https://www.baidu.com/ https://www.baidu.com/ 协议://ip端口/项目名/页面名 协议:交通法规获取资源 ip端口 (域名&…

安全企业邮箱优势与局限,密码策略反馈

密码策略是什么呢?如何设置出安全可靠的密码策略呢?企业邮箱安全始于密码策略,包括复杂性、长度、更新频率、重用限制和两步验证。实施需全员培训、密码管理工具、审计与监控。一文为你详细介绍密码策略。 一、如何设置好的密码策略&#xff…

【JavaScript】JavaScript开篇基础(3)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

【微信小程序_11_全局配置】

摘要:本文介绍了微信小程序全局配置文件 app.json 中的常用配置项,重点阐述了 window 节点的各项配置,包括导航栏标题文字、背景色、标题颜色,窗口背景色、下拉刷新样式以及上拉触底距离等。通过这些配置可实现小程序窗口外观的个性化设置,提升用户体验。 微信小程序_11_全…

总看别人写贪吃蛇,自己也来写一个吧

贪吃蛇是一个流行度非常高的游戏,玩法十分简单,从最初的方块机上就有这个游戏了,后来出现的手机中也是加入了这个游戏,无聊的时候可以打发时间玩一会。这个游戏可谓是非常的简单,容易上手,所以直到现在&…

番外篇 | 常用的激活函数汇总 | 20+种激活函数介绍及其公式、图像等

前言:Hello大家好,我是小哥谈。激活函数(Activation Function)是神经网络中的一种重要概念,用于控制神经网络中神经元的激活方式。在传统的神经网络中,激活函数被用来将神经元的输出从数值转换为可以被神经网络其他部分理解的非数值形式。激活函数通常被定义为神经元的输…

电能表预付费系统-标准传输规范(STS)(2)

5. 标准传输规格参考模型 5.1 一般付费电表功能参考图 In a single-device payment meter all the essential functions are located in a single enclosure as depicted in Figure 1 above, while in a multi-device payment meter it is possible for the TokenCarrierToMe…