python - 使用两个 numpy 数组创建图像
问题描述
我正在做一个项目,我在一个名为 Prismatic 的程序中进行模拟以获取我以后要使用的文件,Prismatic 以 h5 格式输出文件,我能够使用 Python 从中提取数据,模拟产生一个图像,保存在两个数据集(dim1,dim2)中,每个都是大小为 219 的 numpy 数组,我试图再次从它们创建图像,但我不确定它是如何工作的,我试图堆叠 numpy 数组但我只是在图像中得到一条线,我刚刚了解了 numpy 数组我对它们还不太了解,有人可以帮忙吗?这是我的代码。
fi = h5py.File('ty.h5')
a = fi['4DSTEM_simulation']['data']['realslices']['annular_detector_depth0000']['dim1'][:]
b = fi['4DSTEM_simulation']['data']['realslices']['annular_detector_depth0000']['dim2'][:]
merge_arr = numpy.stack((a, b), axis=0)
data = Image.fromarray(merge_arr)
if data.mode != 'RGB':
data = data.convert('RGB')
解决方案
好的,鉴于您的数据集,我设法找到了一张图片。
from matplotlib import pyplot as plt
%matplotlib inline # remove this if you are not using a jupyter notebook
import h5py
# data link https://file.io/riS5juuYLNin
f = h5py.File('ty.h5')
realslice = (f['4DSTEM_simulation']
['data']
['realslices']
['annular_detector_depth0000']
['realslice'])[:]
plt.imshow(realslice)
#plt.show() # add this if you are not using a jupyter notebook
弄清楚这一点的真正工具是查看文件给定级别的键是什么f
,例如在f.keys()
或f['4DSTEM_simulation'].keys()
等等,然后通过严格这些键访问的可用对象来查看其中项目的形状。最终我找到了一张图片。我对这些数据一无所知,所以也许还有更多。看来您最初的问题实际上并不需要解决。两个 246x1 阵列绝对不会以独特的方式形成图像。
推荐阅读
- c# - Protobuf-net 序列化错误:动态类型不是合约类型:Int32
- django - 将文件绑定到表单
- llvm - 如何使用 CodeGen_LLVM 调试 Halide 内部错误
- c++ - 这个校验和是如何计算的?
- mysql - MySQL:按多列排序(距离和日期)
- iis - URL重写给出404
- c# - 如何在视图中使用 asp.net mvc 在表单上创建新行?
- c - 如何解释从inet_pton转换的地址?
- xamarin - Xamarin 表单旋转 ListView 在重绘时旋转
- android - 为什么我在 Android Studio 中使用数据时可以重命名 @BindingAdapter("app:popularityIcon") 而不会出错?