当前位置: 首页 > news >正文

【PyTorch】【机器学习】图片张量、通道分解合成和裁剪

一、导入所需库

from PIL import Image
import torch
import numpy as np
import matplotlib.pyplot as plt

二、读取图片

pic = np.array(Image.open('venice-boat.jpg'))

上述代码解释:先用Image.open()方法读取jpg格式图片,再用np.array()方法将图片转成numpy数组(ndarray)格式。

三、建立张量

图片在PyTorch中以3维张量表示。以下代码将图片转换成张量形式:

pic_tensor = torch.from_numpy(pic)

打印张量数据内容:

print(pic_tensor)

输出:

tensor([[[ 47, 138, 221],  # 每个像素点的RGB颜色值[ 49, 138, 220],[ 50, 139, 221],...,[ 89, 149, 221],[ 87, 150, 221],[ 86, 149, 220]],[[ 47, 138, 221],[ 49, 138, 220],[ 50, 139, 221],...,[ 88, 148, 220],[ 85, 148, 219],[ 85, 148, 219]],[[ 47, 138, 221],[ 49, 138, 220],[ 50, 139, 221],...,[ 84, 147, 218],[ 84, 147, 218],[ 83, 146, 217]],...,

四、通过张量对图片进行操作

(注:在以下的各个操作下,还需要用plt.show()语句才能将图片输出到屏幕上。)

1、打印整张图片

plt.imshow(pic)

在这里插入图片描述

2、分RGB通道打印图片

输出通道1:
plt.imshow(pic_tensor[:, :, 0].numpy())

在这里插入图片描述

输出通道2:
plt.imshow(pic_tensor[:, :, 1].numpy())

在这里插入图片描述

输出通道3:
plt.imshow(pic_tensor[:, :, 2].numpy())

在这里插入图片描述
注意: 三通道并不是简单的算术叠加,例如以下代码的输出和原图大相径庭:

from PIL import Image
import torch
import numpy as np
import matplotlib.pyplot as pltpic_1 = np.array(Image.open('Channel_1.jpg'))
pic_2 = np.array(Image.open('Channel_2.jpg'))
pic_3 = np.array(Image.open('Channel_3.jpg'))pic_tensor_1 = torch.from_numpy(pic_1)
pic_tensor_2 = torch.from_numpy(pic_2)
pic_tensor_3 = torch.from_numpy(pic_3)pic_tensor = pic_tensor_1 + pic_tensor_2 + pic_tensor_3
plt.imshow(pic_tensor.numpy())plt.show()

输出图片:

在这里插入图片描述

3、裁剪图片

对图片张量的裁剪在其前2个维度上进行(第3个维度为颜色通道),示例代码如下:

plt.imshow(pic_tensor[50: 1050, 400: 800, :].numpy())

裁剪结果:

在这里插入图片描述

相关文章:

【PyTorch】【机器学习】图片张量、通道分解合成和裁剪

一、导入所需库 from PIL import Image import torch import numpy as np import matplotlib.pyplot as plt二、读取图片 pic np.array(Image.open(venice-boat.jpg))上述代码解释:先用Image.open()方法读取jpg格式图片,再用np.array()方法将图片转成…...

如何提高工业交换机的电源功耗?

工业交换机的电源功耗是指在工作状态下所消耗的能量。随着工业自动化技术的发展,工业交换机在生产和制造领域中扮演着至关重要的角色。它们通过连接各种设备和系统,实现信息的传输和处理,提高生产效率和质量。然而,工业交换机的大…...

源站静态文件更新后,CDN会自动刷新吗

源站静态文件更新后,CDN不会自动刷新缓存,而是在缓存时间过期后,才会经由用户触发回源获取最新文件。如希望在缓存过期时间之前,实现CDN节点与源站静态文件同步更新,则需要通过CDN控制台-【刷新预取】菜单,…...

Token的应用场景

JWT JWT由三部分组成:头部(Header)、有效载荷(Payload)和签名(Signature)头部通常指定了Token的类型和使用的哈希算法;有效载荷包含了一系列的声明,例如用户的ID、Token…...

机器学习课程复习——奇异值分解

1. 三种奇异值分解 奇异值分解(Singular Value Decomposition, SVD)包含了: 完全奇异值分解(Complete Singular Value Decomposition, CSVD)紧奇异值分解(Tight Singular Value Decomposition, TSVD&…...

Java--乐观锁

乐观锁是一种并发控制机制,用于处理多个事务或线程对同一数据进行并发修改的问题。它假设多个事务或线程在操作数据时不会互相干扰,因此不在数据上加锁,而是在提交数据时检查数据是否被其他事务修改过。如果数据在提交前已经被其他事务修改&a…...

静默升级oracle 11g (从11.2.0.1升级到11.2.0.4)

原文:https://www.cnblogs.com/daizhengyang/p/13353783.html 一个环境是oracle 11.2.0.1,一个环境是oracle 11.2.0.4,同样的数据,同样的sql,在两个版本数据库表现不一样。于是,干脆都统一为11.2.0.4。 但…...

什么是模型训练,如何选择合适的Batch大小

模型训练是指使用数据集对模型进行训练,使其能够从数据中学习到特征和模式,进而完成特定的任务。在深度学习领域,通常使用反向传播算法来训练模型,其中模型会根据数据集中的输入和输出,不断更新其参数,以最…...

【线上绘图网站分享】

好用的线上绘图网站分享 使用场景特点使用例子 Excalidraw 使用场景 流程图绘制、组会分享工具等; 特点 最重要的就是:免费!! 简单,快捷:有时候临时要画一个流程图之类的用来示意、分享知识点&#xff…...

Snipaste截图工具如何控制框线箭头的粗细程度

我们使用Snipaste截图工具的时候,最常用的就是框线和箭头这些功能,有时候感觉很粗有时候感觉太细了,如何解决呢?我们可以在使用框线或者箭头之后,长按1或者2来控制框线箭头的粗细程度。其中1是变细,2是变粗…...

GISSERVER 管理器 1.0(私有化地图离线部署)

一、 简介 QGIS现在在全世界已经成为ARCGIS的最佳代替产品,而且是开源免费的。其用户社区和产品功能都已经可以与arcgis相媲美! GISSERVER管理工具是一个零代码地图网站建站工具(私有化地图离线部署),可以直接将QGIS工程转换为GIS网站(功能类似ARCGISM…...

Eureka服务治理深度解析:服务下线与剔除机制揭秘

Eureka服务治理深度解析:服务下线与剔除机制揭秘 在微服务架构中,服务的动态注册与发现是保证系统高可用性的关键。Netflix开源的Eureka作为服务发现框架,其服务下线与剔除机制是确保服务列表准确性的重要手段。本文将深入探讨Eureka中的服务…...

苹果笔记本双系统怎么安装

想要在mac电脑上装双系统,首先需要确认您的电脑是否支持。苹果电脑自带的boot camp工具可以帮助您在mac上安装windows系统,只需按照步骤进行操作即可。另外,您也可以使用虚拟机软件,如parallels desktop或vmware fusion&#xff0…...

探索网络爬虫技术:原理、实践与挑战

一、引言 在数字化时代,信息如同潮水般汹涌而来。过去,我们可能依赖书籍、报纸或电视来获取信息,但这些渠道的信息量有限,而且筛选过的信息未必能满足我们的需求。如今,互联网为我们提供了海量的信息,但同…...

GitHub国内使用方法

1、登录验证: 在火狐中添加插件“身份验证器”。此款插件对应的主页地址为:https://github.com/Authenticator-Extension/Authenticator 2、加速: 安装工具:https://gitee.com/XingYuan55/FastGithub/releases/tag/2.1.4 工具…...

Java调用第三方HTTP接口的常用方式

【日常业务开发】Java调用第三方http接口的常用方式 概述Java调用第三方http接口的方式 通过JDK网络类Java.net.HttpURLConnection通过apache common封装好的HttpClient通过Apache封装好的CloseableHttpClient通过OkHttp通过Spring的RestTemplate通过hutool的HttpUtil 总结 概述…...

DOPE-PEG2000-FITC荧光特性

DOPE-PEG2000-FITC作为一种荧光标记分子,在生物医学领域应用。其荧光特性为生物成像和药物追踪提供了工具应用 FITC,作为荧光团,在受到特定波长的光激发时,能够吸收光能并转化为荧光发射。这一过程中,FITC分子从基态跃…...

华为Pura70支持5G功能吗?看完你就清楚了

随着 5G 技术的普及,现在智能手机市场中的大部分新品都已经支持 5G 网络。相较于 4G,5G 不仅带来了更快的网速,更为用户带来了全新的使用体验。 然而,华为作为智能手机市场的佼佼者,其产品线中的部分手机在配置上却有…...

android 4大组件用法

在Android开发中,应用程序的主要组件包括Activity、Service、Broadcast Receiver和Content Provider。这些组件共同组成了Android应用的基本构架。以下是每个组件的详细用法: 1. Activity Activity是Android应用的主要组成部分,代表一个用户…...

qt pro工程文件通用宏定义

在 Qt .pro 文件中,有一些预定义的宏(或变量),它们代表了特定的路径或与项目、构建环境相关的信息。 以下是一些常用的 .pro 文件宏: 通用宏 $$PWD: 当前 .pro 文件所在的绝对路径。这是一个非常重要的宏,…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...