% GUI_test.m

% Author : 
% Date   : Sep. 2007

% Creating the function.
function varargout = GUI_test(varargin)

%% define Layout
% define layout of the MainWindow
MW = figure('MenuBar','none',...
                    'Name','Image Anlalyzer',...
                    'NumberTitle','off',...
                    'Toolbar','none',...
                    'Visible','on',...
                    'Position',[0,0,1300,1100]);

% CREATE MENU BAR
% Adding Menu 'File'
MB = uimenu('Label','File');
% Adding menu items to 'File'
item1 = uimenu(MB,'Label','item1');

% ADDING COMPONENTS

% Axes for Original Image
p.axes_img_org = axes('Visible','on',...
                    'Units','Pixels',...
                    'Position',[685,490,590,420]);
% set caption for axes_img_org
st_org_img = uicontrol('Style','text',...
                       'String','Selected Image','FontWeight','Bold',...
                       'Position',[935,915,130,15]);

% Axes for Hisogram        
p.axes_hist    = axes('Visible','on',...
                    'Units','Pixels',...
                    'Position',[685,25,590,420]);
% set caption for axes_hist
st_hist = uicontrol('Style','text',...
                    'String','Histogram','FontWeight','Bold',...
                    'Position',[950,450,100,15]);

% create pushbutton to load original image
pb_org = uicontrol('Style','pushbutton',...
                   'String','Load Image',...
                   'Position',[20,890,90,40],...
                   'Callback',{@img_load});

% create pushbutton to load blank
pb_blk = uicontrol('Style','pushbutton',...
                   'String','Load Blank',...
                   'Position',[185,890,90,40],...
                   'Callback',{@blk_load});

% create pushbutton to start analysis
pb_start = uicontrol('Style','pushbutton',...
                     'String','Start',...
                     'Position',[110,840,75,40],...
                     'Callback',{@img_analysis});

% create text-field for cell-counts
p.counts = uicontrol('Style','text',...
                     'FontSize',11,'FontWeight','Bold',...
                     'Position',[225,810,50,15]);
% text to label 'counts'
counts_txt = uicontrol('Style','text',...
                       'String','Number of detected cells:','FontSize',11,...
                       'Position',[20,810,200,15]);
% Signature
sig = uicontrol('Style','text',...
                'String','A. Kort, MPI Magdeburg, 09/2007','FontSize',7,...
                'Position',[5,5,160,10]);
                   
%% Callback functions

p.img_org = [];
p.blk = [];
guidata(MW,p);

% function to load original image
function img_load(source,eventdata)

    p = guidata(source);

    [FileName,PathName] = uigetfile('*.JPG','Select Original Image');
    
    if isequal([FileName,PathName],[0,0])
        return
    else
        img_org = imread(FileName);
        p.img_org = img_org;
        guidata(source,p);
    end
    
    axes(p.axes_img_org)
    imshow(img_org);
    axis off;
    
% function to load blank
function blk_load(source,eventdata)
    
    p = guidata(source);
    
    [FileName,PathName] = uigetfile('*.JPG','Select Blank');
    if isequal([FileName,PathName],[0,0])
        return
    else
        blk = imread(FileName);
        p.blk = blk;
        guidata(source,p);
    end
    
% function to start analysis
function img_analysis(source,eventdata)

    p = guidata(source);
    [hist,counts] = testfile(p);
    axes(p.axes_hist),imhist(hist);
    set(p.counts,'String',counts);
    
%%
