OpenCV基础:矩阵的创建、检索与赋值

 本文主要是介绍如何使用numpy进行矩阵的创建,以及从矩阵中读取数据,修改矩阵数据。


 创建矩阵

import numpy as npa = np.array([1,2,3])
b = np.array([[1,2,3],[4,5,6]])
#print(a)
#print(b)# 创建全0数组 eros矩阵
c = np.zeros((8,8), np.uint8)
#print(c)# 创建全1数组 ones矩阵
d = np.ones((8,8), np.uint8)
#print(d)# 创建全值数组 full矩阵
e = np.full((8,8), 10, np.uint8)
#print(e)# 创建单元数组 identity
f = np.identity(4)
#print(f)# 创建单元数组
g = np.eye(5, 7, k=3)
print(g)

接口解释:

1. array

  • np.array 是 numpy 库的一个接口,用于创建 numpy 数组。可以将 Python 列表或嵌套列表转换为 numpy 数组,提供了更高效的数组操作功能,支持向量化操作,例如数学运算、切片、索引等。
  • np.array([1,2,3]) 创建了一个一维的 numpy 数组,包含元素 1、2 和 3。
  • np.array([[1,2,3],[4,5,6]]) 创建了一个二维的 numpy 数组,是一个 2 行 3 列的矩阵。

2. zeros

  • np.zeros 是 numpy 的接口,用于创建指定形状的全零数组。
  • 这里创建了一个 8 行 8 列的数据类型为 np.uint8(无符号 8 位整数)的全零数组。可以用于初始化存储数据的数组,或者作为计算的初始状态。

3. ones

  • np.ones 与 np.zeros 类似,不同之处在于它创建的是全 1 数组。
  • 此函数创建了一个 8 行 8 列的数据类型为 np.uint8 的全 1 数组。 

4. full

  • np.full 是 numpy 的接口,用于创建一个指定形状的数组,并且数组中的元素全部为指定的值。
  • 这里创建了一个 8 行 8 列的数据类型为 np.uint8 的数组,数组中的元素全部为 10。 

5. identity

  • np.identity 是 numpy 的接口,用于创建一个指定维度的单位矩阵。
  • 这里创建了一个 4 行 4 列的单位矩阵,主对角线上元素为 1,其余元素为 0。

6. eye

  • np.eye 是 numpy 的接口,用于创建一个二维数组,在对角线上的元素为 1,其余元素为 0。
  • 它接受三个参数,第一个参数 5 表示行数,第二个参数 7 表示列数,k=3 表示主对角线的偏移量。在这个例子中,创建了一个 5 行 7 列的数组,从第 3 条对角线上开始元素为 1(即从左上角开始向右下偏移 3 个位置的对角线上元素为 1),其余元素为 0。 

检索与赋值

import numpy as np
import cv2# 创建全0矩阵
img = np.zeros((480,640,3), np.uint8)# 从矩阵中读取某个元素的值
print(img[100,100])# 向矩阵中某个元素赋值
count = 0
while count < 400 :img[count,100] = 255count = count + 1cv2.imshow('img', img)
cv2.waitKey(0)

代码中 print(img[100,100]) 打印的是 BGR三个值,表示窗口坐标(100,100)像素点的值。

循环给矩阵赋值,将黑色改为白色,从坐标(0,100)开始,一直到(399,100),在窗口中表现为一条白色的线:

其它赋值方式: 

img[100,100,0] = 255, 表示赋值为蓝色;

img[100,100,1] = 255,表示赋值为绿色。

img[100, 100] = [0, 0, 255], 表示赋值为红色。

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

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

相关文章

(蓝桥杯)二维数组前缀和典型例题——子矩阵求和

题目描述 小 A 同学有着很强的计算能力&#xff0c;张老师为了检验小 AA同学的计算能力&#xff0c;写了一个 n 行 m 列的矩阵数列。 张老师问了小 A 同学 k 个问题&#xff0c;每个问题会先告知小 A 同学 4 个数 x1,y1,x2,y2画出一个子矩阵&#xff0c;张老师请小 A同学计算出…

Node.js - HTTP

1. HTTP请求 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是客户端和服务器之间通信的基础协议。HTTP 请求是由客户端&#xff08;通常是浏览器、手机应用或其他网络工具&#xff09;发送给服务器的消息&#xff0c;用来请求资源或执行…

[读书日志]8051软核处理器设计实战(基于FPGA)第七篇:8051软核处理器的测试(verilog+C)

6. 8051软核处理器的验证和使用 为了充分测试8051的性能&#xff0c;我们需要测试每一条指令。在HELLO文件夹中存放了整个测试的C语言工程文件。主函数存放在指令被分为五大类&#xff0c;和上面一样。 打开后是这样的文件结构。HELLO.c是主文件&#xff0c;这是里面的代码&am…

深入浅出 Android AES 加密解密:从理论到实战

深入浅出 Android AES 加密解密&#xff1a;从理论到实战 在现代移动应用中&#xff0c;数据安全是不可忽视的一环。无论是用户隐私保护&#xff0c;还是敏感信息的存储与传输&#xff0c;加密技术都扮演着重要角色。本文将以 AES&#xff08;Advanced Encryption Standard&am…

IDEA编译器集成Maven环境以及项目的创建(2)

选择&#xff1a;“File” ---> "Othoer Setting" --> "Settings for New Projects..." --->搜索“Maven” 新建项目 利用maven命令去编译这个项目 利用maven去打包

Open FPV VTX开源之默认MAVLink设置

