1

我有两个 geotiff 格式的栅格,我想在其中执行矩阵乘法以“屏蔽”黑白图像中与二进制图像中的“0”值相对应的区域。下面介绍两个栅格数据集:

  1. 1m 空间分辨率的黑白图像(8 位无符号整数;6190 列,7750 行)
  2. 二进制图像(0 和 1)(2 位无符号整数;8573 列,11077 行)

此屏幕截图显示图像 2 覆盖图像 1 并突出显示像素大小的差异

在此处输入图像描述

这是我的掩码操作的错误结果。您可以看到遮罩图像被缩小到黑白图像的范围,而不是保持它们的空间尺寸。

在此处输入图像描述

如何使用不同大小和不同空间分辨率的 geotiff 执行遮罩操作?


这是我用来应用蒙版的方法:

image1 = 'c:\temp\image2.tif'

%get geotiff metrics
tiffdata = geotiffinfo(image1);
ncols = tiffdata.Width;
nrows = tiffdata.Height;

% Read mask
mask = 'X:\landsat_mask\raster_based\mask\mask_binary.tif';
[J, S] = geotiffread(mask);
mask = double(J);

% Apply binary mask
mask= imresize(mask,[nrows ncols]); %change the mask dimension similar to buffer image
masked = immultiply(double(Zval),mask);
masked =uint8(masked);

%Write Coords_ pixels to .tif   
outputdir = 'C:\temp\'
outfilename = [outputdir 'out' '.tif'];  
geotiffwrite(outfilename, masked, R, 'GeoKeyDirectoryTag', tiffdata.GeoTIFFTags.GeoKeyDirectoryTag)
4

0 回答 0