Index: trunk/src/transform_field/ima_filter.m
===================================================================
--- trunk/src/transform_field/ima_filter.m	(revision 728)
+++ trunk/src/transform_field/ima_filter.m	(revision 730)
@@ -1,25 +1,45 @@
-% 'ima_filter': low-pass filtr of an image (builtin filtering parameter)
+% 'ima_filter': example of image transform with input parameters: low-pass filter of an image
 
 %------------------------------------------------------------------------
-%%%%  Use the general syntax for transform fields with a single input %%%%
+%%%%  Use the general syntax for transform fields with a single input and parameters %%%%
 % OUTPUT: 
 % DataOut:   output field structure 
 
 %INPUT:
-% DataIn:  first input field structure
-%------------------------------------------------------------------------
-function DataOut=ima_filter(DataIn)
-np=20 %size of the filtering window
+% DataIn:  input field structure
+% Param: matlab structure whose field Param.TransformInput contains the filter parameters
+%-----------------------------------
+
+%-------------------------------------
+function DataOut=ima_test(DataIn,Param)
+if isequal(DataIn,'*')
+    prompt = {'npx';'npy'};
+    dlg_title = 'get the filter size in x and y';
+    num_lines= 2;
+    def     = { '20';'20'};
+    if isfield(Param,'TransformInput')&&isfield(Param.TransformInput,'FilterBoxSize_x')&&...
+            isfield(Param.TransformInput,'FilterBoxSize_y')
+        def={num2str(Param.TransformInput.FilterBoxSize_x);num2str(Param.TransformInput.FilterBoxSize_y)};
+    end
+    answer = inputdlg(prompt,dlg_title,num_lines,def);
+    DataOut.TransformInput.FilterBoxSize_x=str2num(answer{1}); %size of the filtering window
+    DataOut.TransformInput.FilterBoxSize_y=str2num(answer{2}); %size of the filtering window
+    return
+end
+
+DataOut=DataIn; %default
+
 %definition of the cos shape matrix filter
-ix=[1/2-np/2:-1/2+np/2];%
-del=np/3;
+ix=[1/2-Param.TransformInput.FilterBoxSize_x/2:-1/2+Param.TransformInput.FilterBoxSize_x/2];%
+iy=[1/2-Param.TransformInput.FilterBoxSize_y/2:-1/2+Param.TransformInput.FilterBoxSize_y/2];%
+%del=np/3;
 %fct=exp(-(ix/del).^2);
-fct2=cos(ix/((np-1)/2)*pi/2);
+fct2_x=cos(ix/((Param.TransformInput.FilterBoxSize_x-1)/2)*pi/2);
+fct2_y=cos(iy/((Param.TransformInput.FilterBoxSize_y-1)/2)*pi/2);
 %Mfiltre=(ones(5,5)/5^2);
-Mfiltre=fct2'*fct2;
+Mfiltre=fct2_y'*fct2_x;
 Mfiltre=Mfiltre/(sum(sum(Mfiltre)));%normalize filter
 
-DataOut=DataIn; %default
-Atype=class(DataIn.A)% detect integer 8 or 16 bits
+Atype=class(DataIn.A);% detect integer 8 or 16 bits
 if numel(size(DataIn.A))==3
     DataOut.A=filter2(Mfiltre,sum(DataIn.A,3));%filter the input image, after summation on the color component (for color images)
