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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
树莓派实现移动拍照
Jun 22 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
python基于openpyxl生成excel文件
Dec 23 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
jQuery 选择器详解
2015/01/19 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Django发送html邮件的方法
2015/05/26 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python延时操作实现方法示例
2018/08/14 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
集体备课反思
2014/02/12 职场文书
求职信标题怎么写
2014/05/26 职场文书
2014年关工委工作总结
2014/11/17 职场文书
重温入党誓词主持词
2015/06/29 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电