如何用不同尺寸和空间分辨率的二进制图像掩盖地理图像?

时间:2014-04-02 16:48:53

标签: image matlab image-processing mask geotiff

我有geotiff格式的两个栅格,我想执行矩阵乘法到#34;掩盖"黑白图像中对应于" 0"二进制图像中的值。以下描述了两个栅格数据集:

  1. 1m空间分辨率的b / w图像(8位无符号整数; 6190 列,7750行)
  2. 二进制图像(0和1)(2位无符号整数; 8573列, 11077行)
  3. 此屏幕截图显示图像2覆盖图像1并突出显示像素大小的差异

    enter image description here

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

    enter image description here

    如何使用不同大小和不同空间分辨率的地理基站执行蒙版操作?


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

    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)
    

0 个答案:

没有答案