MatLab基于给定的行列号范围读取遥感影像

问题背景

最近基于Matlab处理遥感数据时发现,遥感数据往往很大,直接基于matlab的geotiffread函数读取时,会将整景影像全部读取进内存中,消耗的时间较长,如果遥感数据过大,还会存在内存不足而读取失败的情况。因此,我打算写一个基于给的的行列号范围切片读取遥感影像的函数以解决这个问题。

function [inputRaster,R,info] = readTiff(inputRasterPath,rows,cols)
% readTiff 基于给定的行列号范围读取遥感影像
% inputRasterPath: 输入的遥感影像名称;
% rows:需要读取的遥感影像行号范围,如[1,100],读取第1到第100行;
% cols:需要读取的遥感影像行号范围,如[1,100],读取第1到第100列;
% 示例:inputRasterPath = ',/test.tif';
%           rows = [100,1000];
%           cols = [100,1000];
%           [raster,R,info]=readTiff(inputRasterPath,rows,cols);

% 获取原始遥感数据投影等信息
info = geotiffinfo(inputRasterPath);
% 判断给定的行列号上下限是否超出影像实际范围
if rows(1)>info.Height
     rows = [1,info.Height];
     disp('行号超出范围,读取原始影像全部行');
elseif rows(2)>info.Height
    rows = [rows(1),info.Height];
end

if cols(1)>info.Width  
    cols = [1,info.Widt
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值