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.mzph.cn/diannao/67079.shtml

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

相关文章

Unreal Engine 5 (UE5) Metahuman 的头部材质

在图中&#xff0c;你展示了 Unreal Engine 5 (UE5) Metahuman 的头部材质部分&#xff0c;列出了头部材质的多个元素。以下是对每个部分的解释&#xff1a; 材质解释 Element 0 - MI_HeadSynthesized_Baked 作用&#xff1a; 这是 Metahuman 的主要头部材质&#xff0c;控制整…

鸿蒙中自定义slider实现字体大小变化

ui&#xff1a; import { display, mediaquery, router } from kit.ArkUI import CommonConstants from ./CommonConstants; import PreferencesUtil from ./PreferencesUtil; import StyleConstants from ./StyleConstants;// 字体大小 Entry Component struct FontSize {Sta…

LabVIEW智能水肥一体灌溉控制系统

本文详细介绍了一种基于LabVIEW的智能水肥一体灌溉控制系统的设计与实现。该系统采用模糊控制策略&#xff0c;能够自动调节土壤湿度和肥液浓度&#xff0c;满足不同作物在不同生长阶段的需求&#xff0c;有效提高水肥利用效率&#xff0c;对现代精准农业具有重要的实践和推广价…

【高可用自动化体系】自动化体系

架构设计的愿景就是高可用、高性能、高扩展、高效率。为了实现架构设计四高愿景&#xff0c;需要实现自动化系统目标&#xff1a; 标准化。 流程自助化。 可视化&#xff1a;可观测系统各项指标、包括全链路跟踪。 自动化&#xff1a;ci/cd 自动化部署。 精细化&#xff1a…

Docker与虚拟机的区别及常用指令详解

在现代软件开发中&#xff0c;容器化和虚拟化技术已经成为不可或缺的工具。Docker和虚拟机&#xff08;VM&#xff09;是两种常见的技术&#xff0c; 它们都可以帮助开发者在不同的环境中运行应用程序。然而&#xff0c;它们的工作原理和使用场景有很大的不同。本文将详细探讨D…

【JVM-2.3】深入解析JVisualVM:Java性能监控与调优利器

在Java应用的开发和运维过程中&#xff0c;性能监控与调优是不可或缺的环节。无论是排查内存泄漏、分析CPU瓶颈&#xff0c;还是优化线程使用&#xff0c;开发者都需要借助一些强大的工具来辅助诊断。JVisualVM 正是这样一款由Oracle提供的免费工具&#xff0c;它集成了多种性能…

简聊MySQL并发事务中幻读、虚读问题的解决方案

在MySQL数据库中&#xff0c;事务的幻读和虚读问题是并发控制中的关键挑战。以下是针对这两个问题的解决方案及原理说明&#xff0c;并附上相关示例。 一、幻读问题及其解决方案 幻读问题的定义 幻读是指一个事务在前后两次查询同一个范围的时候&#xff0c;后一次查询看到了…

WINFORM - DevExpress -> gridcontrol ---->控件(ColumnEdit控件)

ImageComboBoxEdit--带图片的下拉菜单 DevExpress&#xff1a;带图片的下拉菜单ImageComboBoxEdit_weixin_34313182的博客-CSDN博客 ImageEdit--图片按钮 DevExpress控件中的gridcontrol表格控件&#xff0c;如何在属性中设置某一列显示为图片&#xff08;图片按钮&#xff…

IntelliJ IDEA Type Hierarchy Scope Pattern 学习指南

IntelliJ IDEA Type Hierarchy Scope Pattern 学习指南 什么是 Type Hierarchy&#xff1f; Type Hierarchy 是 IntelliJ IDEA 提供的一个工具&#xff0c;允许开发者查看某个类的继承关系及其实现的接口结构。它是理解类关系的重要工具&#xff0c;尤其在处理复杂的继承体系…

分布式ID的实现方案

1. 什么是分布式ID ​ 对于低访问量的系统来说&#xff0c;无需对数据库进行分库分表&#xff0c;单库单表完全可以应对&#xff0c;但是随着系统访问量的上升&#xff0c;单表单库的访问压力逐渐增大&#xff0c;这时候就需要采用分库分表的方案&#xff0c;来缓解压力。 ​…

Python爬虫-汽车之家各车系周销量榜数据

前言 本文是该专栏的第43篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者在文章《Python爬虫-汽车之家各车系月销量榜数据》中,有详细介绍,如何爬取“各车系车型的月销量榜单数据”的方法以及完整代码教学教程。 而本文,笔者同样以汽车之家平台为例,…

Unity-Mirror网络框架-从入门到精通之RigidbodyBenchmark示例

文章目录 前言示例代码逻辑测试结论性能影响因素最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计,它…

【STM32-学习笔记-7-】USART串口通信

文章目录 USART串口通信Ⅰ、硬件电路Ⅱ、常见的电平标准Ⅲ、串口参数及时序Ⅳ、STM32的USART简介数据帧起始位侦测数据采样波特率发生器 Ⅴ、USART函数介绍Ⅵ、USART_InitTypeDef结构体参数1、USART_BaudRate2、USART_WordLength3、USART_StopBits4、USART_Parity5、USART_Mode…

Linux简介和环境搭建

Linux 介绍和环境搭建 1、发行版本 Linux 操作系统有多个主流发行版本&#xff0c;每个版本根据不同的目标、特点和使用场景为用户提供了不同的功能和体验。 Ubuntu • 特点&#xff1a;Ubuntu 是最为人熟知的 Linux 发行版之一&#xff0c;强调易用性和用户友好性&#xff…

代码随想录刷题day07|(数组篇)58.区间和

目录 一、数组理论基础 二、前缀和 三、相关算法题目 四、总结 五、待解决问题 一、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 代码随想录 (programmercarl.com) 特点&#xff1a; 1.下标从0开始&#xff0c;内存中地址空间是连续的 2.查询快&…

多模态论文笔记——CLIP

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍这几年AIGC火爆的隐藏功臣&#xff0c;多模态模型&#xff1a;CLIP。 文章目录 CLIP&#xff08;Contrastive Language-Image Pre-training&#xff09…

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

还是一篇基于dust3r的稀疏视角重建工作&#xff0c;作者联合优化了相机内外参与GS模型&#xff0c;实验结果表明优于noposplat。 abstract 在本文中&#xff0c;提出了一种新颖的可泛化高斯方法 SmileSplat&#xff0c;可以对无约束&#xff08;未标定相机的&#xff09;稀疏多…

Linux学习day2

经过上次我们完成了linux云服务器的安装&#xff0c;今天我们学习一些linux基本指令&#xff0c;是我们使用linux系统的基础 思考&#xff1a;输入指令&#xff0c;让操作系统执行&#xff0c;其实是在做什么呢&#xff1f; Linux环境中&#xff0c;做类似于windows的操作。l…

给DevOps加点料:融入安全性的DevSecOps

从前&#xff0c;安全防护只是特定团队的责任&#xff0c;在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时&#xff0c;这样做没什么问题&#xff1b;但是现在&#xff0c;这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期&#xff08;有时…

【2024年华为OD机试】 (B卷,100分)- 座位调整(Java JS PythonC/C++)

一、问题描述 题目描述 疫情期间课堂的座位进行了特殊的调整&#xff0c;不能出现两个同学紧挨着&#xff0c;必须隔至少一个空位。 给你一个整数数组 desk 表示当前座位的占座情况&#xff0c;由若干 0 和 1 组成&#xff0c;其中 0 表示没有占位&#xff0c;1 表示占位。 …