Introduction
有一种情况,多幅影像(行列相同)虽然以相同的矢量边界裁剪,但因其覆盖的有效区域有所差异,导致各幅影像的背景区域有一些差别,主要集中在有效区域到背景区域的像元或多或少的是为背景数值。
以Matlab代码识别多幅影像的背景,提取他们的共同背景范围,也就是背景区域最大、有效区域最小的状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | % Created by LI Xu % Version 1.0 % March 7, 2016 % Description: % Recognize the background extent from input images % If you have any question about this code, % please do not hesitate to contact me via E-mail: % jeremy456@163.com % Blog: % http://blog.sciencenet.cn/u/lixujeremy % http://lixuworld.blogspot.com/ clear; clc; % Source Directory SouDir='output'; % All Input Files files=dir(fullfile(SouDir, '*.tif')); % Background Value backvalue=0; % Geoinfo [file, geo]=geotiffread(fullfile(SouDir, files(1).name)); info=geotiffinfo(fullfile(SouDir, files(1).name)); mask=zeros(size(file))+1; for ii=1:length(files) filename=files(ii).name; filepath=fullfile(SouDir, filename); file=imread(filepath); index_back=find(file==backvalue); if isempty(index_back); continue; end mask(index_back)=0; end mask=uint8(mask); % Export geotiffwrite('mask_30m.tif', mask, geo, 'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag); disp('*******************************************'); |
提取的背景与有效区域见Fig. 1,输出结果的背景像元数量大于等于任一输入影像。
Fig. 1
No comments:
Post a Comment