changeset 189:75b5dedcfd45 luisf_dev

created initialization file; changing SMALL_learn in order to initialize plugins.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Thu, 16 Feb 2012 18:24:43 +0000
parents 3cc204120431
children 8e0b28405fcb
files SMALLBoxInit.m util/SMALL_learn.m
diffstat 2 files changed, 479 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SMALLBoxInit.m	Thu Feb 16 18:24:43 2012 +0000
@@ -0,0 +1,445 @@
+function SMALLboxInit(varargin)
+%%  SMALLboxInit
+% 
+%   Will add all necessary files and folders to the Matlab Path
+%
+%   SMALLbox initialisation
+
+%
+%   Centre for Digital Music, Queen Mary, University of London.
+%   This file copyright 2009 Ivan Damnjanovic, Matthew Davies.
+%
+%   This program is free software; you can redistribute it and/or
+%   modify it under the terms of the GNU General Public License as
+%   published by the Free Software Foundation; either version 2 of the
+%   License, or (at your option) any later version.  See the file
+%   COPYING included with this distribution for more information.
+%   
+%%
+clc;
+clear;
+
+FS=filesep;
+
+SMALL_path=pwd;
+SMALL_p=genpath(SMALL_path);
+addpath(SMALL_p);
+
+
+% should init "old" toolboxes
+
+
+
+
+
+%%
+
+
+% if ~exist('sparcoSetup.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising SPARCO and Rice Wavelet Toolbox Setup');
+%     
+%     Sparco_path = [SMALL_path,FS,'toolboxes',FS,'SPARCO'];
+%     if exist([Sparco_path, FS, 'sparco-1.2.zip'],'file'),
+%         Sparco_zip=[Sparco_path, FS, 'sparco-1.2.zip'];
+%     else
+%         Sparco_zip='http://www.cs.ubc.ca/labs/scl/sparco/downloads.php?filename=sparco-1.2.zip';
+%         fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%     end
+%     unzip(Sparco_zip,Sparco_path);
+%     Sparco_p=genpath(Sparco_path);
+%     addpath(Sparco_p);
+%     cd(SMALL_path)
+%     
+%     
+%     
+%     if exist('curvelab.pdf','file')
+%         crvroot = fileparts(which('curvelab.pdf'));
+%         addtopath(crvroot,'fdct_usfft_matlab');
+%         addtopath(crvroot,'fdct_wrapping_matlab');
+%         addtopath(crvroot,'fdct_wrapping_cpp/mex');
+%         addtopath(crvroot,'fdct3d/mex');
+%     else
+%         fprintf(['\nWarning: CurveLab is not in the path. Sparco Problems 50-51 ' ...
+%             'will not work.\n\n']);
+%     end
+%     
+%     
+%     cd(SMALL_path);
+% 
+%     fprintf('SPARCO Installation Successful!\n');
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n SPARCO and Rice Wavelet Toolbox are already installed');
+% end
+% %%
+%     %removing Rice Wavelet tollbox provided with SPARCO from the path, so
+%     %the newer version provided with SMALLbox is used
+%     
+%     rmpath([SMALL_path,FS,'toolboxes',FS,'SPARCO',FS,'sparco-1.2',FS,'tools',FS,'rwt']);
+% 
+% if ~exist('spgsetup.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising SPGL1 Setup');
+%     
+%     try
+%         SPGL1_path = [SMALL_path,FS,'toolboxes',FS,'SPGL1'];
+%         if exist([SPGL1_path, FS, 'spgl1-1.7.zip'],'file'),
+%             SPGL1_zip=[SPGL1_path, FS, 'spgl1-1.7.zip'];
+%         else
+%             SPGL1_zip='http://www.cs.ubc.ca/~mpf/downloads/spgl1-1.7.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(SPGL1_zip,SPGL1_path);
+%         SPGL1_p=genpath(SPGL1_path);
+%         addpath(SPGL1_p);
+%         
+%         
+%         cd([SPGL1_path,FS,'spgl1-1.7']);
+%         fprintf('Compiling SPGL1 MEX interfaces ...');
+%         try
+%             spgsetup;
+%             fprintf('\n SPGL1 Installation Successful!\n');
+%         catch
+%             warning('Could not compile SPGL1 MEX interfaces.');
+%         end
+%     catch
+%         fprintf('\n SPGL1 Installation Failed\n');
+%     end
+%     cd(SMALL_path);
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n SPGL1 is already installed');
+% end
+% %%
+% 
+% if ~exist('SparsePath.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising SparseLab Setup');
+%     
+%     try
+%         SL_path = [pwd,FS,'toolboxes',FS,'SparseLab'];
+%         if exist([SL_path, FS, 'SparseLab21-Core.zip'],'file'),
+%             SL_zip=[SL_path, FS, 'SparseLab21-Core.zip'];
+%         else
+%             SL_zip='http://sparselab.stanford.edu/SparseLab_files/Download_files/SparseLab21-Core.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(SL_zip,SL_path);
+%         SL_p=genpath(SL_path);
+%         addpath(SL_p);
+%         fprintf('\n SparseLab Installation Successful!\n');
+%     catch
+%         fprintf('\n SparseLab Installation Failed\n');
+%         cd(SMALL_path);
+%     end
+%     cd(SMALL_path);
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n SparseLab is already installed');
+% end
+% %%
+% 
+% if ~exist('greed_pcgp.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising Sparsify Setup');
+%     
+%     try
+%         Sparsify_path = [pwd,FS,'toolboxes',FS,'Sparsify'];
+%         if exist([Sparsify_path, FS, 'sparsify_0_4.zip'],'file'),
+%             Sparsify_zip=[Sparsify_path, FS, 'sparsify_0_4.zip'];
+%         else
+%             Sparsify_zip='http://www.see.ed.ac.uk/~tblumens/sparsify/sparsify_0_4.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(Sparsify_zip,Sparsify_path);
+%         Sparsify_p=genpath(Sparsify_path);
+%         addpath(Sparsify_p);
+%         fprintf('\n Sparsify Installation Successful\n');
+%     catch
+%         fprintf('\n Sparsify Installation Failed\n');
+%     end
+%     cd(SMALL_path);
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Sparsify is already installed');
+% end
+% %%
+% if ~exist('GPSR_Basic.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising GPSR Setup');
+%     
+%     try
+%         GPSR_path = [pwd,FS,'toolboxes',FS,'GPSR'];
+%         if exist([GPSR_path, FS, 'GPSR_6.0.zip'],'file'),
+%             GPSR_zip=[GPSR_path, FS,'GPSR_6.0.zip'];
+%         else
+%             GPSR_zip='http://www.lx.it.pt/~mtf/GPSR/GPSR_6.0.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(GPSR_zip,GPSR_path);
+%         
+%         GPSR_p=genpath(GPSR_path);
+%         addpath(GPSR_p);
+%         fprintf('\n GPSR Installation Successful\n');
+%     catch
+%         fprintf('\n GPSR Installation Failed');
+%     end
+%     cd(SMALL_path);
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n GPSR is already installed');
+% end
+% %%
+% if ~exist('cvx_setup.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising CVX Setup');
+%     
+%     try
+%         CVX_path = [pwd,FS,'toolboxes',FS,'CVX'];
+%         machine=computer;
+%         if (strcmp(machine,'PCWIN')||strcmp(machine,'PCWIN64'))
+%             if exist([CVX_path, FS, 'cvx.zip'],'file'),
+%                 CVX_zip=[CVX_path, FS,'cvx.zip'];
+%             else
+%                 CVX_zip='http://cvxr.com/cvx/cvx.zip';
+%                 fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%             end
+%             unzip(CVX_zip,CVX_path);
+%         else
+%             if exist([CVX_path, FS, 'cvx.tar.gz'],'file'),
+%                 CVX_tar=[CVX_path, FS,'cvx.tar.gz'];
+%             else
+%                 CVX_tar='http://cvxr.com/cvx/cvx.tar.gz';
+%                 fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%             end
+%             untar(CVX_tar,CVX_path);
+%         end
+%         cd([CVX_path,FS,'cvx']);
+%         fprintf('\n\n Running cvx_setup.m script \n\n');
+%         cvx_setup;
+%         fprintf('\n\n Ignore the cvx_setup note about adding the path. It is done automatically in SMALLbox  \n\n');
+%         CVX_p=genpath(CVX_path);
+%         addpath(CVX_p);
+%         fprintf('\n CVX Installation Successful\n');
+%     catch
+%         fprintf('\n CVX Installation Failed');
+%     end
+%     cd(SMALL_path);
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n CVX is already installed');
+% end
+% 
+% %%
+% %% KSVD utils setup
+% 
+% if ~(exist('addtocols')==3)
+%     cd([SMALL_path,FS,'util',FS,'ksvd utils']);
+%     make
+%     cd(SMALL_path);
+% end
+% 
+% %% fast omp for Gabor dictionary 
+% 
+% if ~(exist('omp2Gabor')==3)
+%     cd([SMALL_path,FS,'solvers', FS,'SMALL_ompGabor']);
+%     make
+% cd(SMALL_path);
+% end
+% %%
+% if ~exist('ksvdver.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising OMPbox and KSVDBox Setup');
+%     
+%     try
+%         KSVD_path = [pwd,FS,'toolboxes',FS,'KSVD'];
+%         if exist([KSVD_path, FS, 'ompbox10.zip'],'file'),
+%             omp_zip=[KSVD_path, FS, 'ompbox10.zip'];
+%         else
+%             omp_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ompbox10.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(omp_zip,[KSVD_path, FS, 'ompbox']);
+%         
+%         cd([KSVD_path, FS, 'ompbox', FS, 'private']);
+%         make;
+%         cd(SMALL_path);
+%         
+%         if exist([KSVD_path, FS, 'ksvdbox13.zip'],'file'),
+%             KSVD_zip=[KSVD_path, FS, 'ksvdbox13.zip'];
+%         else
+%             KSVD_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ksvdbox13.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(KSVD_zip,[KSVD_path, FS, 'ksvdbox']);
+%         cd([KSVD_path, FS, 'ksvdbox', FS, 'private']);
+%         make;
+%         cd(SMALL_path);
+%         KSVD_p=genpath(KSVD_path);
+%         addpath(KSVD_p);
+%         fprintf('\n KSVDBox and OMPBox Installation Successful\n');
+%     catch
+%         fprintf('\n KSVDBox and OMPBox Installation Failed');
+%         cd(SMALL_path);
+%     end
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n KSVD is already installed');
+% end
+% %%
+% if ~exist('ksvdsver.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n Initialising OMPSbox and KSVDSBox Setup');
+%     
+%     try
+%         KSVDS_path = [pwd,FS,'toolboxes',FS,'KSVDS'];
+%         if exist([KSVDS_path, FS, 'ompsbox1.zip'],'file'),
+%             omps_zip=[KSVDS_path, FS, 'ompsbox1.zip'];
+%         else
+%             omps_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ompsbox1.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(omps_zip,[KSVDS_path, FS, 'ompsbox']);
+%         
+%         cd([KSVDS_path, FS, 'ompsbox', FS, 'private']);
+%         make;
+%         cd(SMALL_path);
+%         
+%         if exist([KSVDS_path, FS, 'ksvdsbox11.zip'],'file'),
+%             KSVDS_zip=[KSVDS_path, FS, 'ksvdsbox11.zip'];
+%         else
+%             KSVDS_zip='http://www.cs.technion.ac.il/%7Eronrubin/Software/ksvdsbox11.zip';
+%             fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%         end
+%         unzip(KSVDS_zip,[KSVDS_path, FS, 'ksvdsbox']);
+%         cd([KSVDS_path, FS, 'ksvdsbox', FS, 'private']);
+%         make;
+%         cd(SMALL_path);
+%         KSVDS_p=genpath(KSVDS_path);
+%         addpath(KSVDS_p);
+%         fprintf('\n KSVDSbox and OMPSbox Installation Successful\n');
+%     catch
+%         fprintf('\n KSVDSbox and OMPSbox Installation Failed');
+%         cd(SMALL_path);
+%     end
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n KSVDS is already installed');
+% end
+% %%
+% 
+% if ~exist('mexTrainDL.m','file')
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n If you want to use SMALLbox with SPAMS On-line Dictionary Learning please go to:');
+%      fprintf('\n http://www.di.ens.fr/willow/SPAMS/index.html');
+%     fprintf('\n and follow the instructions. The License prohibits redistribution of the SPAMS.');
+%     
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n SPAMS On-line Dictionary Learning is already installed');
+% end;
+% %%
+% 
+% 
+% if ~exist('midiInfo.m','file')
+% try
+%     matlab_midi_path = [pwd,FS,'util',FS,'matlab_midi'];
+%     if exist([matlab_midi_path, FS, 'matlab_midi.zip'],'file'),
+%         matlab_midi_zip=[SL_path, FS, 'matlab_midi.zip'];
+%     else
+%         matlab_midi_zip='http://www.kenschutte.com/static/code/matlab_midi.zip';
+%         fprintf('\n\n Downloading toolbox, please be patient\n\n');
+%     end
+%     unzip(matlab_midi_zip,matlab_midi_path);
+%     matlab_midi_p=genpath(matlab_midi_path);
+%     addpath(matlab_midi_p);
+%     fprintf('\n matlab_midi (http://www.kenschutte.com/midi/) Installation Successful!\n');
+% catch
+%     fprintf('\n matlab_midi (http://www.kenschutte.com/midi/) Installation Failed\n');
+%     cd(SMALL_path);
+% end
+% 
+% else
+%     fprintf('\n ******************************************************************');
+%     fprintf('\n\n matlab_midi (http://www.kenschutte.com/midi/) is already installed');
+% end
+% 
+% 
+% 
+% %% RWT setup
+% if ~(exist('mdwt')==3)
+%     cd([SMALL_path, FS, 'util', FS, 'Rice Wavelet Toolbox'])
+%     fprintf('Compiling the Rice Wavelet Toolbox MEX interfaces...');
+%     try
+%         if exist('mdwt'  ,'file')~=3, mex mdwt.c;   end
+%         if exist('midwt' ,'file')~=3, mex midwt.c;  end
+%         if exist('mrdwt' ,'file')~=3, mex mrdwt.c;  end
+%         if exist('mirdwt','file')~=3, mex mirdwt.c; end
+%         fprintf('Rice Wavelet Toolbox Installation Successful!\n\n');
+%     catch
+%         warning('Could not compile Rice Wavelet Toolbox MEX interfaces.\n');
+%     end
+%     cd(SMALL_path);
+% end
+% %%
+% fprintf('\n ******************************************************************');
+% fprintf('\n\n Initialising SMALLbox Examples Setup');
+% 
+% %     % Need to do a bit of temporary housekeeping first.
+% %     cd(SMALL_path);
+% %   try
+% %     cd(['Problems',FS,'private']);
+% %     if exist('addtocols'  ,'file')~=3,
+% %     fprintf('\n Compiling MEX interfaces for SMALL examples \n');
+% %     make;
+% %     end
+% %     fprintf('\n SMALLbox Problems Installation Successful! \n');
+% %   catch
+% %     fprintf('\n SMALLbox Problems Installation Failed \n');
+% %   end
+% %     cd(SMALL_path);
+% 
+% 
+% 
+% fprintf('\n ******************************************************************');
+% fprintf('\n\n SMALLbox Installation Complete!');
+% 
+% 
+% fprintf('\n\n For more information on the installed toolboxes see');
+% fprintf('\n\n Sparco: http://www.cs.ubc.ca/labs/scl/sparco/');
+% fprintf('\n\n SPGL1: http://www.cs.ubc.ca/labs/spgl1/?n=HomePage');
+% fprintf('\n\n SparseLab: http://sparselab.stanford.edu/   (PLEASE REGISTER SPARSELAB!)');
+% fprintf('\n\n Sparsify: http://www.see.ed.ac.uk/~tblumens/sparsify/sparsify.html');
+% fprintf('\n\n GPSR: http://www.lx.it.pt/~mtf/GPSR/');
+% fprintf('\n\n CVX: http://cvxr.com/cvx/');
+% fprintf('\n\n OMPbox and KSVDBox: http://www.cs.technion.ac.il/~ronrubin/\n');
+% 
+% 
+% % LIST DEMOS FROM EXAMPLE DIRECTORY...
+% 
+% demo_ack = input('\n\n Would you like to run a demo: ([y]/n)? ','s');
+% 
+% if demo_ack == 'n',
+%   fprintf('\n Thank you for installing SMALLbox.');
+%   fprintf('\n For information on the SMALLbox example scripts');
+%   fprintf('\n Please see the examples directory. \n');
+%   return;
+% else
+%   
+%   demo_choice = input('\n 1 to run SMALL_solver_test \n 2 to run Dictionary Learning for Image Denoising demo \n q to quit: ','s');
+%   switch(demo_choice)
+%   case{'1'}
+%     fprintf('\n Running SMALL_solver_test problem');
+%     SMALL_solver_test;
+%   case{'2'}
+%     fprintf('\n Running SMALL Image Denoise problem');
+%     SMALL_ImgDenoise_DL_test_KSVDvsSPAMS;
+%   otherwise
+%     return;
+%   end
+%   
+% end
+% 
+
+  
--- a/util/SMALL_learn.m	Thu Feb 09 17:26:45 2012 +0000
+++ b/util/SMALL_learn.m	Thu Feb 16 18:24:43 2012 +0000
@@ -101,6 +101,40 @@
 %     D = eval([DL.name,'(<Preffered_API>);']);
 
   else
+    % register other toolboxes from the extra plugins folder
+    folders = dir('extra');
+    extra_plugins = folders(arrayfun(@(x) x.name(1), folders) ~= '.');
+    extra_plugins = extra_plugins([extra_plugins.isdir])
+    
+    if length(extra_plugins) > 0
+        printf('Found %i extra plugin(s) in the extra plugins folder.\n', length(extra_plugins));
+        
+        for i=1:length(extra_plugins)
+            printf('Initializing extra plugin "%s"', extra_plugins(i).name);
+            
+            %% adds all files from path
+            genpath(['extra/', extra_plugins(i).name]); 
+            
+            % open plugin's init file 
+            
+            
+            init_file = ['extra/', extra_plugins(i).name, '/init.m'];
+            
+            if ~(exist(init_file == 2)
+                error(['Plugin ', extra_plugins(i).name, ' init file does not exist. Exiting now...'])
+            else
+                % get the correct function handle and run it
+                init_file
+                
+            end
+        end
+            
+    else
+        printf('No extra plugins found.')
+    end
+  
+      
+      
     printf('\nToolbox has not been registered. Please change SMALL_learn file.\n');
     return
   end