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 自动补全(vim)
Nov 30 Python
python实现发送和获取手机短信验证码
Jan 15 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
谈谈Python中的while循环语句
Mar 10 Python
基于树莓派的语音对话机器人
Jun 17 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
Python3中对json格式数据的分析处理
Jan 28 Python
Python实战之疫苗研发情况可视化
May 18 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中一个控制字符串输出的函数
2006/10/09 PHP
adodb与adodb_lite之比较
2006/12/31 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
使用tensorflow实现线性svm
2018/09/07 Python
20行python代码实现人脸识别
2019/05/05 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
幼儿园教学管理制度
2014/02/04 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
行政助理岗位职责
2015/02/10 职场文书
2015年档案室工作总结
2015/05/23 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS