ffisgray.m
上传用户:changqing
上传日期:2013-01-11
资源大小:2384k
文件大小:1k
源码类别:

图形图像处理

开发平台:

Matlab

  1. function y = ffisgray(x)
  2. %ISGRAY Return true for intensity image.
  3. %   FLAG = ISGRAY(A) returns 1 if A is a grayscale intensity
  4. %   image and 0 otherwise.
  5. %
  6. %   ISGRAY uses these criteria to decide if A is an intensity
  7. %   image:
  8. %
  9. %   - If A is of class double, all values must be in the range
  10. %     [0,1], and the number of dimensions of A must be 2.
  11. %
  12. %   - If A is of class uint8 or uint16, the number of 
  13. %     dimensions of A must be 2.
  14. %
  15. %   Class Support
  16. %   -------------
  17. %   A can be of class uint8, uint16, or double.
  18. %
  19. %   See also ISBW, ISIND, ISRGB.
  20. %   Copyright 1993-2003 The MathWorks, Inc.  
  21. %   $Revision: 5.20.4.2 $  $Date: 2003/08/23 05:52:53 $
  22. y = ndims(x)==2 && ~isempty(x);
  23. if islogical(x)
  24.   y = false;
  25. elseif ~isa(x, 'uint8') && ~isa(x, 'uint16') && y
  26.   % At first just test a small chunk to get a possible quick negative
  27.   [m,n] = size(x);
  28.   chunk = x(1:min(m,10),1:min(n,10));         
  29.   y = min(chunk(:))>=0 && max(chunk(:))<=1;
  30.   % If the chunk is an intensity image, test the whole image
  31.   if y
  32.     y = min(x(:))>=0 && max(x(:))<=1;
  33.   end
  34. end