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简单实现基于SSL的IRC bot实例
Jun 15 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
代码实例讲解python3的编码问题
Jul 08 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
django配置app中的静态文件步骤
Mar 27 Python
python打开文件的方式有哪些
Jun 29 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
php 输出双引号"与单引号'的方法
2010/05/09 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
Python爬虫实现百度图片自动下载
2018/02/04 Python
python矩阵的转置和逆转实例
2018/12/12 Python
对python中Json与object转化的方法详解
2018/12/31 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
怎样写好自荐信和推荐信
2013/12/26 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015初中团委工作总结
2015/07/28 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python