Bladeren bron

업데이트 'subfunc/clean_coordinates.m'

Hio-Been Han 3 weken geleden
bovenliggende
commit
881aadd9e7
1 gewijzigde bestanden met toevoegingen van 9 en 6 verwijderingen
  1. 9 6
      subfunc/clean_coordinates.m

+ 9 - 6
subfunc/clean_coordinates.m

@@ -1,16 +1,19 @@
 function xy_clean = clean_coordinates(xy, sigma)
-if nargin ==1, sigma = 1.96; end
+if nargin ==1, sigma = 2.56; end
 xy_clean = xy;
-nan_list = isnan(xy);
-speed = [0, mean(abs(diff(xy(1,:))) + abs(diff(xy(2,:))))];
+speed = [0, mean([abs(diff(xy(1,:))); abs(diff(xy(2,:)))])];
 speed_threshold = mean(speed, 'omitnan')+sigma*std(speed, 'omitnan');
-outliers = find(speed>speed_threshold);
 
-% interpolate empty spots
+% Speed-based outlier elimination
+outliers = find(speed>speed_threshold);
 xy_clean(:,outliers-1) = nan;
 xy_clean(:,outliers) = nan;
 xy_clean(:,outliers+1) = nan;
 
+bad = find(speed==0); % Proc not moving frames
+bad(1)=[];
+xy_clean(:,bad) = nan;
+
 % interpolate empty spots
 xy_clean(1,:) = interp_nan(xy_clean(1,:));
 xy_clean(2,:) = interp_nan(xy_clean(2,:));
@@ -20,4 +23,4 @@ end
 function y = interp_nan(x)
 nanx = isnan(x); t = 1:numel(x); 
 y = x; y(nanx) = interp1(t(~nanx), x(~nanx), t(nanx));
-end
+end