Code covered by the BSD License  

Highlights from
LISQ - A toolbox for the lifting scheme on 2D quincunx grids

image thumbnail
from LISQ - A toolbox for the lifting scheme on 2D quincunx grids by Paul De Zeeuw
A toolbox for the lifting scheme on 2D quincunx grids and for the computation of moment invariants

printshop(figthis, figtxt, f, dops, dotiff, mask, fmin, fmax)
function printshop(figthis, figtxt, f, dops, dotiff, mask, fmin, fmax)
%------------------------------------------------------------------------------
%
% Creates and files an image of gridfunction f as desired.
%
%   figthis   name of picture to be
%   figtxt    title of picture 
%   f         gridfunction to be shown
%   dops      0 no action
%             1 show .epsc imagefile
%             2 show and file .epsc imagefile
%             3 show .eps imagefile
%             4 show and file .eps imagefile
%             5 show and file .pdf imagefile
%   dotiff    0 no action 
%             1 file .tif file in current directory
%             2 file .tif file in directory /ufs/$USER/tmp/
%               Nota Bene: this option only for Unix/Linux platforms and 
%                          dependent on the environment. Either do NOT use
%               this option or adapt it to your personal environment.
%   mask      gridfunction with values 0 or 1 to mask f, may be empty [].
%   fmin      (optional) enforced mimimum of f by scaling: black
%   fmax      (optional) enforced maximum of f by scaling: white
%
%
% Design and implementation by:
% Dr. Paul M. de Zeeuw <Paul.de.Zeeuw@cwi.nl>  http://homepages.cwi.nl/~pauldz/
% Last Revision: November 27, 2006.
%  2001-2003 Stichting CWI, Amsterdam
%------------------------------------------------------------------------------
%
disp([' printshop - processsing ' figthis ' entitled: ' figtxt]);
if nargin == 6
  fmini = min(min(f));
  fmaxi = max(max(f));
  disp([' printshop - minimum of f ' num2str(fmini) ...
                    ' maximum of f ' num2str(fmaxi)]);
elseif nargin == 8
  fmini = fmin;
  fmaxi = fmax;
  disp([' printshop - ENFORCED minimum of f ' num2str(fmini) ...
                    ' ENFORCED maximum of f ' num2str(fmaxi)]);  
else
  error(' printshop - number of arguments should be either 6 or 8 ')
end
%
if fmaxi == fmini
  fmaxi = fmini + max([ 1 abs(0.1*fmini)]);
  disp([' printshop - ENFORCED maximum of f ' num2str(fmaxi)]);
end
%
[n, m] = size(f);
disp([' printshop - dimensions f ' num2str(n) '  ' num2str(m)]);
clear n; clear m;
%
if dops  <=0
  disp(' printshop - shows no image nor writes postscript file ')
elseif dops  <=2
  if exist('imagesc','file') == 2
    if isempty(mask)
      fmasked = f;
    else
      if ~all(size(mask) == size(f))
        error(' printshop - dimensions of f and mask do not match ')
      end
      white = fmaxi;
      fmasked = mask .* f + white * (~mask);
      disp(' printshop - gridfunction f is masked ');
    end
%
    figure;
    imagesc(fmasked, [fmini fmaxi]);
    axis equal;
    axis tight;
    axis off;
    drawnow;
    if dops ==2
      disp(' printshop - writes postscript file ')
      print(gcf,'-depsc',figthis);
    else
      disp(' printshop - writes no postscript file ')
    end
    if ~isempty(figtxt)
      title(figtxt);
    end
  else
    disp(' printshop - WARNING cannot find procedure IMAGESC ')
  end
elseif dops  <=5
  if exist('imshow','file') == 2
    if isempty(mask)
      fmasked = f;
    else
      if ~all(size(mask) == size(f))
        error(' printshop - dimensions of f and mask do not match ')
      end
      white = fmaxi;
      fmasked = mask .* f + white * (~mask);
      disp(' printshop - gridfunction f is masked ');
    end
%
    figure;
    imshow(fmasked, [fmini fmaxi]);
    drawnow;
  else
%   disp(' printshop - WARNING cannot find procedure IMSHOW ')
    h=fmaxi-fmini;
    black=1;
    white=256;
    if h > 0
      sca = (white-black)/h;
    else
      sca = 1.0;
    end
    ftmp= sca*(f-fmini)+black;
    D=(ftmp>white);
    ftmp=white*D+(~D).*ftmp;
    D=(ftmp<black);
    ftmp=black*D+(~D).*ftmp;
    clear D;
    if ~isempty(mask)
      ftmp = mask .* ftmp + white * (~mask);
      disp(' printshop - gridfunction f is masked ');
    end
    map=gray(white);
    colormap(map);
%   disp(' printshop - WARNING new colormap has been set ')
    image(ftmp);
    axis equal;
    axis tight;
    axis off;
    drawnow;
    clear ftmp;
  end
  if dops ==4
    disp(' printshop - writes postscript file ')  
    print(gcf,'-deps',figthis);
  elseif dops ==5
    disp(' printshop - writes pdf file ')  
%   print(gcf,'-dpdf','-r0',figthis);
    print(gcf,'-dpdf',figthis);
%   print(gcf,'-dpdf','-r90',figthis);
  else
    disp(' printshop - writes neither pdf nor postscript file ')  
  end
  title(figtxt);  
else
  disp(' printshop - WARNING dops undefined ')
end
clear fmasked;
%
if dotiff <= 0
  disp(' printshop - writes no tif file ')
elseif dotiff <= 2
  if exist('imwrite','file') == 2
    if dotiff == 1
      direc='';  
    else     
      [fail, direc] = unix('echo -e "/ufs/$USER/tmp/\c"');
      if fail
        error(' printshop - cannot evaluate unix variable $USER ')
      end
      [fail,isnot]=unix('[ -d /ufs/$USER/tmp/ ]; echo -e "$?\c"');
      if fail || isnot ~= '0'
        error([' printshop - with active dotiff the directory ' direc ...
               ' should exist but does not '])
      else
        clear fail; clear isnot;
      end
    end    
    filen=[direc figthis];
%
    h=fmaxi-fmini;
    black=1;
    white=256;
    if h > 0
      sca = (white-black)/h;
    else
      sca = 1.0;
    end
    ftmp= sca*(f-fmini)+black;
    D=(ftmp>white);
    ftmp=white*D+(~D).*ftmp;
    D=(ftmp<black);
    ftmp=black*D+(~D).*ftmp;
    clear D;
    if ~isempty(mask)
      ftmp = mask .* ftmp + white * (~mask);
      disp(' printshop - gridfunction f is masked ');
    end
    disp([' printshop - writes tif file towards ' filen '.tif'])
%   tiffwrite(ftmp, gray(white), filen); OBSOLETE!
    imwrite(ftmp, gray(white), [filen '.tif'], 'tiff');
    clear ftmp;
  else
    disp(' printshop - WARNING cannot find procedure IMWRITE ')
  end
else
  disp(' printshop - WARNING dotiff undefined ')  
end
disp(' printshop - done ')
%------------------------------------------------------------------------------

Contact us at files@mathworks.com