Rank: 818 based on 86 downloads (last 30 days) and 5 files submitted
photo

Reza Farrahi Moghaddam

E-mail
Company/University
ETS

Personal Profile:
Professional Interests:

 

Watch this Author's files

 

Files Posted by Reza View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
09 Feb 2012 Screenshot Remove white space around images RemoveWhiteSpace removes white spaces around images. Author: Reza Farrahi Moghaddam remove white space, crop, image processing 44 2
07 Jun 2010 Screenshot Apply a function to a specific field of a structure This function searches in a structure, and applies a function to all occurrences of a field. Author: Reza Farrahi Moghaddam structures, data exploration 1 0
31 May 2010 Screenshot Grid-based modeling of images These functions enable calculating functions using the grid-based modeling. Author: Reza Farrahi Moghaddam image processing, grid based modeling 7 0
18 May 2010 Screenshot Universal Color to Gray Conversion This function provides some methods to convert a color image to a gray-value image. Author: Reza Farrahi Moghaddam color to gray convers..., document image proces... 16 0
18 May 2010 Screenshot Objective evaluation of binarization methods for document images Several measures are implemented to evaluate the output of the binarization methods. Author: Reza Farrahi Moghaddam objective evaluation, document image proces..., binarization 18 0
Comments and Ratings by Reza View all
Updated File Comments Rating
09 Feb 2012 Remove white space around images RemoveWhiteSpace removes white spaces around images. Author: Reza Farrahi Moghaddam

Thanks Richard,

I will add Image Processing Toolbox to the requirements for now.

08 Feb 2012 fillPage Quickly set figure properties so printed/exported figure will fill entire page. Author: Richard Quist
27 Jan 2012 deleteoutliers For input vector A, returns a vector B with outliers removed. Author: Brett Shoelson
27 Jan 2012 subfigure Create a figure within a grid-based layout. Like subplot, but for figures. Author: Steve Hoelzer

Very good function!

Here is a small modification to enable the user to choose the screen in case he has multiple screens (like dual screens). The fourth parameter, screen_number, is the number of the screen to be used. If it is 0, both screens will be used. The default value of 1 (the main screen).

-----------------------------------
function varargout = subfigure(varargin)
% Create a figure within a grid-based layout. It's subplot for figures.
%
% subfigure(m,n,p), or subfigure(mnp), divides the screen into an m-by-n grid of
% tiles and creates a figure within the pth tile. Tiles are counted along the
% top row of the screen, then the second row, etc.
%
% If p is a vector, the figure is sized to cover all the subfigure positions
% listed in p.
%
% subfigure(m,n) creates a figure showing a m-by-n grid layout with tiles
% labeled in the order that they are numbered by subfigure. This is useful for
% planning screen layouts, especially when one or more subfigures will span
% multiple tiles (when p is a vector).
%
% h = subfigure(...) returns a handle to the figure.
%
% Every call to subfigure creates a new figure even if a figure exists at the
% location specified by m, n, and p. The existing figure is not made current or
% reused. Existing figures that are overlapped by new subfigures are not
% deleted. This behavior is dissimilar to subplot.
%
% Example 1: Four non-overlapping figures.
%
% subfigure(2,2,1)
% subfigure(2,2,2)
% subfigure(2,2,3)
% subfigure(2,2,4)
%
% Example 2: Three non-overlapping figures of various sizes.
%
% subfigure(4,4,[1 13])
% subfigure(4,4,[2 4])
% subfigure(4,4,[6 16])
%
% Example 3: Show the grid for a 3 x 5 layout.
%
% subfigure(3,5)

% by Steve Hoelzer
% 2009-03-25
% Screen_number added by Reza Farrahi Moghaddam
% 2012-01-27

% Padding to allow room for figure borders and menus
hpad = 20;
vpad = 90;

% Process input arguments
switch nargin
    case 0
        error('Not enough input arguments.')
    case 1
        m = floor(varargin{1}/100);
        n = rem(floor(varargin{1}/10),10);
        p = rem(varargin{1},10);
screen_number = 1;
    case 2
        m = varargin{1};
        n = varargin{2};
        p = [];
screen_number = 1;
    case 3
        m = varargin{1};
        n = varargin{2};
        p = varargin{3};
screen_number = 1;
case 4
        m = varargin{1};
        n = varargin{2};
        p = varargin{3};
