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

server/2024/10/17 23:52:02/

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

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

安装 opencv-python

python">pip install opencv-python

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

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 # 圆心 ,为整形 intRr = 60# 半径,为整形 intcv2.circle(img, (x,y), Rr, (0,0,255), -1) #绘制实心圆#x,y = 300,200 # 圆心 ,为整形 intRr = 120# 半径,为整形 intcv2.circle(img, (x,y), Rr, (0,255,0), 4) #绘制空心圆cv2.namedWindow('image',0)cv2.imshow('image',img)# 显示图片cv2.waitKey(0)# 等待,直到键盘有按键按下cv2.destroyAllWindows() # 销毁所有显示窗口

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

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)x1,y1 = 200,200# 左上坐标,为整形 intx2,y2 = 400,400# 右下坐标,为整形 intcv2.rectangle(img, (x1,y1), (x2,y2), (255,0,0), -1) # 绘制实心矩形#x1,y1 = 500,500# 左上坐标,为整形 intx2,y2 = 600,600# 右下坐标,为整形 intcv2.rectangle(img, (x1,y1), (x2,y2), (255,0,255), 5) # 绘制空心矩形cv2.namedWindow('image',0)cv2.imshow('image',img)# 显示图片cv2.waitKey(0)# 等待,直到键盘有按键按下cv2.destroyAllWindows() # 销毁所有显示窗口

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

python">#-*-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# 坐标,为整形 intx2,y2 = 500,500# 坐标,为整形 intcv2.line(img, (x1,y1),(x2,y2), (0,150,255), 5)cv2.namedWindow('image',0)cv2.imshow('image',img)# 显示图片cv2.waitKey(0)# 等待,直到键盘有按键按下cv2.destroyAllWindows() # 销毁所有显示窗口

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

python">#-*-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.ppmy.cn/server/131253.html

相关文章

使用 three.js和 shader 实现一个五星红旗 飘扬得着色器

使用 three.js和 shader 实现一个五星红旗 飘扬得着色器 源链接:https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idchinaFlag 国内站点预览:http://threehub.cn github地址: https://github.com/z2586300277/three-ce…

实时开放词汇目标检测(论文复现)

实时开放词汇目标检测(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 实时开放词汇目标检测(论文复现)概述模型框架使用方式配置环境训练和评估训练评估 演示效果Gradio Demo 概述 YOLO-World是由腾讯人工智能实验…

进程间通信 —— 《命名管道》

文章目录 前言:命名管道的原理:代码编写: 前言: 在前面的一文,我们主要介绍了关于进程间的通信是如何实现的,以及引入了进程间通信的前提——“要让两个进程在OS中看到同一份资源”,而对于父子…

Springboot实现参数校验

Springboot实现参数校验 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>实体类中加上相应注解 public class User {// 用户名NotBlank(mess…

【笔记】Day2.5.1查询运费模板列表(未完

&#xff08;一&#xff09;代码编写 1.阅读需求&#xff0c;确保理解其中的每一个要素&#xff1a; 获取全部运费模板&#xff1a;这意味着我需要从数据库中查询所有运费模板数据。按创建时间倒序排序&#xff1a;这意味着查询结果需要根据模板的创建时间进行排序&#xff0…

架构设计笔记-14-云原生架构设计理论与实践

知识要点 云原生&#xff08;Cloud Native&#xff09;架构原则&#xff1a; 服务化原则&#xff1a;通过微服务架构&#xff0c;小服务&#xff08;MiniService&#xff09;架构把不同生命周期的模块分离出来&#xff0c;分别进行业务迭代&#xff0c;避免迭代频繁模块被慢速…

无线费控智能水表:智能生活的守护者

在当今智能化日益普及的时代&#xff0c;无线费控智能水表作为一项重要的技术创新&#xff0c;正在逐步改变我们的生活方式。它不仅能够实现远程抄表&#xff0c;自动计费&#xff0c;还能有效监控用水情况&#xff0c;促进水资源的合理利用&#xff0c;是现代城市智慧化管理不…

Python Django ORM 的工作原理

在 Web 开发中&#xff0c;处理数据库是非常常见的需求&#xff0c;尤其是在构建动态应用程序时。Django 作为一个流行的 Python Web 框架&#xff0c;提供了一套强大的工具帮助开发者轻松管理数据库。Django 的 ORM&#xff08;对象关系映射&#xff0c;Object-Relational Map…