PyTorch图像处理入门:图片张量、通道分解与合成及裁剪实战
创作时间:
作者:
@小白创作中心
PyTorch图像处理入门:图片张量、通道分解与合成及裁剪实战
引用
CSDN
1.
https://blog.csdn.net/weixin_43031313/article/details/139879605
本文将详细介绍如何使用PyTorch对图片张量进行处理,包括读取图片、建立张量、以及对图片进行通道分解和裁剪等操作。适合有一定Python基础和机器学习背景的读者。
一、导入所需库
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 plt
pic_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())
裁剪结果:
热门推荐
钱学森诞辰95周年:中国航天事业的奠基人
中国航天之父:钱学森的传奇人生
论语中的十大学习方法
商业银行降本增效:七大实用策略与方案
十大制作甜品常用的工具推荐 做点心需要什么工具
家常惊艳!独家秘制宫保鸡丁大解密!美食高手,只需这一步步秘传之术!
宫保鸡丁制作全攻略:从传统到创新的完美演绎
林志颖:从《爸爸去哪儿》看“不老男神”的养生秘诀
林志颖家圣诞准备曝光!三兄弟同框超有爱
基因揭秘:你的脸型由谁决定?
手机丢失后的心理调适:从焦虑到释然
手机数据丢失?这些方法帮你轻松找回重要文件!
桂林恭城三庙一馆震撼来袭!历史遗迹重现,带你领略古风之美!
揭秘钱学森归国:一场跨越五年的国际政治博弈
钱学森:中国导弹事业的奠基人
钱学森的科研精神如何影响现代科技?
钱学森:中国导弹事业的奠基人
科学应对“夜哭郎”:从原因到解决方案
全科诊所教你缓解宝宝夜惊
宝宝夜哭真相揭秘:科学应对妙招
北京和睦家医院专家提醒:孩子夜哭不止,当心是睡眠障碍!
维生素B6、钙、镁:宝宝安睡的营养密码
蔡司镜头防盗攻略:这些实用技巧请收好
旅行必备:镜头包让你的相机更安全!
七夕拍照必读:如何保护你的蔡司/徕卡不被偷?
江西十大名菜:从莲花血鸭到鄱阳鱼头,道道都是“赣菜之魂”
听安教你玩转新英雄澜,轻松上分!
《王者荣耀》澜高手进阶操作分享!
北慕“澜”三杀妖刀,主播实力媲美职业?
大梅沙海滨栈道:户外摄影安全指南