Changeset 14597
- Timestamp:
- 04/16/13 10:26:16 (12 years ago)
- Location:
- issm/trunk-jpl/src/m/morphological
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/morphological/aggregation.m
r14580 r14597 60 60 61 61 if optional, 62 s=size(mask);63 62 varargout{1}=x(1:windowsize:s(2)); 64 63 varargout{2}=y(1:windowsize:s(1)); -
issm/trunk-jpl/src/m/morphological/nunataks.m
r14580 r14597 1 1 function [mask]=nunataks(mask) 2 %NUNATAKS - bias mask towards increased 0 cover gage2 %NUNATAKS - bias mask towards increased 0 coverage 3 3 % 4 4 % mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background … … 9 9 % See also CLOSING, OPENING, DILATION, EROSION, AGGREGATION 10 10 11 %check input arguments %{{{ 12 %even windowsize 13 if mod(windowsize,2)==0, 14 error('windowsize should be an even number'); 15 end 11 rocks=~mask; 16 12 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: 14 matrix=[0 1 0; 1 0 1; 0 1 0]; 29 15 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. 17 mask=filter2(matrix1,mask,'same'); 18 pos=find(~crocks & rocks); 38 19 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 20 mask(pos)=0;
Note:
See TracChangeset
for help on using the changeset viewer.