赞
踩
在进行地震数据处理时,注意到切片得出的二维numpy数据,其保存输出有多种保存方法,以下对Python各方法保存进行说明
语法 :
numpy.save(file_name, arr)
参数:
file_name : 数据被保存到的文件或文件名。如果文件是一个字符串或路径,如果它还没有扩展名,将在文件名上添加一个 .npy扩展名。如果文件是一个文件对象,那么文件名将不会改变。
arr :要保存的阵列数据。
加载时使用如下函数
numpy.load('img.npy') #这里'img.npy'为加载的数据文件名
语法:
numpy.savetxt('file_name', arr)
在保存的numpy数组较大时,无法在Python中直接查看全部,可以保存出txt文件进行查看。
语法:
cv2.imwrite(file_name, m0)
例子1:
import cv2
arr0 = np.array([[0.01,0.02,0.03], [0.01,0.02,0.03], [0.01,0.02,0.03]])
cv2.imwrite('arr0.png', arr0)
保存出的图片为:
由于只有一个通道,保存出来的为灰度图,这里我们的数值都接近0,故保存出来为黑色方块。
例子2:
import cv2
arr1 = np.array([[0,0,0], [300,300,300], [100,100,100]])
cv2.imwrite('arr1.png', arr1)
居中并且带尺寸的图片(这里做了放大处理,三层色块):
此方法本质为保存出适合于seismic的热度图,用于报告等展示效果更好。
from matplotlib import pyplot as plt arr0 = np.array([[0.01,0.02,0.03], [0.01,0.02,0.03], [0.01,0.02,0.03]]) fig = plt.figure('comp_arr0', dpi=300, figsize=(7, 2.5)) plt.imshow(arr0, vmin=-.8, vmax=.8, aspect=1, cmap="seismic", alpha=1.0, resample=True, interpolation = "lanczos") #设置坐标轴不显示 # plt.axis('off') plt.colorbar(fraction=0.1145, pad=0.01) plt.savefig(os.path.join(save_dir, 'comp_arr1.png'), format="png", bbox_inches="tight", dpi=300) plt.show() plt.close(fig)
这时保存的图像并不是数据的灰度值,而是进行处理后便于视觉观看的显示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。