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内存管理分析
Apr 08 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python数据处理实战(必看篇)
Jun 11 Python
python多线程socket编程之多客户端接入
Sep 12 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
pandas创建DataFrame的7种方法小结
Jun 14 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
php读取本地json文件的实例
2018/03/07 PHP
短信提示使用 特效
2007/01/19 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
js获取域名的方法
2015/01/27 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
python增加图像对比度的方法
2019/07/12 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
一道Delphi面试题
2016/10/28 面试题
求职信名称怎么写
2014/05/26 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
聘任通知书
2015/09/21 职场文书
2019年最新借条范本!
2019/07/08 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
一文弄懂MySQL索引创建原则
2022/02/28 MySQL