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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
Python实现的弹球小游戏示例
Aug 01 Python
python中装饰器级连的使用方法示例
Sep 29 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
Python创建或生成列表的操作方法
Jun 19 Python
最小二乘法及其python实现详解
Feb 24 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
keras.layer.input()用法说明
Jun 16 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
php发送post请求的三种方法
2014/02/11 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
如何选择使用结构还是类
2014/05/30 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
营销与策划应届生求职信
2013/11/04 职场文书
干部现实表现材料
2014/02/13 职场文书
小学生学习感言
2014/03/10 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
二婚主持词
2015/06/30 职场文书