python、PyTorch图像读取与numpy转换

发布时间:2018-06-15 16:27,

浏览次数:1147

, 标签:

python

PyTorch

numpy

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_python、PyTorch图像读取与numpy转换相关推荐

  1. python、PyTorch图像读取与numpy转换

    原文:https://blog.csdn.net/yskyskyer123/article/details/80707038 python.PyTorch图像读取与numpy转换 Tensor转为nu ...

  2. python代码转换为pytorch_python基础教程Pytorch之Tensor和Numpy之间的转换的实现方法...

    为什么要相互转换: 1. 要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就 ...

  3. python代码转换为pytorch_pytorch实现Tensor变量之间的转换

    系统默认是torch.FloatTensor类型 data = torch.Tensor(2,3)是一个2*3的张量,类型为FloatTensor data.cuda()就转换为GPU的张量类型,to ...

  4. 将python代码转换为flowchart代码

    将python代码转换为flowchart代码 慢慢来,报错莫着急 将python代码转换为flowchart代码 问题描述及原因明细 提示:这里除了遇到的问题还有解决方案 报错:UnicodeDec ...

  5. 有没有一个在线工具可以将Python代码转换为Java代码?

    Python和Java是软件开发行业中广泛使用的两种编程语言.两者都有自己的优点和缺点,适用于不同类型的项目.Python以其易用性和可读性而闻名,而Java以其健壮性和性能而闻名. Python和J ...

  6. python代码转换为pytorch_Pytorch中Tensor与各种图像格式的相互转化详解

    前言 在pytorch中经常会遇到图像格式的转化,例如将PIL库读取出来的图片转化为Tensor,亦或者将Tensor转化为numpy格式的图片.而且使用不同图像处理库读取出来的图片格式也不相同,因此 ...

  7. python代码转换为pytorch_pytorch使用 to 进行类型转换方式

    在程序中,有多种方法进行强制类型转换. 本博文将介绍一个非常常用的方法:to()方法. 我们通常使用它来进行GPU和CPU的类型转换,但其实也可以用来进行torch的dtype转换. 常见方法:ten ...

  8. Python代码转换为exe可执行程序详解

    一,简介 Python写完程序,要靠命令来执行太LOW,太低调了,还不华丽了. 再说别人的电脑,都没有Python库,怎么执行,还能不能愉快的一起玩耍了. 所以哪怕只会写一个HelloWorld,也要 ...

  9. Python代码转换为exe可执行程序详解【转】

    转自:https://blog.csdn.net/woshisangsang/article/details/73230433 一,简介 Python写完程序,要靠命令来执行太LOW,太低调了,还不华 ...

最新文章

  1. 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
  2. 2020 年 11 月程序员工资统计,Java 市场占有率仍第一
  3. python监听剪贴板_Python监听剪切板实现方法代码实例
  4. 硒4 Alpha –期望什么?
  5. winshark重要数据结构
  6. 购书中心管理系统的设计
  7. PHP中逻辑运算符的高效用法---和||
  8. Java Break和continue实现goto功能
  9. C# 中的 gdi 而不是 gdi+
  10. iOS学习笔记32 - 锚点
  11. perl的bareword
  12. Servlet+Ajax实现搜索智能提示
  13. MapXtreme 2005 学习心得 将wor格式转wms格式(十)
  14. CE驱动程序快速入门(转)
  15. rational rose的下载和安装教程
  16. 数据中心能效管理系统有哪些平台功能?一分钟了解
  17. 三维坐标转经纬度_地形图坐标转换小程序使用方法
  18. 【APP加载H5页面加载流程概述及提速方案】
  19. 计算机软件著作权 评审,软件著作权在评职称过程中有用吗
  20. cissp怎么维持?cissp维持费用多少?

热门文章

  1. sinee303a变频器说明书_SINEE--EM303A变频器用户手册.pdf
  2. 精读《Function VS Class 组件》
  3. Laravel项目上线部署
  4. PHP开发如何实现多线程?
  5. 基于特征的推荐算法【转】
  6. Thrift架构~thrift中间语言的认识(只有它什么都不是,它才有可能什么都是)
  7. Ubuntu Server下配置UTF-8中文/英文环境
  8. iphone实现下拉列表(iOS开发 )
  9. document.all.item的解释和一个表单向多页面提交
  10. ActionResult 返回类型