matlab实现大尺寸tif(GB级)图像切割成任意多个小文件

本文讲述了在MATLAB 2016a中处理GB级大尺寸TIFF图像的切割问题。作者在尝试多种方法无果后,最终通过Tiff函数成功解决了数值类型截断和文件无法正常解析的问题。文章分享了实现过程及关键代码。
摘要由CSDN通过智能技术生成

matlab实现大尺寸tif(GB级)图像切割

因为新项目需要使用高程数据,但之前从未接触过这方面的信息,也不知道高程数据哪里下载。赶巧其他项目组的合作商正好有这方面的业务,但由于他们跟本项目组并无瓜葛,在好言相求的情况帮忙下载了全球10级的高程数据(2GB的一个文件),不知是出于什么恶趣味他们并没有帮忙分割好,理由是不太大就没分了,如果有需要,让我们自己网上找个软件切割下就行了。然鹅鹅鹅,网上N多种软件和方法都试过了,没有一个好使。几个靠谱简单的方法都是 matlab,但又没用过 matlab ,因此又走了不少弯路,好在功夫有心人,经过三个下班后隐性加班的默默长夜终于写出了这充满焦躁和幸福的几十行 matlab 代码。这里特别感谢以下几个连接的作者,虽然他们的方法我都没实现,或者实现了但达不到我想要的结果,感谢!

https://blog.csdn.net/lovetobelove/article/details/82145416
https://blog.csdn.net/weixin_43182023/article/details/90318649
https://blog.csdn.net/wb175208/article/details/70038285
https://blog.csdn.net/angelazy/article/details/50465058

好了,废话不多说,首先我使用的 matlab 版本是 2016a。说下实现过程中遇到几个问题,使用 imwrite、multibandwrite 和 geotiffwrite 进行写文件的时候,要是就是参数太复杂,没写进去(本人是笨到家了),要么就是写进去后数值类型被截断成 uint8 或者强制转化成 double(原文件读出来是 single),这都造成切割后的文件无法正常解析。经过查资料,多方试验,终于通过 Tifff 函数解决,这个方法感觉好用的很,但是在这几天查资料的过程中出现的频率并不高,也不知道是为啥。创建新文件的时候必须设置那些 tag 值,而且设置那些就够了(其实 tiff 文件里所有 tag 值有 73 个), 至于为什么,有兴趣的同学可以去翻翻相关文档,反正我已经看的头冒金星了。
下面上代码。

// An highlighted block
clc;
clear all;
src_path='G:\谷歌&火狐下载\未命名(125)_高程\1.tif';    %% 原始图片路径
dst_path='e:\1\';                                    %
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值