screen_number = varargin{4};
    otherwise
        error('Too many input arguments.')
end

% Error checking
if ~isscalar(m) || ~isscalar(n)
    error('Gird dimensions must be scalar values.')
end
if m < 0 || n < 0
    error('Grid dimensions must be greator than zero.')
end
if any(p > m*n)
    error('Position value exceeds grid size.')
end

if isempty(p)
    % Draw example grid using subplots
    p = m*n;
    f = figure('NumberTitle','Off',...
        'Name',sprintf('Subfigure tile numbering for a %i by %i grid',m,n));
    for i = 1:p
        h = subplot(m,n,i);
        set(h,'Box','On',...
            'XTick',[],...
            'YTick',[],...
            'XTickLabel',[],...
            'YTickLabel',[])
        text(0.5,0.5,int2str(i),...
            'FontSize',16,...
            'HorizontalAlignment','Center')
    end
    % Return handle if needed
    if nargout
        varargout{1} = f;
    end
    return
end

% Calculate tile size and spacing
scrsz = get(0, 'monitorpositions'); % 'ScreenSize');
switch screen_number
case 0
scrsz = [scrsz(1, 1:2), scrsz(end, 3:4)];
case 1
scrsz = scrsz(1, :);
case 2
scrsz = scrsz(2, :);
otherwise
scrsz = scrsz(1, :);
end
hstep = floor( (scrsz(3) - scrsz(1) + 1 - hpad) / n );
vstep = floor( (scrsz(4) - scrsz(2) + 1 - vpad) / m );
vsz = vstep - vpad;
hsz = hstep - hpad;

% Row and column positions of each subfigure in p
r = ceil(p/n);
c = rem(p,n);
c(c==0) = n; % Special case

% Position of each subfigure in p in pixels (left, right, bottom, top)
le = scrsz(1) - 1 + hpad + (c-1)*hstep;
ri = le + hsz;
bo = scrsz(2) - 1 + vpad + (m-r)*vstep;
to = bo + vsz;

% Position of a subfigure that covers all subfigures in p
le = min(le); % Leftmost left
ri = max(ri); % Rightmost right
bo = min(bo); % Lowest bottom
to = max(to); % Highest top

% Calculate figure position
pos = [le, bo, ri-le, to-bo]; % [left, bottom, width, height]

% Display figure
h = figure('Position',pos);

% Return handle if needed
if nargout
    varargout{1} = h;
end
-------------------------------

30 Nov 2011 SUBFIGURE SUBFIGURE creates figures in tiled positions. Author: Matt Fig
Comments and Ratings on Reza's Files View all
Updated File Comment by Comments Rating
09 Feb 2012 Remove white space around images RemoveWhiteSpace removes white spaces around images. Author: Reza Farrahi Moghaddam Farrahi Moghaddam, Reza

Thanks Richard,

I will add Image Processing Toolbox to the requirements for now.

09 Feb 2012 Remove white space around images RemoveWhiteSpace removes white spaces around images. Author: Reza Farrahi Moghaddam Darling, Richard

Appears to require Image Processing Toolbox or some internal rewriting to eliminate mat2gray and rgb2gray.

Top Tags Applied by Reza
document image processing, image processing, binarization, color to gray conversion, crop
Files Tagged by Reza View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
09 Feb 2012 Screenshot Remove white space around images RemoveWhiteSpace removes white spaces around images. Author: Reza Farrahi Moghaddam remove white space, crop, image processing 44 2
07 Jun 2010 Screenshot Apply a function to a specific field of a structure This function searches in a structure, and applies a function to all occurrences of a field. Author: Reza Farrahi Moghaddam structures, data exploration 1 0
31 May 2010 Screenshot Grid-based modeling of images These functions enable calculating functions using the grid-based modeling. Author: Reza Farrahi Moghaddam image processing, grid based modeling 7 0
18 May 2010 Screenshot Universal Color to Gray Conversion This function provides some methods to convert a color image to a gray-value image. Author: Reza Farrahi Moghaddam color to gray convers..., document image proces... 16 0
18 May 2010 Screenshot Objective evaluation of binarization methods for document images Several measures are implemented to evaluate the output of the binarization methods. Author: Reza Farrahi Moghaddam objective evaluation, document image proces..., binarization 18 0

Contact us at files@mathworks.com