Open FPV VTX开源之默认MAVLink设置 1. 源由2. 准备3. 连接4. 安装5. 配置6. 测试6.1 启动wfb-ng服务6.2 启动wfb-ng监测6.3 启动QGroundControl6.4 观察测试结果 7. 总结8. 参考资料9. 补充9.1 telemetry_tx异常9.2 DEBUG串口部分乱码9.3 PixelPilot软件问题 1. 源由 飞控图传…

gesp(C++五级)(4)洛谷:B3872:[GESP202309 五级] 巧夺大奖

gesp(C五级)&#xff08;4&#xff09;洛谷&#xff1a;B3872&#xff1a;[GESP202309 五级] 巧夺大奖 题目描述 小明参加了一个巧夺大奖的游戏节目。主持人宣布了游戏规则&#xff1a; 游戏分为 n n n 个时间段&#xff0c;参加者每个时间段可以选择一个小游戏。 游戏中共有…

像JSONDecodeError: Extra data: line 2 column 1 (char 134)这样的问题怎么解决

问题介绍 今天处理返回的 JSON 的时候&#xff0c;出现了下面这样的问题&#xff1a; 处理这种问题的时候&#xff0c;首先你要看一下当前的字符串格式是啥样的&#xff0c;比如我查看后发现是下面这样的&#xff1a; 会发现这个字符串中间没有逗号&#xff0c;也就是此时的J…

道旅科技借助云消息队列 Kafka 版加速旅游大数据创新发展

作者&#xff1a;寒空、横槊、娜米、公仪 道旅科技&#xff1a;科技驱动&#xff0c;引领全球旅游分销服务 道旅科技 &#xff08;https://www.didatravel.com/home&#xff09; 成立于 2012 年&#xff0c;总部位于中国深圳&#xff0c;是一家以科技驱动的全球酒店资源批发商…

导出文件,能够导出但是文件打不开

背景&#xff1a; 在项目开发中&#xff0c;对于列表的查询&#xff0c;而后会有导出功能&#xff0c;这里导出的是一个excell表格。实现了两种&#xff0c;1.导出的文件&#xff0c;命名是前端传输过去的&#xff1b;2.导出的文件&#xff0c;命名是根据后端返回的文件名获取的…

ISP各模块功能介绍

--------声明&#xff0c;本文为转载整理------- ISP各个模块功能介绍&#xff1a; 各模块前后效果对比&#xff1a; 黑电平补偿&#xff08;BLC&#xff09; 在理想情况下&#xff0c;没有光照射的像素点其响应值应为0。但是&#xff0c;由于杂质、受热等其它原因的影响&…

dockerfile实现lnmp

dockerfile实现lnmp 自定义镜像实现整个架构 (基础镜像centos7) nginx cd /opt mkdir nginx mysql php vim Dockerfile docker network create --subnet172.111.0.0/16 mynetwork #创建自定义网段 docker run -itd --name nginx -p 80:80 --cpu-quota 20000 -m 512m -v /op…

DeepSeek-V3技术报告

摘要 https://arxiv.org/pdf/2412.19437v1 我们介绍DeepSeek-V3&#xff0c;这是一个强大的混合专家&#xff08;MoE&#xff09;语言模型&#xff0c;具有6710亿个总参数&#xff0c;每个token激活37亿个参数。为了实现高效推理和经济实惠的训练&#xff0c;DeepSeek-V3采用了…

【spring mvc】文件上传、下载

文件上传&#xff0c;存储至本地目录中 一、代码1、工具类&#xff08;敏感后缀过滤&#xff09;2、文件上传&#xff0c;存储至本地3、文件下载 二、效果演示1、上传1.1、postMan 请求1.2、上传效果 2、下载2.1、下载效果 一、代码 1、工具类&#xff08;敏感后缀过滤&#x…

CryptoMamba:利用状态空间模型实现精确的比特币价格预测

“CryptoMamba: Leveraging State Space Models for Accurate Bitcoin Price Prediction” 论文地址&#xff1a;https://arxiv.org/pdf/2501.01010 Github地址&#xff1a;https://github.com/MShahabSepehri/CryptoMamba 摘要 预测比特币价格由于市场的高波动性和复杂的非线…

dockerfile2.0

dockerfile实现lnmp nginx centos7 mysql centos7 php centos7 自定义镜像来实现整个架构 cd /opt mkdir nginx mysql php cd nginx 拖入nginx和wordpress vim Dockerfile vim nginx.conf ↓ worker_processes 1; events {worker_connections 1024; } http {include …

C#类型转换

C#是静态类型的语言&#xff0c;变量一旦声明就无法重新声明或者存储其他类型的数据&#xff0c;除非进行类型转换。本章的主要任务就是学习类型转换的知识。类型转换有显式的&#xff0c;也有隐式的。所谓显式&#xff0c;就是我们必须明确地告知编译器&#xff0c;我们要把变…

智能物流升级利器——SAIL-RK3576核心板AI边缘计算网关设计方案(一)

近年来&#xff0c;随着物流行业智能化和自动化水平不断提升&#xff0c;数据的实时处理与智能决策成为推动物流运输、仓储管理和配送优化的重要手段。传统的集中式云平台虽然具备强大计算能力&#xff0c;但高延迟和带宽限制往往制约了物流现场的即时响应。为此&#xff0c;我…

【算法篇】前缀和

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;算法笔记仓 前缀和是一种常用于处理数组区间求和问题的技巧。它可以用来减少重复计算&#xff0c;使得多次查询区间和的时间复杂度从 O(n) 降低到 O(1) 目录 1. 一维模版2. 二维模版3. 除自身以外数…

第R4周:LSTM-火灾温度预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 文章目录 一、代码流程1、导入包&#xff0c;设置GPU2、导入数据3、数据集可视化4、数据集预处理5、设置X&#xff0c;y6、划分数据集7、构建模型8、定义训练函…