AnalyzeDeepLabCut.m 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. function [timestamps,xcoordinates,ycoordinates]=AnalyzeDeepLabCut(file)
  2. data=h5read(file,'/df_with_missing/table');
  3. leftlight_x=data.values_block_0(1,:)';
  4. leftlight_y=data.values_block_0(2,:)';
  5. leftlight_l=data.values_block_0(3,:)';
  6. rightlight_x=data.values_block_0(4,:)';
  7. rightlight_y=data.values_block_0(5,:)';
  8. rightlight_l=data.values_block_0(6,:)';
  9. headcap_x=data.values_block_0(7,:)';
  10. headcap_y=data.values_block_0(8,:)';
  11. headcap_l=data.values_block_0(9,:)';
  12. %only look at frames where deeplabcut is above a certain likelihood cutoff
  13. likelihood_cutoff=0.95;
  14. xcoord=headcap_x(headcap_l>likelihood_cutoff);
  15. ycoord=headcap_y(headcap_l>likelihood_cutoff);
  16. frames=1:length(headcap_x);
  17. incframes=frames(headcap_l>likelihood_cutoff);
  18. incframetimes=(incframes-1)/30;
  19. %remove outliers
  20. wrongx = isoutlier(xcoord,'movmedian',30);%,'samplepoints',incframetimes);
  21. wrongy = isoutlier(ycoord,'movmedian',30);%,'samplepoints',incframetimes);
  22. timestamps=incframetimes(wrongx==0 & wrongy==0);
  23. xcoordinates=xcoord((wrongx==0 & wrongy==0));
  24. ycoordinates=ycoord((wrongx==0 & wrongy==0));
  25. end