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')# 将数据转化为16uintim = img_as_uint(im)#保存图像io.imsave(output_path, im)
  • 安装库

from osgeo import gdal
直接pip install gdal

conda install scikit-image 安装 skimage

  • 测试
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相关推荐

  1. 【GlobalMapper精品教程】040:tif转jpg:解决ArcGIS中JPEG压缩仅支持8位或16位无符号数据的问题

    文章目录 一.问题描述 二.Globalmapper软件tif转jpg方法总结 1. 单波段导出RGB模式多个波段 2. 单波段导出单波段(灰度1个8位波段) 3. 多波段导出RGB模式多个波段 一. ...

  2. 【ArcGIS风暴】ArcGIS tif转jpg:JPEG压缩仅支持8位或16位无符号数据(具有一个或三个波段,且没有色彩映射表)解决方案!

    扩展阅读:[ArcGIS风暴]ArcGIS支持的栅格数据格式大全及格式转换案例精解 文章目录 问题描述 tif格式和JPEG格式详解 ArcGIS软件tif转jpg方法总结 问题描述 如下图所示,在A ...

  3. Halcon real类型TIF与16位PNG相互转换算法

    *************** *Tif转PNG *************** *图片的编码信息 Z_MAX:=[] Z_MIN:=[] Z_SCALE:=[] X_OFFSET:=0 X_SCAL ...

  4. tif格式real类型图片与16位PNG图片的转化(编码/解码)

    将real类型图片编码成PNG的图片: 其原理在于以一定的编码方式,将real类型的实际高度信息转为16位的PNG图,同时,在最后一行将图片的编码方式存储下来,解码时先将编码方式读取,再将PNG格式深 ...

  5. 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码

    /**24位深的bmp图片转换为16位深RGB565格式的bmp图片**/ #include <iostream> #include <stdio.h> #include &l ...

  6. 使用Python,OpenCV进行卡类型及16位卡号数字的OCR

    使用Python,OpenCV进行卡类型及16位卡号数字的OCR 1. 效果图 2. 原理 2.1 OCR-A字体 2.2 检测过程步骤 2.3 优化 3. 源代码 参考 这篇博客将介绍如何通过Ope ...

  7. ASP.Net中MD5加密-16位32位

    public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...

  8. python将图像转换为8位单通道_Python OpenCV读取16位单通道图像并转换为8位灰度图显示...

    语义.实例分割数据集的标注图像以及一些深度图像等都是由单通道16位整型图像存储的,我们通常需要读取这种图像并显示出来,由于OpenCV一般只能够对8位图像进行显示,也就是像素范围在0-255的图像,而 ...

  9. 假定某计算机的cpu,假定某计算机字长16位,CPU内部结构如图5.1所示,CPU和存储器之间采用同步方式通信,按字编址。采_搜题易...

    假定某计算机字长16位,CPU内部结构如图5.1所示,CPU和存储器之间采用同步方式通信,按字编址.采用定长指令字格式,指令由两个字组成,第一个字指明操作码和寻址方式,第二个字包含立即数Imm16.若 ...

  10. 第4关:16位快速加法器设计

    实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位.32位.64位快速加 ...

最新文章

  1. python软件开发-如何编写Python软件开发文档(7个技巧)
  2. 宁波大学计算机网络实验五,宁波大学计算机网络实验答案.doc
  3. maven dependency中scope=compile 和 provided区别
  4. react学习(51)--避免死循环
  5. Kubernetes Master High Availability 高级实践
  6. IDEA或Webstorm设置Terminal终端字体大小
  7. zemax评价函数编辑器_zemax常用评价函数操作数..doc
  8. spring5源码-事务
  9. Python2/3共存,pip2/3共存
  10. 【树叶识别】基于matlab PNN神经网络树叶类别【含Matlab源码 798期】
  11. 【钛坦白】清华大学李建:深度学习在时空大数据分析中的应用(转载)
  12. 欧若科技通过 OpenKG 开放 Nebula Graph 图数据库
  13. centos 查看版本号方法
  14. token与JWT详细介绍
  15. 振耀退休感言及海辉执行董事长视频访谈
  16. 陈怡暖:FED决议措辞偏鹰,黄金先扬后抑险守千二关
  17. stream流的使用
  18. 快速上手IntelliJ IDEA常用快捷键
  19. 会员营销中,数字会员模式如何打造差异化会员服务
  20. Win8系统flash无法播放视频怎么办?

热门文章

  1. dell 服务器自动更新驱动程序,通过Repository Manager 1.3来管理戴尔驱动程序更新
  2. Python实现自动群发自定义QQ消息
  3. 计算机上平方米的单位,word怎么写平方米 word中平方米的单位怎么打
  4. Ubuntu16.04 + Titan XP + cuda8.0 + cudnn5.1 + opencv3.3.0 + caffe
  5. 安装 FreeBSD-13.0-RELEASE-amd64
  6. 济南市公安局交警支队辅警信息管理系统
  7. HDU 4475 Downward paths (推公式)
  8. android 热修复阿里,Android热修复(阿里热修复)
  9. 最实用的Mysql安全加固手册
  10. c语言 数据类型作业 答案,C语言-数据类型习题及答案