python、PyTorch图像读取与numpy转换实例

 更新时间:2020年01月13日 09:00:17   作者:PoemK  
今天小编就为大家分享一篇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图像读取与numpy转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • TensorFlow2.0矩阵与向量的加减乘实例

    TensorFlow2.0矩阵与向量的加减乘实例

    今天小编就为大家分享一篇TensorFlow2.0矩阵与向量的加减乘实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中清空list的四种方法

    Python中清空list的四种方法

    本文介绍了Python中清空列表的四种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python实现批量下载新浪博客的方法

    python实现批量下载新浪博客的方法

    这篇文章主要介绍了python实现批量下载新浪博客的方法,涉及Python页面抓取的相关实现技巧,需要的朋友可以参考下
    2015-06-06
  • python 美化输出信息的实例

    python 美化输出信息的实例

    今天小编就为大家分享一篇python 美化输出信息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django中更改默认数据库为mysql的方法示例

    Django中更改默认数据库为mysql的方法示例

    这篇文章主要介绍了Django中更改默认数据库为mysql的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python标准库之typing的用法(类型标注)

    Python标准库之typing的用法(类型标注)

    这篇文章主要介绍了Python标准库之typing的用法(类型标注),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • python简单操作excle的方法

    python简单操作excle的方法

    Python操作Excle文件:使用xlwt库将数据写入Excel表格,使用xlrd 库从Excel读取数据。这篇文章主要介绍了python简单操作excle的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • python读取LMDB中图像的方法

    python读取LMDB中图像的方法

    这篇文章主要为大家详细介绍了python读取LMDB中图像的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • python变量的存储原理详解

    python变量的存储原理详解

    这篇文章主要介绍了python变量的存储原理详解,对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身,需要的朋友可以参考下
    2019-07-07
  • 五分钟带你搞懂python 迭代器与生成器

    五分钟带你搞懂python 迭代器与生成器

    这篇文章主要介绍了python 迭代器与生成器的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08

最新评论