OpenCV day2

Matplotlib相关知识

Matplotlib相关操作:

import numpy as np
from matplotlib import pyplot as pltx = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 使用红色虚线,圆点标记,线宽1.5,标记大小为6绘制sin
plt.plot(x, y1,color="red",  # 红色linestyle="--",  # 虚线marker="o",  # 圆点标记markersize=6,  # 标记大小为6linewidth=1.5  # 线宽1.5)#使用绿色实线,方形标记,线宽为2,标记大小为8绘制cos
plt.plot(x, y2,color="green",  # 绿色linestyle="-",  # 实线marker="s",  # 方形标记markersize=8,  # 标记大小为8linewidth=2  # 线宽为2)#显示图像
plt.show()

import numpy as np
from matplotlib import pyplot as plt# 生成100个随机点
x = np.random.rand(100)
y = np.random.rand(100)# 点的大小根据x坐标值线性变化
sizes = 500 * x# 点的颜色根据y坐标使用'plasma'颜色映射
# 透明度为0.6,边缘颜色为黑色
colors = plt.cm.plasma(y)
plt.scatter(x, y,s=sizes,  # 大小c=colors,  # 颜色alpha=0.6,  # 透明度edgecolors='black'  # 边缘颜色)# 显示图像
plt.show()

import matplotlib.pyplot as plt
import numpy as npcategories = ['Apple', 'Banana', 'Cherry', 'Date', 'Eggplant']
values1 = [30, 25, 40, 15, 20]
values2 = [20, 30, 35, 25, 10]x = np.arange(len(categories))
width = 0.35  # 条形宽度# 绘制两组并列的条形图,第一组颜色为橙色,第二组颜色为紫色
# 条形宽度为0.35, 添加图例
plt.bar(x - width/2, values1, width=width, color='orange', label='Group 1')
plt.bar(x + width/2, values2, width=width, color='purple', label='Group 2')
# 设置x轴刻度
plt.xticks(x, categories)plt.legend()
plt.show()

from matplotlib import pyplot as plt# 数据
sizes = [20, 30, 25, 15, 10]
labels = ['Category1', 'Category2', 'Category3', 'Category4', 'Category5']"""
绘制饼图,要求:
突出显示 Category2
显示百分比,保留两位小数
开始角度为 120 度
添加阴影
扇形边缘颜色为黑色,线宽为1
"""plt.pie(sizes,labels=labels,  # 饼图标签autopct='%1.2f%%',  # 显示百分比startangle=120,  # 开始角度shadow=True,  # 添加阴影wedgeprops={'edgecolor': 'black', 'linewidth': 1}  # 边缘颜色和线宽)plt.show()

import numpy as np
from matplotlib import pyplot as plt# 生成2000个服从正态分布的随机数
data = np.random.randn(2000)# 绘制直方图,箱数为 40,颜色为橙色,透明度为0.6
# #设置合适的 x轴和 y轴标签以及标题
plt.hist(data,bins=40,  # 设置箱数为40color='orange',  # 设置颜色为橙色alpha=0.6  # 设置透明度为0.6)plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Random Data')
plt.show()

import numpy as np
from matplotlib import pyplot as plt#生成三组数据,分别服从均值为0、1、2,标准差为1 的正态分布,每组150个数据
data1 = np.random.normal(0, 1, 150)
data2 = np.random.normal(1, 1, 150)
data3 = np.random.normal(2, 1, 150)
data = [data1, data2, data3]#绘制水平箱线图,填充箱体颜色为绿色
plt.boxplot(data,vert=False,  # 设置箱线图方向为水平patch_artist=True,  # 填充箱体颜色boxprops={'facecolor': 'green'}  # 设置箱体颜色为绿色)#设置合适的 x轴和 y 轴标签以及标题
plt.xlabel('Value')
plt.ylabel('Group')
plt.title('Box Plot of Three Groups')
plt.show()

import matplotlib.pyplot as plt
import numpy as np#生成数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)#创建一个1行3列的子图
fig, axes = plt.subplots(1,3)
axes[0].plot(x, y1)
axes[1].plot(x, y2)
axes[2].plot(x, y3)
axes[0].set_title('Sine')
axes[1].set_title('Cosine')
axes[2].set_title('Tangent')
plt.tight_layout()
plt.show()

附加:

import numpy as np
import matplotlib.pyplot as plt# 原始图像生成
# 创建一个700×700的图像数组(RGB),初始全部为黑色
image_arr = np.zeros((700, 700, 3), dtype=np.uint8)# 定义每个格子的尺寸
cell_size = 100
line_width = 2  # 网格线宽度# 绘制白色网格线
# 横向网格线
for i in range(0, 701, cell_size):image_arr[i:min(i + line_width, 700), :, :] = 255
# 纵向网格线
for j in range(0, 701, cell_size):image_arr[:, j:min(j + line_width, 700), :] = 255# 利用双重循环遍历每个网格(7×7格子)
# 如果满足条件:对角线处格子 -> 填充红色 
for i in range(1, 7):  # 行索引:1~6for j in range(1, 7):  # 列索引:1~6r_start = i * cell_size + line_widthr_end = (i + 1) * cell_size - line_widthc_start = j * cell_size + line_widthc_end = (j + 1) * cell_size - line_widthif (i == j or (i + j == 6)) and not (i == 6 and j == 6):image_arr[r_start:r_end, c_start:c_end, 0] = 255  # Rimage_arr[r_start:r_end, c_start:c_end, 1] = 0  # Gimage_arr[r_start:r_end, c_start:c_end, 2] = 0  # B# 分离并可视化 RGB 三个通道
# 方法一:为每个通道创建一个与原图像相同大小的新数组,只保留该通道值,其他通道置0
image_red = np.zeros_like(image_arr)
image_green = np.zeros_like(image_arr)
image_blue = np.zeros_like(image_arr)# 分别拷贝对应通道
image_red[:, :, 0] = image_arr[:, :, 0]  # R通道
image_green[:, :, 1] = image_arr[:, :, 1]  # G通道
image_blue[:, :, 2] = image_arr[:, :, 2]  # B通道fig, axes = plt.subplots(1, 4, figsize=(12, 4))
axes[0].imshow(image_arr)
axes[0].set_title("image")axes[1].imshow(image_red)
axes[1].set_title("image_red")axes[2].imshow(image_green)
axes[2].set_title("image_green")axes[3].imshow(image_blue)
axes[3].set_title("image_blue")for ax in axes:ax.axis('off')plt.tight_layout()
plt.show()

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

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

相关文章

【网络安全】通过 JS 寻找接口实现权限突破

未经许可,不得转载。 本文所述所有风险点均已修复。 文章目录 引言正文引言 以下些漏洞已被起亚方面修复;起亚方面确认,这些漏洞从未被恶意利用过。 2024年6月11日,我们发现起亚汽车存在一系列严重安全漏洞,攻击者仅凭车牌号即可远程控制车辆的核心功能。该攻击不需要接触…

LabVIEW 发电机励磁系统监测与诊断

在现代工业体系中,发电机作为关键的电能转换设备,其稳定运行对于电力供应的可靠性起着决定性作用。而励磁系统作为发电机的核心控制部分,直接影响着发电机的性能和电力系统的稳定性。一旦励磁系统出现故障,可能引发发电机电压波动…

MacOS红队常用攻击命令

MacOS红队常用攻击命令 1.自动化武器2.系统信息3.服务 & 内核信息4.快捷命令5.网络相关6.brew相关 / 软件包相关7.高权限命令8.创建一个管理员权限的后门用户 1.自动化武器 1、linPEAS LinPEAS 是一个脚本,用于在 Linux/Unix/MacOS 主机上搜索提权路径 2、me…

【数据结构_8】栈和队列

一、反向输出链表元素 Ⅰ使用递归进行反向输出 package stack; public class Test2 {static class Node{public String val;public Node next;//构造方法public Node(String val) {this.val val;this.next null;}}//利用递归来反向输出链表public static void reverse(Nod…

Java 正则表达式综合实战:URL 匹配与源码解析

在 Web 应用开发中,我们经常需要对 URL 进行格式验证。今天我们结合 Java 的 Pattern 和 Matcher 类,深入理解正则表达式在实际应用中的强大功能,并剖析一段实际的 Java 示例源码。 package com.RegExpInfo;import java.util.regex.Matcher; …

虾分发平台平台优势

平台优势 高效与成本优化 一键分发与自动化工具减少人工操作,加速测试周期;免费分发流量和透明价格套餐降低中小团队开支。 安全与合规 自研CDN与封装技术平衡性能与安全性,适配复杂分发场景;全球CDN网络加速保障极速下载。 服务…

c语言学习16——内存函数

内存函数 一、memcpy使用和模拟实现1.1参数1.2 使用1.3 模拟实现 二、memmove使用和模拟实现2.1 参数2.2 使用2.3 模拟实现 三、memset使用3.1 参数3.2 使用 四、memcmp使用4.1 参数4.2 使用 一、memcpy使用和模拟实现 1.1参数 因为内存中不知道存的是什么类型的地址&#xff…

TLA:用于接触-丰富操作的触觉-语言-动作模型

25年3月来自三星中国研发中心、中科院自动化所和北京智源的论文“TLA: Tactile-Language-Action Model for Contact-Rich Manipulation”。 视觉-语言模型已取得显著进展。然而,在语言条件下进行机器人操作以应对接触-密集型任务方面,仍未得到充分探索&…

【JavaEE】SpringBoot 统一功能处理

目录 一、拦截器1.1 使用1.1 定义拦截器1.2 注册配置拦截器 1.2 拦截器详解1.2.1 拦截路径1.2.2 拦截器执⾏流程 1.3 适配器模式 二、统一数据返回格式2.1 简单用法2.2 问题及解决 三、统一异常处理 一、拦截器 拦截器:拦截器是Spring框架提供的核⼼功能之⼀&#…

【前端实战】使用 BroadcastChannel API 实现跨标签页通信

一、引言 在现代 Web 应用开发中,我们常常会遇到需要在不同浏览器标签页之间进行通信的需求。例如,在一个电商应用中,用户在一个标签页中添加商品到购物车,希望在其他标签页中也能实时显示购物车的更新信息。传统的实现方式可能会…

微信小程序 - [渲染层错误] Uncaught TypeError: Cannot read property ‘D‘ of undefined

问题:[渲染层错误] Uncaught TypeError: Cannot read property D of undefined 解决: 该错误可能还是小程序的渲染模式有关系,查看app.json中是否有如下配置,删除即可,或者降低小程序调试基础库版本。

【MySQL高级】事务,存储引擎,索引(一)

Mysql高级 DQL查询语句 反引号 模糊查询避免%出现在开头,会造成索引失效 order by排序先后 表名列名都需要用${},他们不能带’’ 去重统计数量 null的运算 分组函数会自动忽略null,不用对null进行处理 截取子串substr(字段,下标…

面试篇 - GPT-1(Generative Pre-Training 1)

GPT-1(Generative Pre-Training 1) ⭐模型结构 Transformer only-decoder:GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同,但位置编码是可训练的。 注意力机制: 原始Transformer的解…

ubuntu24.04 cmake 报错 libldap-2.5.so.0 解决办法

apt cmake有毛病 换源重新安装 wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" sudo apt update sudo apt in…

ScholarCopilot:“学术副驾驶“

这里写目录标题 引言:学术写作的痛点与 AI 的曙光ScholarCopilot 的核心武器库:智能生成与精准引用智能文本生成:不止于“下一句”智能引用管理:让引用恰到好处 揭秘背后机制:检索与生成的动态协同快速上手&#xff1a…

vivo X200 Ultra前瞻系列(2):vivo X200 Ultra影像技术沟通会总结

vivo于今日(2025年4月14日)举办的“X系列蓝图影像技术沟通会”中,正式发布了vivo X200 Ultra,展示了其在移动影像领域的多项技术突破。以下是本次沟通会的核心内容总结: 1. 硬件革新:蔡司三焦段镜头与双芯架构 蔡司三大定焦大师镜头: X200 Ultra采用14mm超广角(“鹰眼”…

代码随想录第17天:二叉树

一、二叉搜索树的最近公共祖先(Leetcode 235) 由于是二叉搜索树,节点的值有严格的顺序关系:左子树的节点值都小于父节点,右子树的节点值都大于父节点。利用这一点,可以在树中更高效地找到最低公共祖先。 c…

C++中string库常用函数超详细解析与深度实践

目录 一、引言 二、基础准备:头文件与命名空间 三、string对象的创建与初始化(基础) 3.1 直接初始化 3.2 动态初始化(空字符串) 3.3 基于字符数组初始化 3.4 重复字符初始化 四、核心函数详解 4.1 字符串长度相关 4.1.1 …

LanDiff:赋能视频创作,语言与扩散模型的融合力量

自从 Wan 2.1 发布以来,AI 视频生成领域似乎进入了一个发展瓶颈期,但这也让人隐隐感到:“DeepSeek 时刻”即将到来!就在前几天,浙江大学与月之暗面联合推出了一款全新的文本到视频(T2V)生成模型…

【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言宝塔安装DockerMinIO 安装与设置cploar内网穿透PicGo下载与安装typora安装总结互动…