clip.m 814 B

1234567891011121314151617181920212223242526272829303132
  1. % [RES] = clip(IM, MINVALorRANGE, MAXVAL)
  2. %
  3. % Clip values of matrix IM to lie between minVal and maxVal:
  4. % RES = max(min(IM,MAXVAL),MINVAL)
  5. % The first argument can also specify both min and max, as a 2-vector.
  6. % If only one argument is passed, the range defaults to [0,1].
  7. function res = clip(im, minValOrRange, maxVal)
  8. if (exist('minValOrRange') ~= 1)
  9. minVal = 0;
  10. maxVal = 1;
  11. elseif (length(minValOrRange) == 2)
  12. minVal = minValOrRange(1);
  13. maxVal = minValOrRange(2);
  14. elseif (length(minValOrRange) == 1)
  15. minVal = minValOrRange;
  16. if (exist('maxVal') ~= 1)
  17. maxVal=minVal+1;
  18. end
  19. else
  20. error('MINVAL must be a scalar or a 2-vector');
  21. end
  22. if ( maxVal < minVal )
  23. error('MAXVAL should be less than MINVAL');
  24. end
  25. res = im;
  26. res(find(im < minVal)) = minVal;
  27. res(find(im > maxVal)) = maxVal;