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

2024-06-22 16:28

本文主要是介绍【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】【机器学习】图片张量、通道分解合成和裁剪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084810

相关文章

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个