Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何用不同尺寸和空间分辨率的二值图像遮罩geotiff图像?_Image_Matlab_Image Processing_Mask_Geotiff - Fatal编程技术网

Image 如何用不同尺寸和空间分辨率的二值图像遮罩geotiff图像?

Image 如何用不同尺寸和空间分辨率的二值图像遮罩geotiff图像?,image,matlab,image-processing,mask,geotiff,Image,Matlab,Image Processing,Mask,Geotiff,我有两个geotiff格式的光栅,我想在其中执行矩阵乘法以“屏蔽”黑白图像中对应于二进制图像中“0”值的区域。以下介绍了两个光栅数据集: 1米空间分辨率的黑白图像(8位无符号整数;6190 列(7750行) 二进制图像(0和1)(2位无符号整数;8573列, 11077行) 此屏幕截图显示图像2与图像1重叠,并突出显示像素大小的差异 这是我的掩码操作的错误结果。可以看到,遮罩图像缩小到黑白图像的范围,而不是保持其空间尺寸 如何使用不同大小和不同空间分辨率的GeoTIFF执行遮罩操作? 这是

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

  • 1米空间分辨率的黑白图像(8位无符号整数;6190 列(7750行)
  • 二进制图像(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)