Changeset 14597


Ignore:
Timestamp:
04/16/13 10:26:16 (12 years ago)
Author:
Eric.Larour
Message:

CHG: Issue in aggregation fixed.
nunataks routine to bias morphological operations towards expanding bedrock.

Location:
issm/trunk-jpl/src/m/morphological
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/morphological/aggregation.m

    r14580 r14597  
    6060
    6161if optional,
    62         s=size(mask);
    6362        varargout{1}=x(1:windowsize:s(2));
    6463        varargout{2}=y(1:windowsize:s(1));
  • issm/trunk-jpl/src/m/morphological/nunataks.m

    r14580 r14597  
    11function [mask]=nunataks(mask)
    2 %NUNATAKS - bias mask towards increased 0 covergage
     2%NUNATAKS - bias mask towards increased 0 coverage
    33%
    44%  mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background
     
    99%  See also CLOSING, OPENING, DILATION, EROSION, AGGREGATION
    1010
    11 %check input arguments  %{{{
    12 %even windowsize
    13 if mod(windowsize,2)==0,
    14         error('windowsize should be an even number');
    15 end
     11rocks=~mask;
    1612
    17 %check on presence of varargin:
    18 optional=0;
    19 if nargin>3,
    20         if nargin~=5,
    21                 help aggregation;
    22                 error('wrong number of optional arguments specified');
    23         else
    24                 optional=1;
    25                 x=varargin{1};
    26                 y=varargin{2};
    27         end
    28 end
     13%matrices for convolution:
     14matrix=[0 1 0; 1 0 1; 0 1 0];
    2915
    30 %check on presence of varargout:
    31 if optional,
    32         if nargout~=3,
    33                 help aggregation;
    34                 error('wrong number of optional output arguments specified');
    35         end
    36 end
    37 %}}}
     16%do not exist, i.e. locations that stand pretty much alone.
     17mask=filter2(matrix1,mask,'same');
     18pos=find(~crocks & rocks);
    3819
    39 %convolve mask
    40 matrix=ones(windowsize,windowsize);
    41 mask=filter2(matrix,mask,'same');
    42 
    43 %apply threshhold
    44 pos=find(mask>threshhold);
    45 pos2=find(mask<=threshhold);
    46 mask(pos)=1;
    47 mask(pos2)=0;
    48 
    49 %mask has been transformed into double format from the filter2  operation. Bring back to binary.
    50 mask=logical(mask);
    51 
    52 %subsample:
    53 s=size(mask);
    54 mask=mask(1:windowsize:s(1),1:windowsize:s(2));
    55 
    56 if optional,
    57         s=size(mask);
    58         varargout{1}=x(1:windowsize:s(2));
    59         varargout{2}=y(1:windowsize:s(1));
    60 end
    61 
    62 
    63 function nunataks();
    64 
    65 %Bias towards increased rock coverage:
    66 matrix1=[1 0 1; 0 0 0 ; 1 0 1];
    67 matrix2=[0 1 0; 1 0 1; 0 1 0];
    68 
    69 
    70 
     20mask(pos)=0;
Note: See TracChangeset for help on using the changeset viewer.