我是靠谱客的博主 优美水壶,这篇文章主要介绍HIF转16位TIF或者PNG,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import glob import os from osgeo import gdal from skimage import io, img_as_uint, exposure # HDF文件所在的目录 dir_path = r"/home/" # 存储的目录 save_path = r"/home/" # 找到后缀是.HDF的文件,并生成列表 hdf_list = glob.glob(dir_path+'/*.HDF') # 排序 hdf_list.sort() for path in hdf_list: # 生成tif的路径以及名称 os.path.basename(path) 返回path最后的文件名 output_path = os.path.join(save_path, os.path.basename(path).split('_')[9])+'.tif' if not os.path.exists(save_path): os.makedirs(save_path) # 返回一个gdal.Dataset类型 datasets = gdal.Open(path) # 对于hdf类型的文件需要这一步来获取子数据集 data_ds = datasets.GetSubDatasets()[1][0] # 打开hdf中的子数据集 Raster = gdal.Open(data_ds) # 返回numpy数组 Data = Raster.ReadAsArray() print(Data.shape) # 将数据整体进行了拉伸 且变成float64类型 # 我处理的图片是16uint 但又分布不均匀 所以进行了数据整体的拉伸 im = exposure.rescale_intensity(Data, out_range='float') # 将数据转化为16uint im = img_as_uint(im) #保存图像 io.imsave(output_path, im)
  • 安装库

from osgeo import gdal
直接pip install gdal

conda install scikit-image 安装 skimage

  • 测试
复制代码
1
2
3
4
from skimage import io im = io.imread('xxxx') print(im.type())
  • 存储PNG
    把.tif改为png就行

https://www.jianshu.com/p/03a5e5501879

https://blog.csdn.net/haoji007/article/details/52063252

最后

以上就是优美水壶最近收集整理的关于HIF转16位TIF或者PNG的全部内容,更多相关HIF转16位TIF或者PNG内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部