python – “I; 16”图像文件的numpy.array
发布时间:2020-12-16 23:22:35 所属栏目:Python 来源:网络整理
导读:我想使用TIFF图像有效地保存大量的测量数据.将它们设置为mode =“I; 16”(对应于我的16位数据范围),它们产生2MB文件(~1000×1000“像素”).这很好. 但是,在分析它们时,我遇到了将它们重新转换为数组的麻烦.对于32位数据( – “I”),numpy.array命令工作正常.
我想使用TIFF图像有效地保存大量的测量数据.将它们设置为mode =“I; 16”(对应于我的16位数据范围),它们产生2MB文件(~1000×1000“像素”).这很好.
但是,在分析它们时,我遇到了将它们重新转换为数组的麻烦.对于32位数据( – >“I”),numpy.array命令工作正常.在“I; 16”的情况下,结果是0D numpy数组,其中TIFF为[0,0]条目. 有没有办法让它工作?我真的想避免使用32位图像,因为我不需要该范围,它可以将所需的硬盘空间加倍(计划中有很多很多测量…) 解决方法
这应该工作(枕头/ PIL解决方案,16位图像慢,见下文).
from PIL import Image import numpy as np data = np.random.randint(0,2**16-1,(1000,1000)) im = Image.fromarray(data) im.save('test.tif') im2 = Image.open('test.tif') data2 = np.array(im2.getdata()).reshape(im2.size[::-1]) 使用tifffile by C. Gohlke的另一种解决方案(非常快): import tifffile fp = r'pathtoimageimage.tif' with tifffile.TIFFfile(fp) as tif: data = tif.asarray() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – Numpy安全编程
- python判断字符串编码的简单实现方法(使用chardet)
- Python 老司机给上路新手的 3 点忠告!
- JavaScript高级程序设计 读书笔记之八 Function类及闭包
- 操盘手月入百万!他用Python操盘!恐怕一些资深股民都不知道
- 从零开始学Python第八周:详解网络编程基础(socket)
- python – “得分必须返回一个数字”scikit-learn中的cross
- python – Tensorflow MNIST Estimator:批量大小会影响图
- 如何将多个numpy数组合并到字典列表中
- python,sqlite错误? db被锁定了吗?但它不是吗?