前言

将任意格式的图像转换成tiff格式
如指定了tiff_sample则采用与tiff_sample相同的投影和变换方法。

代码

save_tiff.py

import sys
import imageio
import numpy as np
from osgeo import gdaldef save_tiff(out_path, in_data, tiff_sample=None, dtype=None):"""保存tiff文件:param out_path: 保存tif文件路径:param in_data: 原始数据路径 或 数据array(h,w), array(c,h,w) 或 array(h,w,c) 要求c<h,w:param tiff_sample: tif样本路径, 用于提供投影和变换:param dtype: gdal数据类型, 默认自动根据输入识别:return:"""# 数据if isinstance(in_data, str):in_data = imageio.imread(in_data)# 调整维度if len(in_data.shape) == 2:in_data = in_data.reshape(1, *in_data.shape)dim = 1elif len(in_data.shape) == 3:if in_data.shape[0] > in_data.shape[-1]:in_data = in_data.transpose(2, 0, 1)dim = in_data.shape[0]else:raise NotImplementedError# 检测类型if dtype is None:if in_data.dtype == np.dtype('uint8'):dtype = gdal.GDT_Byteelse:dtype = gdal.GDT_Float32# 参照文件if isinstance(tiff_sample, str):tiff_sample = gdal.Open(tiff_sample)# 创建TIFF文件tiff_driver = gdal.GetDriverByName('GTiff').Create(out_path, *[i for i in in_data.shape[::-1]], dtype)if tiff_sample:tiff_driver.SetProjection(tiff_sample.GetProjection())  # 投影tiff_driver.SetGeoTransform(tiff_sample.GetGeoTransform())  # 变换# 写入数据for i in range(dim):tiff_driver.GetRasterBand(i + 1).WriteArray(in_data[i])tiff_driver.FlushCache()returnif __name__ == '__main__':save_tiff(sys.argv[1], sys.argv[2], sys.argv[3])

使用范例:

python save_tiff.py "C:\output.tiff" "C:\input.png" "C:\sample.tiff"

python 保存为tiff文件, 图像转tiff, tif文件添加投影相关推荐

  1. python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战

    python保存大列表(list)数据到文件并后续重新加载为列表(list)对象实战 笔者遇到的问题是这样的, 在做机器学习模型的时候,有的时候会使用相关性分析的方法来进行特征的筛选,去除冗余特征,降 ...

  2. python保存数据使用csv和excel哪种文件最好_Python数据持久化-csv、excel篇

    2018年7月4日笔记 学习目标: 1.会使用Python第三方模块操作CSV文件 2.会使用Python第三方模块操作EXCEL文件 本章内容: Python操作CSV:什么是CSV.Python如 ...

  3. python保存代码_python入门(5)使用文件编辑器编写代码并保存执行

    原博文 2017-04-21 17:21 − python入门(5)使用文件编辑器编写代码并保存执行 两款文本编辑器: 一个是Sublime Text,免费使用,但是不付费会弹出提示框: 一个是Not ...

  4. 易康ecognition中如何导出分好类的TIF 文件

    随着地学研究中技术的改进和研究者对结果准确度要求不断提升,越来越多的研究者会用到Ecognition这个软件,用它来做分类是最常用的功能,但是初学者一般会有一个疑问,就是我分完类别之后怎么导出呢? 第 ...

  5. 使用基于phython的OpenCV库imwrite()保存tiff格式图像

    目录 问题描述 解决方案 问题描述 保存.tiff图像格式时如何保证与原图像属性相同? 解决方案 与图像格式无关,在调用OpenCV库imwrite()函数时,可以在第3位可缺省标志位设置输出图像的参 ...

  6. python matplotlib模块画出的图像转换为.tiff格式

    利用python matplotlib模块(python3.7.1)画出的图表暂不支持直接导出.tiff格式的图片,但是可以导出eps, pdf, pgf, png, ps, raw, rgba, s ...

  7. 保存多序列tiff文件_解码TIFF文件

    0 引言 最近想在Unity中加载一张TIFF图片,因为该图片存储的是海洋流场数据,所以每个像素存的是四通道的32位float,并且还采用了LZW压缩.在网上找了很多读取TIFF文件的代码,也试了下载 ...

  8. Python地学分析 — GDAL将多个遥感图像叠加保存为tif文件

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 本人的GitHub代码资料主页(持续 ...

  9. python图片保存jpg、show变成bmp_Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中...

    Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中 我就废话不多说了,直接上代码吧! import Image from datetime import datetime impor ...

  10. R语言使用tiff函数将可视化图像结果保存tiff格式、使用tiff函数打开图像设备、使用dev.off函数关闭图像设备、使用compression参数自定义压缩类型(形式)

    R语言使用tiff函数将可视化图像结果保存tiff格式.使用tiff函数打开图像设备.使用dev.off函数关闭图像设备.使用compression参数自定义压缩类型(形式) 目录

最新文章

  1. O’Reilly软件架构大会第一天内容回顾
  2. TCP/IP之传输层(一)
  3. 深入探讨!Batch 大小对训练的影响
  4. r语言x c(-1 -2),【软件】R语言入门之向量
  5. 那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)
  6. Springboot使用thymeleaf进行页面跳转
  7. python中的content方法_content最新:python计算Content-MD5并获取文件的Content-MD5值方式_爱安网 LoveAn.com...
  8. OpenGL基础33:帧缓冲(上)之离屏渲染
  9. POJ 3087 Shuffle'm Up(水题)
  10. 动易模板制作示例(三)
  11. Android常用固件修改
  12. 企业开票信息税号查询接口不是万能的
  13. JS打印表格时边框缺失问题
  14. 会php学java入门要多久_php自学需要多久
  15. X/Y/Z Modem、Kermit区别
  16. 携程回应大数据杀熟并致歉 二次支付无票是系统Bug
  17. 北大邹磊:图数据库中的子图匹配算法
  18. 对象和String之间转换(包含基本类型转换)
  19. word2003流程图变成图片_转:Word2003  绘制流程图(2)
  20. 单片机串口通讯RXD与TXD如何对接详解(独家!)

热门文章

  1. php jquery alert 美化,jquery插件hiAlert实现网页对话框美化_jquery
  2. doe五步法_DOE系列--试验设计(DOE)五部曲
  3. 初中计算机vb教程视频教程,关于中学信息技术vb的教学
  4. VS下使用多字符集编码和Unicode字符集编码的总结
  5. java ssh超市进销存管理系统(源码+文档)【源码分享】
  6. 分析-MQ消息队列中间件-在IM即时通讯系统的用途
  7. 别死写代码,这 25 条比涨工资都重要
  8. JS/html5前端合成语音(播报)
  9. 财务自由的日子,我抑郁了
  10. 股指期货首次和二次开户条件