python、PyTorch图像读取与numpy转换实例


Posted in Python onJanuary 13, 2020

Tensor转为numpy

np.array(Tensor)

numpy转换为Tensor

torch.Tensor(numpy.darray)

PIL.Image.Image转换成numpy

np.array(PIL.Image.Image)

numpy 转换成PIL.Image.Image

Image.fromarray(numpy.ndarray)

首先需要保证numpy.ndarray 转换成np.uint8型

numpy.astype(np.uint8),像素值[0,255]。

同时灰度图像保证numpy.shape为(H,W),不能出现channels

这里需要np.squeeze()。彩色图象保证numpy.shape为(H,W,3)

之后Image.fromarray(numpy.ndarray)

PIL.Image.Image转换成Tensor

torchvision.transfrom

img=Image.open('00381fa010_940422.tif').convert('L')

import torchvision.transforms as transforms trans=transforms.Compose([transforms.ToTensor()])

a=trans(img)

Tensor转化成PIL.Image.Image

先转换成numpy,再转换成PIL.Image.Image

灰度图像

img=Image.open('00381fa010_940422.tif').convert('L')

import torchvision.transforms as transforms
trans=transforms.Compose([transforms.ToTensor()])

a=trans(img)
b=np.array(a) #b.shape (1,64,64)
maxi=b.max()
b=b*255./maxi
b=b.transpose(1,2,0).astype(np.uint8)
b=np.squeeze(b,axis=2)
xx=Image.fromarray(b)
xx

彩色图象

img2=Image.open('00381fa010_940422.tif').convert('RGB')
import torchvision.transforms as transforms
trans=transforms.Compose([transforms.ToTensor()])
a=trans(img2)
a=np.array(a)
maxi=a.max()
a=a/maxi*255
a=a.transpose(1,2,0).astype(np.uint8)
b=Image.fromarray(a)
b

python-opencv

import cv2
a=cv2.imread('00381fa010_940422.tif') #a.shape (64,64,3)
cv2.imwrite('asd.jpg',a)
Image.fromarray(a)
b=cv2.imread('00381fa010_940422.tif',0)#b.shape (64,64)
Image.fromarray(b)

cv2.imread()返回numpy.darray, 读取灰度图像之后shape为(64,64),RGB图像的shape为(64,64,3),可直接用Image.fromarray()转换成Image。

cv写图像时,灰度图像shape可以为(H,W)或(H,W,1)。彩色图像(H,W,3)

要从numpy.ndarray得到PIL.Image.Image,灰度图的shape必须为(H,W),彩色为(H,W,3)

对于Variable类型不能直接转换成numpy.ndarray,需要用.data转换

np.array(a.data)

以上这篇python、PyTorch图像读取与numpy转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python易忽视知识点小结
May 25 Python
python中redis的安装和使用
Dec 04 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
python中join()方法介绍
Oct 11 Python
python解析json串与正则匹配对比方法
Dec 20 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
python中字典增加和删除使用方法
Sep 30 Python
python 实现表情识别
Nov 21 Python
scrapy处理python爬虫调度详解
Nov 23 Python
pytorch 彩色图像转灰度图像实例
Jan 13 #Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 #Python
python opencv实现信用卡的数字识别
Jan 12 #Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 #Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 #Python
tensorflow的计算图总结
Jan 12 #Python
python利用JMeter测试Tornado的多线程
Jan 12 #Python
You might like
PHP文件上传原理简单分析
2011/05/29 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
会议接待欢迎词
2014/01/12 职场文书
小学毕业家长寄语
2014/01/19 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
死亡赔偿协议书
2015/01/28 职场文书
食品质检员岗位职责
2015/04/08 职场文书
千手观音观后感
2015/06/03 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书