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

图形图像处理

开发平台:

Matlab

  1. function y = ffisrgb(x)
  2. %ISRGB Return true for RGB image.
  3. %   FLAG = ISRGB(A) returns 1 if A is an RGB truecolor image and
  4. %   0 otherwise.
  5. %
  6. %   ISRGB uses these criteria to determine if A is an RGB image:
  7. %
  8. %   - If A is of class double, all values must be in the range
  9. %     [0,1], and A must be M-by-N-by-3.
  10. %
  11. %   - If A is of class uint8 or uint16, A must be M-by-N-by-3.
  12. %
  13. %   Note that a four-dimensional array that contains multiple RGB
  14. %   images returns 0, not 1.
  15. %
  16. %   Class Support
  17. %   -------------
  18. %   A can be of class uint8, uint16, or double. If A is of 
  19. %   class logical it is considered not to be RGB.
  20. %
  21. %   See also ISBW, ISGRAY, ISIND.
  22. %   Copyright 1993-2003 The MathWorks, Inc.  
  23. %   $Revision: 1.15.4.2 $  $Date: 2003/08/23 05:52:55 $
  24. y = size(x,3)==3;
  25. if y
  26.    if isa(x, 'logical')
  27.       y = false;
  28.    elseif isa(x, 'double')
  29.       % At first just test a small chunk to get a possible quick negative  
  30.       m = size(x,1);
  31.       n = size(x,2);
  32.       chunk = x(1:min(m,10),1:min(n,10),:);         
  33.       y = (min(chunk(:))>=0 && max(chunk(:))<=1);
  34.       % If the chunk is an RGB image, test the whole image
  35.       if y
  36.          y = (min(x(:))>=0 && max(x(:))<=1);
  37.       end
  38.    end
  39. end