diff --git a/data/body-v2.ply b/data/body-v2.ply
new file mode 100755
index 0000000..2815a81
Binary files /dev/null and b/data/body-v2.ply differ
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.quit b/etc/FOSSEE_Image_Processing_Toolbox.quit
new file mode 100644
index 0000000..459eb07
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.quit
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+    etc_tlbx  = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.quit");
+    etc_tlbx  = getshortpathname(etc_tlbx);
+    root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+    //unlink libraries
+    [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+    if bOK then
+        ulink(ilib);
+    end
+
+    // Remove Preferences GUI
+    // =============================================================================
+    if getscilabmode() == "STD" then
+    removeModulePreferences(root_tlbx);
+    end
+	ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.quit~ b/etc/FOSSEE_Image_Processing_Toolbox.quit~
new file mode 100644
index 0000000..ca53a1c
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.quit~
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+    etc_tlbx  = get_absolute_file_path("FOSSEE_Image_Processin_Toolbox.quit");
+    etc_tlbx  = getshortpathname(etc_tlbx);
+    root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+    //unlink libraries
+    [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+    if bOK then
+        ulink(ilib);
+    end
+
+    // Remove Preferences GUI
+    // =============================================================================
+    if getscilabmode() == "STD" then
+    removeModulePreferences(root_tlbx);
+    end
+	ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.start b/etc/FOSSEE_Image_Processing_Toolbox.start
new file mode 100644
index 0000000..77c3e11
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.start
@@ -0,0 +1,83 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx  = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx  = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load  functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+fipt_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+//    lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;*/
+//    link(lib_path+filesep()+"IpOptFSS.dll");*/
+//    link(lib_path+filesep()+"IpOpt-vc10.dll");*/
+else
+    //lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+//    lib_path="/usr/lib";*/
+    //link(lib_path + "/libopencv_core.so");
+    //link(lib_path + "/libopencv_highgui.so");
+    //link(lib_path + "/libopencv_imgproc.so");
+    lib_path="/usr/local/lib";
+    link(lib_path + "/libopencv_core.so");
+    link(lib_path + "/libopencv_highgui.so");
+    link(lib_path + "/libopencv_imgproc.so");
+  
+
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+//if ( %t ) then
+//if or(getscilabmode() == ["NW";"STD"]) then
+//        mprintf("\tLoad help\n");
+//        path_addchapter = pathconvert(root_tlbx+"/jar");
+//        if ( isdir(path_addchapter) <> [] ) then
+//                add_help_chapter("FOSSEE_Image_Processing_Toolbox", path_addchapter, %F);
+//                clear add_help_chapter;
+//        end
+//        clear path_addchapter;
+//end
+//end
+
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+    mprintf("\tLoad demos\n");
+    //pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+    //add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+    //clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
diff --git a/etc/FOSSEE_Image_Processing_Toolbox.start~ b/etc/FOSSEE_Image_Processing_Toolbox.start~
new file mode 100644
index 0000000..bf6a60e
--- /dev/null
+++ b/etc/FOSSEE_Image_Processing_Toolbox.start~
@@ -0,0 +1,77 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx  = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx  = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load  functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+fipt_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+//    lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;*/
+//    link(lib_path+filesep()+"IpOptFSS.dll");*/
+//    link(lib_path+filesep()+"IpOpt-vc10.dll");*/
+else
+    lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+//    lib_path="/usr/lib";*/
+//    link(lib_path + "/libopencv_core.so");*/
+//    link(lib_path + "/libopencv_highgui.so");*/
+//    link(lib_path + "/libopencv_imgproc.so");*/
+
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+        mprintf("\tLoad help\n");
+        path_addchapter = pathconvert(root_tlbx+"/jar");
+        if ( isdir(path_addchapter) <> [] ) then
+                add_help_chapter("FOSSEE_Image_Processing_Toolbox", path_addchapter, %F);
+                clear add_help_chapter;
+        end
+        clear path_addchapter;
+end
+end
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+    mprintf("\tLoad demos\n");
+    //pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+    //add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+    //clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
diff --git a/etc/FOSSEE_Optimization_Toolbox.quit~ b/etc/FOSSEE_Optimization_Toolbox.quit~
new file mode 100644
index 0000000..86ed18a
--- /dev/null
+++ b/etc/FOSSEE_Optimization_Toolbox.quit~
@@ -0,0 +1,34 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+
+function quitModule()
+
+    etc_tlbx  = get_absolute_file_path("FOSSEE_Optimization_Toolbox.quit");
+    etc_tlbx  = getshortpathname(etc_tlbx);
+    root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+    //unlink libraries
+    [bOK, ilib] = c_link('FOSSEE_Optimization_Toolbox');
+    if bOK then
+        ulink(ilib);
+    end
+
+    // Remove Preferences GUI
+    // =============================================================================
+    if getscilabmode() == "STD" then
+    removeModulePreferences(root_tlbx);
+    end
+	ulink();
+endfunction
+
+clear quitModule;
+
diff --git a/etc/FOSSEE_Optimization_Toolbox.start~ b/etc/FOSSEE_Optimization_Toolbox.start~
new file mode 100644
index 0000000..f2a5a06
--- /dev/null
+++ b/etc/FOSSEE_Optimization_Toolbox.start~
@@ -0,0 +1,85 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+mprintf("Start FOSSEE Image Processing Toolbox\n");
+
+[a, opt] = getversion();
+Version = opt(2);
+
+etc_tlbx  = get_absolute_file_path("FOSSEE_Image_Processing_Toolbox.start");
+etc_tlbx  = getshortpathname(etc_tlbx);
+root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
+
+//Load  functions library
+// =============================================================================
+mprintf("\tLoad macros\n");
+pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
+symphony_lib = lib(pathmacros);
+clear pathmacros;
+
+// load gateways
+// =============================================================================
+
+mprintf("\tLoad gateways\n");
+[a, opt] = getversion();
+Version = opt(2);
+ilib_verbose(0);
+if getos()=="Windows" then
+    lib_path = root_tlbx + "/thirdparty/windows/bin/" + Version;
+    link(lib_path+filesep()+"IpOptFSS.dll");
+    link(lib_path+filesep()+"IpOpt-vc10.dll");
+else
+    lib_path = root_tlbx + "/thirdparty/linux/lib/" + Version;
+    link(lib_path + "/libCoinUtils.so");
+    link(lib_path + "/libClp.so");
+    link(lib_path + "/libClpSolver.so");
+    link(lib_path + "/libOsi.so");
+    link(lib_path + "/libOsiCommonTests.so");
+    link(lib_path + "/libOsiClp.so");
+    link(lib_path + "/libCgl.so");
+    link(lib_path + "/libSym.so");
+    link(lib_path + "/libOsiSym.so");
+    link(lib_path + "/libcoinblas.so");
+    link(lib_path + "/libcoinlapack.so");
+    link(lib_path + "/libcoinmumps.so");
+    link(lib_path + "/libipopt.so");
+end
+exec(pathconvert(root_tlbx + filesep() + "sci_gateway" + filesep() + "loader_gateway.sce",%f));
+
+// Load and add help chapter
+// =============================================================================
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+        mprintf("\tLoad help\n");
+        path_addchapter = pathconvert(root_tlbx+"/jar");
+        if ( isdir(path_addchapter) <> [] ) then
+                add_help_chapter("FOSSEE_Optimization_Toolbox", path_addchapter, %F);
+                clear add_help_chapter;
+        end
+        clear path_addchapter;
+end
+end
+
+// add demos
+// =============================================================================
+
+if ( %t ) then
+if or(getscilabmode() == ["NW";"STD"]) then
+    mprintf("\tLoad demos\n");
+    pathdemos = pathconvert(root_tlbx+"/demos/sci_FOSSEE_Image_Processing_Toolbox.dem.gateway.sce",%f,%t);
+    add_demo("FOSSEE_Image_Processing_Toolbox",pathdemos);
+    clear pathdemos ;
+end
+end
+
+// =============================================================================
+
+clear etc_tlbx root_tlbx Version a opt lib_path;
diff --git a/help/builder_help.sce b/help/builder_help.sce
new file mode 100644
index 0000000..4d4e031
--- /dev/null
+++ b/help/builder_help.sce
@@ -0,0 +1,21 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Image_Processing_Toolbox"
+
+help_dir = get_absolute_file_path('builder_help.sce');
+
+tbx_builder_help_lang("en_US", help_dir);
+
+clear toolbox_title;
diff --git a/help/builder_help.sce~ b/help/builder_help.sce~
new file mode 100644
index 0000000..da2f4f7
--- /dev/null
+++ b/help/builder_help.sce~
@@ -0,0 +1,21 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: harpreet.mertia@gmail.com
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+mode(-1)
+lines(0)
+
+toolbox_title = "FOSSEE_Optimization_Toolbox"
+
+help_dir = get_absolute_file_path('builder_help.sce');
+
+tbx_builder_help_lang("en_US", help_dir);
+
+clear toolbox_title;
diff --git a/help/en_US/align.xml b/help/en_US/align.xml
new file mode 100644
index 0000000..dd0501e
--- /dev/null
+++ b/help/en_US/align.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from align.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="align" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>align</refname>
+    <refpurpose>This function aligns the set of input images for HDR image creation.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [out1, out2, out3] = align(maxBits, excludeRange, cut, num, srcImg_1, srcImg_2, srcImg_3)
+   [out1, out2, out3, out4] = align(maxBits, excludeRange, cut, num, srcImg1, srcImg_2, srcImg_3, srcImg_4)
+   [out1, out2, out3, out4, out5] = align(maxBits, excludeRange, cut, num, srcImg_1, srcImg_2, srcImg_3, srcImg_4, srcImg_5)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>maxBits :</term>
+      <listitem><para> Logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). Value should not exceed 6. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>excludeRange :</term>
+      <listitem><para> Range for exclusion bitmap that is constructed to suppress noise around the median value. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>cut :</term>
+      <listitem><para> If true, cuts images. Otherwise fills the new regions with zeros. It is of Boolean type.</para></listitem></varlistentry>
+   <varlistentry><term>num :</term>
+      <listitem><para> Number of images given as input source images(3 - 5). It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>srcImg_i :</term>
+      <listitem><para> Hypermat of image_i.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function uses AlignMTB algorithm which converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+num = 3;
+maxBits= 6;
+excludeRange = 4;
+cut = %t;
+[x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("t1.jpeg");
+b = imread("t2.jpeg");
+c = imread("t3.jpeg");
+d = imread("t4.jpeg");
+num = 4;
+maxBits= 6;
+excludeRange = 4;
+cut = %f;
+[x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error cause maxBits value is greater than 6
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+d = imread("m4.jpeg");
+num = 4;
+maxBits= 7;
+excludeRange = 4;
+cut = %t;
+[x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+d = imread("m4.jpeg");
+e = imread("m5.jpeg");
+num = 5;
+maxBits= 6;
+excludeRange = 4;
+cut = %t;
+[x, y, z, p, q] = align(maxBits, excludeRange, cut, num, a, b, c, d, e);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// cut is set false here (if true cuts images, otherwise fills the new regions with zeros. )
+a = imread("t1.jpeg");
+b = imread("t2.jpeg");
+c = imread("t3.jpeg");
+num = 3;
+maxBits= 1;
+excludeRange = 4;
+cut = %t;
+[x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/applyTransformer.xml b/help/en_US/applyTransformer.xml
new file mode 100644
index 0000000..28edb15
--- /dev/null
+++ b/help/en_US/applyTransformer.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from applyTransformer.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="applyTransformer" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>applyTransformer</refname>
+    <refpurpose>This function is used to apply affine or TPS transformation to image.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ tImg] =  applyTransformer(srcImg1, srcImg2, typeOfMethod, hessianThreshold, rpTPS, sfAffine)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg1 :</term>
+      <listitem><para> It is the first input image.</para></listitem></varlistentry>
+   <varlistentry><term>srcImg2 :</term>
+      <listitem><para> It is the  second input image, which is also the target image.</para></listitem></varlistentry>
+   <varlistentry><term>typeOfMethod :</term>
+      <listitem><para> It is used as a flag to pick a certain type of transformation. Use value '1' for 'Affine Transformation' and '2' for 'Thin Plate Spline Shape Transformation'. It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>hessianThreshold :</term>
+      <listitem><para> It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>rpTPS :</term>
+      <listitem><para> It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>sfAffine :</term>
+      <listitem><para> It is used to set the full-affine condition for Affine Transformation. If true, the function finds as optimal transformation with no additional restrictions(6 degrees of freedom). Otherwise, the class of transformations to choose from is limited to combination of translation, rotation &amp; uniform scaling(5 degrees of freedom).</para></listitem></varlistentry>
+   <varlistentry><term>tImg :</term>
+      <listitem><para> The transformed image of the target(srcImg2). It is of hypermat type.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function is used to perform shape transformation, the user gets to choose and apply the type of transformation she/he wishes to perform.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+affine transformation
+a = imread("bryan.jpeg");
+b = imread("p1.jpg");
+typeOfMethod=1
+hessianThreshold=5000;
+rpTPS=25000;
+sfAffine=%f;
+img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a= imread("lena.jpeg");
+b= imread("bryan.jpeg");
+typeOfMethod=1
+hessianThreshold=5000;
+rpTPS=2000;
+sfAffine=%t;
+img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+TPS shape transformation
+a = imread("photo.jpg");
+b= imread("photo1.jpg");
+typeOfMethod=2
+hessianThreshold=5000;
+rpTPS=800;
+sfAffine=%t;
+img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/build_help.sce b/help/en_US/build_help.sce
new file mode 100644
index 0000000..81154f3
--- /dev/null
+++ b/help/en_US/build_help.sce
@@ -0,0 +1,17 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+help_lang_dir = get_absolute_file_path('build_help.sce');
+
+tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
+
+clear help_lang_dir;
+
diff --git a/help/en_US/build_help.sce~ b/help/en_US/build_help.sce~
new file mode 100644
index 0000000..0205c56
--- /dev/null
+++ b/help/en_US/build_help.sce~
@@ -0,0 +1,17 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Shamika Mohanan
+// Organization: FOSSEE, IIT Bombay
+// Email: harpreet.mertia@gmail.com
+// This file must be used under the terms of the BSD.
+// This source file is licensed as described in the file LICENSE, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// https://opensource.org/licenses/BSD-3-Clause
+
+help_lang_dir = get_absolute_file_path('build_help.sce');
+
+tbx_build_help(TOOLBOX_TITLE, help_lang_dir);
+
+clear help_lang_dir;
+
diff --git a/help/en_US/bwLookUp.xml b/help/en_US/bwLookUp.xml
new file mode 100644
index 0000000..689d176
--- /dev/null
+++ b/help/en_US/bwLookUp.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from bwLookUp.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="bwLookUp" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>bwLookUp</refname>
+    <refpurpose>This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [out] = bwLookUp(image,lut)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>image :</term>
+      <listitem><para> The input is a grayscale image. If the image is not binary, it is converted to one.</para></listitem></varlistentry>
+   <varlistentry><term>lut :</term>
+      <listitem><para> The lut is a 1*16 double vector [2*2 filtering], or a [1*512] double vector [3*3 filtering].</para></listitem></varlistentry>
+   <varlistentry><term>out :</term>
+      <listitem><para> The output image is the same size as image, same data type as lut.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+The function performs a 2-by-2 or 3-by-3 nonlinear neighborhood filtering operation on a grayscale image and returns the results in the output image. The neighborhood processing determines an integer index value used to access values in a lookup table 'lut'. The fetched lut value becomes the pixel value in the output image at the targeted position.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+a = imread("lena.jpeg", 0);
+lut = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];
+b = bwLookUp(a,lut);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Samiran Roy</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/contourArea.xml b/help/en_US/contourArea.xml
new file mode 100644
index 0000000..24a004c
--- /dev/null
+++ b/help/en_US/contourArea.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from contourArea.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="contourArea" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>contourArea</refname>
+    <refpurpose>This function calculates the contour area.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [out] = contourArea(inputArrayContour, booloriented)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>inputArrayContour :</term>
+      <listitem><para> The input vector of 2D points.</para></listitem></varlistentry>
+   <varlistentry><term>booloriented :</term>
+      <listitem><para> The oriented area flag. If it is true, the function returns a signed area value, depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can determine the orientation of a contour by taking the sign of an area.</para></listitem></varlistentry>
+   <varlistentry><term>out :</term>
+      <listitem><para> The output is the calculated area.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+It computes the contour area. Also, the function will most certainly give a wrong results for contours with self-intersections.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+inputArrayContour = [0 0; 10 0; 10 10; 5 4S];
+booloriented = %t;
+b = contourArea(inputArrayContour, booloriented);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Priyanka Hiranandani, NIT Surat</member>
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/copyMakeBorder.xml b/help/en_US/copyMakeBorder.xml
new file mode 100644
index 0000000..2b7e315
--- /dev/null
+++ b/help/en_US/copyMakeBorder.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from copyMakeBorder.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="copyMakeBorder" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>copyMakeBorder</refname>
+    <refpurpose>This function forms a border around the input image.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [new_image] = copyMakeBorder(image, top, bottom, left, right, borderType, value)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>image :</term>
+      <listitem><para> The source image.</para></listitem></varlistentry>
+   <varlistentry><term>top :</term>
+      <listitem><para> No. of pixels in this direction from the source image rectangle to extrapolate.</para></listitem></varlistentry>
+   <varlistentry><term>bottom :</term>
+      <listitem><para> No. of pixels in this direction from the source image rectangle to extrapolate.</para></listitem></varlistentry>
+   <varlistentry><term>left :</term>
+      <listitem><para> No. of pixels in this direction from the source image rectangle to extrapolate.</para></listitem></varlistentry>
+   <varlistentry><term>right :</term>
+      <listitem><para> No. of pixels in this direction from the source image rectangle to extrapolate.</para></listitem></varlistentry>
+   <varlistentry><term>borderType :</term>
+      <listitem><para> Stating the border type.</para></listitem></varlistentry>
+   <varlistentry><term>value :</term>
+      <listitem><para> Border value if borderType==BORDER_CONSTANT.</para></listitem></varlistentry>
+   <varlistentry><term>new_image :</term>
+      <listitem><para> The output image with specified borders.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function forms a border around the input image. The areas to the left, to the right, above and below the copied source image are filled with the extrapolated pixels.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+a = imread("lena.jpeg");
+top=1;
+bottom=1;
+left=1;
+right=1;
+b = copyMakeBorder(a, top, bottom, left, right, "BORDER_CONSTANT", 1);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik</member>
+   <member>Shubheksha Jalan</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/detectBRIEFDescriptors.xml b/help/en_US/detectBRIEFDescriptors.xml
new file mode 100644
index 0000000..da11473
--- /dev/null
+++ b/help/en_US/detectBRIEFDescriptors.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from detectBRIEFDescriptors.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="detectBRIEFDescriptors" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>detectBRIEFDescriptors</refname>
+    <refpurpose>This function is used for computing BRIEF descriptors using Star keypoints.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ a ] = detectBRIEFDescriptors(srcImg)
+   [ a ] = detectVRIEFDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, bytes, use_orientation    )
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg :</term>
+      <listitem><para> Hyper of input image</para></listitem></varlistentry>
+   <varlistentry><term>maxSize :</term>
+      <listitem><para> Choose the number of filters to be applied, the parameter value set the maximum size.</para></listitem></varlistentry>
+   <varlistentry><term>responseThreshold :</term>
+      <listitem><para> To eliminate weak corners.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdProjected :</term>
+      <listitem><para> Harris of responses.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdBinarized :</term>
+      <listitem><para> Harris of sizes.</para></listitem></varlistentry>
+   <varlistentry><term>suppressNonmaxSize :</term>
+      <listitem><para> Window size (n-by-n) to apply the non-maximal suppression.</para></listitem></varlistentry>
+   <varlistentry><term>bytes :</term>
+      <listitem><para> legth of the descriptor in bytes, valid values are: 16, 32 (default) or 64.</para></listitem></varlistentry>
+   <varlistentry><term>use_orientation :</term>
+      <listitem><para> sample patterns using keypoints orientation, disabled by default.</para></listitem></varlistentry>
+   <varlistentry><term>a :</term>
+      <listitem><para> It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+For extracting keypoints(StarDetector) and computing descriptors. BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// with default values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize("max);
+[ c ] = detectBRIEFDescriptors(a);
+[ d ] = detectBRIEFDescriptors(b);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// user assigned values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize("max);
+[ c ] = detectBRIEFDescriptors(a, 45, 30, 10, 8, 5, 32, %f);
+[ d ] = detectBRIEFDEscriptors(b, 45, 30, 10, 8, 5, 32, %f);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   <member>Shubham Lohakare, NITK Surathkal</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/detectDAISYDescriptors.xml b/help/en_US/detectDAISYDescriptors.xml
new file mode 100644
index 0000000..487bd15
--- /dev/null
+++ b/help/en_US/detectDAISYDescriptors.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from detectDAISYDescriptors.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="detectDAISYDescriptors" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>detectDAISYDescriptors</refname>
+    <refpurpose>This function is used for computing DAISY descriptors using Star keypoints.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ a ] = detectDAISYDescriptors(srcImg)
+   [ a ] = detectDAISYDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, radius, q_radius, q_theta, q_hist, norm, interpolation, use_orientation)
+   [ a ] = detectDAISYDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, radius, q_radius, q_theta, q_hist, norm, homography, interpolation, use_orientation)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg :</term>
+      <listitem><para> Hyper of input image</para></listitem></varlistentry>
+   <varlistentry><term>maxSize :</term>
+      <listitem><para> Choose the number of filters to be applied, the parameter value set the maximum size.</para></listitem></varlistentry>
+   <varlistentry><term>responseThreshold :</term>
+      <listitem><para> To eliminate weak corners.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdProjected :</term>
+      <listitem><para> Harris of responses.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdBinarized :</term>
+      <listitem><para> Harris of sizes.</para></listitem></varlistentry>
+   <varlistentry><term>suppressNonmaxSize :</term>
+      <listitem><para> Window size (n-by-n) to apply the non-maximal suppression.</para></listitem></varlistentry>
+   <varlistentry><term>radius :</term>
+      <listitem><para> radius of the descriptor at the initial scale.</para></listitem></varlistentry>
+   <varlistentry><term>q_radius :</term>
+      <listitem><para> amount of radial range division quantity.</para></listitem></varlistentry>
+   <varlistentry><term>q_theta :</term>
+      <listitem><para> amount of angular range division quantity.</para></listitem></varlistentry>
+   <varlistentry><term>q_hist :</term>
+      <listitem><para> amount of gradient orientations range division quantity.</para></listitem></varlistentry>
+   <varlistentry><term>norm    :</term>
+      <listitem><para> choose descriptors normalization type, where DAISY::NRM_NONE will not do any normalization (default), DAISY::NRM_PARTIAL mean that histograms are normalized independently for L2 norm equal to 1.0, DAISY::NRM_FULL mean that descriptors are normalized for L2 norm equal to 1.0, DAISY::NRM_SIFT mean that descriptors are normalized for L2 norm equal to 1.0 but no individual one is bigger than 0.154 as in SIFT</para></listitem></varlistentry>
+   <varlistentry><term>homography :</term>
+      <listitem><para>    optional 3x3 homography matrix used to warp the grid of daisy but sampling keypoints remains unwarped on image.</para></listitem></varlistentry>
+   <varlistentry><term>interpolation :</term>
+      <listitem><para> switch to disable interpolation for speed improvement at minor quality loss.</para></listitem></varlistentry>
+   <varlistentry><term>use_orientation :</term>
+      <listitem><para> sample patterns using keypoints orientation, disabled by default.</para></listitem></varlistentry>
+   <varlistentry><term>a :</term>
+      <listitem><para> It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+For extracting keypoints(using StarDetector) and computing descriptors(DAISY).
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// with default values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize('max')
+[ c ] = detectDAISYDescriptors(a);
+[ d ] = detectDAISYDescriptors(b);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// user assigned values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize('max')
+[ c ] = detectDAISYDescriptors(a, 45, 30, 10, 8, 5, 15, 3, 8, 8, 100, %t, %f);
+[ d ] = detectDAISYDEscriptors(b, 45, 30, 10, 8, 5, 15, 3, 8, 8, 100, %t, %f);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik NIT Rourkela</member>
+   <member>Shubham Lohakare, NITK Surathkal</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/detectLATCHDescriptors.xml b/help/en_US/detectLATCHDescriptors.xml
new file mode 100644
index 0000000..3e34219
--- /dev/null
+++ b/help/en_US/detectLATCHDescriptors.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from detectLATCHDescriptors.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="detectLATCHDescriptors" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>detectLATCHDescriptors</refname>
+    <refpurpose>This function is used for computing the LATCH descriptors using Star keypoints.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ a ] = detectLATCHDescriptors(srcImg)
+   [ a ] = detectLATCHDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, bytes, rotationInvariance, half_ssd_size)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg :</term>
+      <listitem><para> Hyper of input image</para></listitem></varlistentry>
+   <varlistentry><term>maxSize :</term>
+      <listitem><para> Choose the number of filters to be applied, the parameter value set the maximum size.</para></listitem></varlistentry>
+   <varlistentry><term>responseThreshold :</term>
+      <listitem><para> To eliminate weak corners.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdProjected :</term>
+      <listitem><para> Harris of responses.</para></listitem></varlistentry>
+   <varlistentry><term>lineThresholdBinarized :</term>
+      <listitem><para> Harris of sizes.</para></listitem></varlistentry>
+   <varlistentry><term>suppressNonmaxSize :</term>
+      <listitem><para> Window size (n-by-n) to apply the non-maximal suppression.</para></listitem></varlistentry>
+   <varlistentry><term>bytes :</term>
+      <listitem><para> It is the size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1.</para></listitem></varlistentry>
+   <varlistentry><term>rotationInvariance :</term>
+      <listitem><para> whether or not the descriptor should compansate for orientation changes.</para></listitem></varlistentry>
+   <varlistentry><term>half_ssd_size) :</term>
+      <listitem><para> the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x then the half_ssd_size should be (7-1)/2 = 3.</para></listitem></varlistentry>
+   <varlistentry><term>a :</term>
+      <listitem><para> It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+For extracting keypoints(using StarDetectors) and computing descriptors(LATCH).
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// with default values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize('max')
+[ c ] = detectLATCHdescriptors(a);
+[ d ] = detectLATCHDescriptors(b);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// user assigned values
+[ a ] = imread("b1.jpeg");
+[ b ] = imread("b2.jpeg");
+stacksize('max')
+[ c ] = detectLATCHdescriptors(a, 45, 30, 10, 8, 5, 32, %t, 3);
+[ d ] = detectLATCHDEscriptors(b, 45, 30, 10, 8, 5, 32, %t, 3);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   <member>Shubham Lohakare, NITK Surathkal</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/detectSIFTFeatures.xml b/help/en_US/detectSIFTFeatures.xml
new file mode 100644
index 0000000..93ab7cf
--- /dev/null
+++ b/help/en_US/detectSIFTFeatures.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from detectSIFTFeatures.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="detectSIFTFeatures" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>detectSIFTFeatures</refname>
+    <refpurpose>This function is used to find scale-invariant features.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ a ] = detectSIFTFeatures(srcImg)
+   [ a ] = detectSIFTFeatures(srcImg, features, nOctaveLayers, contrastThreshold, edgeThreshold, sigma)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg :</term>
+      <listitem><para> Hyper of input image.</para></listitem></varlistentry>
+   <varlistentry><term>nfeatures :</term>
+      <listitem><para> The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast). If valued as 0, uses all detected keypoints.</para></listitem></varlistentry>
+   <varlistentry><term>nOctaveLayers :</term>
+      <listitem><para> The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.</para></listitem></varlistentry>
+   <varlistentry><term>contrastThreshold :</term>
+      <listitem><para> The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.</para></listitem></varlistentry>
+   <varlistentry><term>edgeThreshold :</term>
+      <listitem><para> The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).</para></listitem></varlistentry>
+   <varlistentry><term>sigma :</term>
+      <listitem><para> The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.</para></listitem></varlistentry>
+   <varlistentry><term>a :</term>
+      <listitem><para> It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+For extracting keypoints and computing descriptors using the Scale Invariant Feature Transform. RGB images are converted to Grayscale images before processing.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// with default values
+a = imread("photo1.jpeg");
+b = imread("photo2.jpeg");
+stacksize("max");
+c = detectSIFTFeatures(a);
+d = detectSIFTFeatures(b);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// user assigned values
+a = imread("photo1.jpeg");
+b = imread("photo2.jpeg");
+stacksize("max");
+c = detectSIFTFeatures(a, 0, 3, 0.05, 11, 1.6);
+d = detectSIFTFeatures(b, 0, 3, 0.05, 11, 1.6);
+[ e f ] = matchFeatures(c.Features, d.Features);
+out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/distanceExtractor.xml b/help/en_US/distanceExtractor.xml
new file mode 100644
index 0000000..96e0b39
--- /dev/null
+++ b/help/en_US/distanceExtractor.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from distanceExtractor.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="distanceExtractor" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>distanceExtractor</refname>
+    <refpurpose>This function computes the shape-distance between two images.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ dist ] = distanceExtractor(srcImg1, srcImg2, typeOfMethod); // Hausdorrf distance
+   [ dist ] = distanceExtractor(srcImg1, srcImg2, typeOfMethod, nAngularBins, innerRadius, nRadialBins, outerRadius, iterations); // Shape Context
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg1 :</term>
+      <listitem><para> It is the first input image.</para></listitem></varlistentry>
+   <varlistentry><term>srcImg2 :</term>
+      <listitem><para> It is the  second input image.</para></listitem></varlistentry>
+   <varlistentry><term>typeOfMethod :</term>
+      <listitem><para> It is used as a flag to pick a certain type of Shape Distance calculation technique. Use '1' for 'Shape Context' and '2' for 'Hausdorrf'.</para></listitem></varlistentry>
+   <varlistentry><term>nAngularBins :</term>
+      <listitem><para> Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline.</para></listitem></varlistentry>
+   <varlistentry><term>nRadialBins :</term>
+      <listitem><para> Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline.</para></listitem></varlistentry>
+   <varlistentry><term>innerRadius :</term>
+      <listitem><para> Set the inner radius of the shape context descriptor.</para></listitem></varlistentry>
+   <varlistentry><term>outerRadius :</term>
+      <listitem><para> Set the outer radius of the shape context descriptor.</para></listitem></varlistentry>
+   <varlistentry><term>dist :</term>
+      <listitem><para> It is the calculated distance. It is of double type.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function is used to compute the shape distance between two shapes defined by its contours.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Hausdorff distance extractor
+a = imread("bnwhite.jpg");
+b = imread("bryan.jpeg");
+typeOfMethod=2;//2 is for hausdorff
+c=distanceExtractor(a,b,typeOfMethod);orff
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Shape Context Distance extractor
+a = imread("photo.jpg");
+b = imread("photo1.jpg");
+typeOfMethod=1; //1 for ShapeContext
+nAngularBins=12;
+nRadialBins=4;
+innerRadius=0.2;
+outerRadius=2;
+iterations=3;
+ndummies = 25;
+defaultCost = 0.2;
+rpTps =0 ;
+dist=distanceExtractor(a,b,typeOfMethod,nAngularBins,nRadialBins,innerRadius,outerRadius,iterations,ndummies,dC,rpTps);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+Incorrect usage
+a=4; (not hypermat)
+b=88; (not hypermat)
+typeOfMethod=1; //1 for ShapeContext
+nAngularBins=12;
+nRadialBins=4;
+innerRadius=2;
+outerRadius=0.2;
+iterations=300;
+ndummies = 25;
+defaultCost = 0.2;
+rpTps =0 ;
+dist=distanceExtractor(a,b,typeOfMethod,nAngularBins,nRadialBins,innerRadius,outerRadius,iterations,ndummies,dC,rpTps);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/fillConvexPoly.xml b/help/en_US/fillConvexPoly.xml
new file mode 100644
index 0000000..eb8f6ce
--- /dev/null
+++ b/help/en_US/fillConvexPoly.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from fillConvexPoly.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="fillConvexPoly" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>fillConvexPoly</refname>
+    <refpurpose>This function fills a convex polygon.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [out] = fillConvexPoly(img, pstData, npts, r_value, g_value, b_value, linetype, shift)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>img :</term>
+      <listitem><para> The input source image.</para></listitem></varlistentry>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> The vector of polygon vertices.</para></listitem></varlistentry>
+   <varlistentry><term>npts :</term>
+      <listitem><para> The number of polygon vertices.</para></listitem></varlistentry>
+   <varlistentry><term>r_value :</term>
+      <listitem><para> The red value of RGB color for the polygon.</para></listitem></varlistentry>
+   <varlistentry><term>g_value :</term>
+      <listitem><para> The green value of RGB color for the polygon.</para></listitem></varlistentry>
+   <varlistentry><term>b_value :</term>
+      <listitem><para> The blue value of RGB color for the polygon.</para></listitem></varlistentry>
+   <varlistentry><term>linetype :</term>
+      <listitem><para> This is the type of the polygon boundaries. It has only 3 valid types: 4, 8 and 16(CV_AA). Passing any other value as lineType is not legal.</para></listitem></varlistentry>
+   <varlistentry><term>shift :</term>
+      <listitem><para> This is the number of fractional bits in the vertex coordinates.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+The function fillConvexPoly draws a filled convex polygon. It can fill not only convex polygons but any monotonic polygon without self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) twice at the most (though, its top-most and/or the bottom edge could be horizontal).
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+a = imread("lena.jpeg");
+b = [ 0 10; 10 0; -10 0 ];
+c = fillConvexPoly(a, b, 3, 1, 1, 1, 8, 0);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Abhilasha Sancheti</member>
+   <member>Sukul Bagai</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/gabor.xml b/help/en_US/gabor.xml
new file mode 100644
index 0000000..1dfaa27
--- /dev/null
+++ b/help/en_US/gabor.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from gabor.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="gabor" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>gabor</refname>
+    <refpurpose>This function creates a Gabor filter.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [outputImg] = gabor(wavelength,orientation)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>wavelength :</term>
+      <listitem><para> It is the wavelength of sinusoid, specified as a numeric scalar or vector, in pixels/cycle.</para></listitem></varlistentry>
+   <varlistentry><term>orientation :</term>
+      <listitem><para> It is the orientation of filter in degrees, specified as a numeric scalar in the range [0 180], where the orientation is defined as the normal direction to the sinusoidal plane wave.</para></listitem></varlistentry>
+   <varlistentry><term>outputImg :</term>
+      <listitem><para> The Gabor filter.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+It creates a Gabor filter with the specified wavelength (in pixels/cycle) and orientation (in degrees). If you specify wavelength or orientation as vectors, gabor returns an array of gabor objects, called a filter bank, that contain all the unique combinations of wavelength and orientation. For example, if wavelength is a vector of length 2 and orientation is a vector of length 3, then the output array is a vector of length 6.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create an array of Gabor filters.
+wavelength = 20;
+orientation = 45;
+a = gabor(wavelength, orientation);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Samiran Roy</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/gaussianBlur.xml b/help/en_US/gaussianBlur.xml
new file mode 100644
index 0000000..5270c36
--- /dev/null
+++ b/help/en_US/gaussianBlur.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from gaussianBlur.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="gaussianBlur" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>gaussianBlur</refname>
+    <refpurpose>This function blurs the input image using a Gaussian filter.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   outputImg = gaussianblur(inputImage,ksize_height,ksize_width,sigmaX,sigmaY)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>inputImage :</term>
+      <listitem><para> The input source image.</para></listitem></varlistentry>
+   <varlistentry><term>ksize_height :</term>
+      <listitem><para> It is the gaussian kernel height. It must be positive and odd.</para></listitem></varlistentry>
+   <varlistentry><term>ksize_width :</term>
+      <listitem><para> It is the gaussian kernel width. It must be positive and odd.</para></listitem></varlistentry>
+   <varlistentry><term>sigmaX :</term>
+      <listitem><para> It is the gaussian kernel standard deviation in X direction.</para></listitem></varlistentry>
+   <varlistentry><term>sigmaY :</term>
+      <listitem><para> It is the gaussian kernel standard deviation in Y direction.</para></listitem></varlistentry>
+   <varlistentry><term>outputImg :</term>
+      <listitem><para> The output filtered image is of the same size and type as the input image.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+The function convolves the source image with the specified Gaussian kernel.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+inputImage = imread('lena.jpg');
+outputImg = gaussianBlur(inputImage,5,5,1,1);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Sukul Bagai</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/histogramCostExtractor.xml b/help/en_US/histogramCostExtractor.xml
new file mode 100644
index 0000000..8bc86c0
--- /dev/null
+++ b/help/en_US/histogramCostExtractor.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from histogramCostExtractor.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="histogramCostExtractor" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>histogramCostExtractor</refname>
+    <refpurpose>This function computes the cost matrix.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ costMatrix ] = histogramCostExtractor(srcImg1, srcImg2, typeOfMethod=3, hessianThreshold); // Norm based cost
+   [ costMatrix ] = histogramcostExtractor(srcImg1, srcImg2, typeOfMethod=1, hessianThreshold, nDummies, defaultCost); // Chi as well as EMDL1 based cost extraction
+   [ costMatrix ] = histogramCostExtractor(srcImg1, srcImg2, typeOfMethod=2, hessianThreshold, nDummies, defaultCost); // EMDL1 based cost extraction
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg1 :</term>
+      <listitem><para> It is the first input image.</para></listitem></varlistentry>
+   <varlistentry><term>srcImg2 :</term>
+      <listitem><para> It is the second input image.</para></listitem></varlistentry>
+   <varlistentry><term>typeOfMethod :</term>
+      <listitem><para> It is used as a flag to pick a certain type of transformation. Use value '1' for 'Chi based cost ectraction', '2' for 'EMDL1 based cost extraction' and '3' for 'Norm based cost extraction'. It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>hessianThreshold :</term>
+      <listitem><para> It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>rpTPS :</term>
+      <listitem><para> It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>costMatrix :</term>
+      <listitem><para> It is the cost matrix.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function is used to calculate the histogram based cost matrix of two images, the user gets to choose and apply the type of transformation she/he wishes to perform.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Chi based cost extraction
+a= imread("n.jpeg");
+b= imread("n1.jpeg");
+typeOfMethod=1;
+hessianThreshold=5000;
+nDummies=25;
+defaultCost=0.2;
+c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold,nDummies,defaultCost);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// EMDL1
+a = imread("n.jpeg");
+b = imread("n1.jpeg");
+typeOfMethod=2;
+hessianThreshold=5000;
+nDummies=25;
+defaultCost=0.2;
+c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold,nDummies,defaultCost);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+Norm based cost extraction
+a = imread("n.jpeg");
+b= imread("n1.jpeg");
+typeOfMethod=3;
+hessianThreshold=5000;
+c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Mantosh Barik, NIT Rouekela</member>
+   <member>Shubham Lohakare, NITK Surathkal</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/imGaborFilt.xml b/help/en_US/imGaborFilt.xml
new file mode 100644
index 0000000..380c46e
--- /dev/null
+++ b/help/en_US/imGaborFilt.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from imGaborFilt.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="imGaborFilt" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>imGaborFilt</refname>
+    <refpurpose>The function applies Gabor filter or set of filters to 2-D image.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [new_image] = imGaborFilt(image, wavelength, orientation)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>image :</term>
+      <listitem><para> The input grayscale image.</para></listitem></varlistentry>
+   <varlistentry><term>wavelength :</term>
+      <listitem><para> It is the wavelength of the sinusoidal carrier, specified as a numeric scalar in the range [2,Inf), in pixels/cycle.</para></listitem></varlistentry>
+   <varlistentry><term>orientation :</term>
+      <listitem><para> Orientation value of filter in degrees, specified as a numeric scalar in the range [0 360], where the orientation is defined as the normal direction to the sinusoidal plane wave.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+It computes the magnitude and phase response of a Gabor filter for the input grayscale image.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// apply Single Gabor Filter to Input Image
+a = imread("lena.jpeg", 0);
+wavelength = 4;
+orientation = 90;
+b = imGaborFilt(a, wavelength, orientation)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Samiran Roy</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/lab2rgb.xml b/help/en_US/lab2rgb.xml
new file mode 100644
index 0000000..b1a6392
--- /dev/null
+++ b/help/en_US/lab2rgb.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from lab2rgb.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="lab2rgb" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>lab2rgb</refname>
+    <refpurpose>This function converts CIE 1976 L*a*b* to RGB.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = lab2rgb(pstData)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> The color values to convert, specified as a list of values.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> The converted color values, returned as an array of the same shape as the input.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Convert CIE 1976 L*a*b* to RGB.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(70, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(71, 50, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(7.3, 5.53, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(70, 5, 10.6656);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(70, 5.45, 10.45);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(7.343, 5.34, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(70, 500, 1012);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(701.2, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(70, 5.545, 1.0);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.
+a = list(23, 51, 18);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Tess Zacharias</member>
+   <member>Ashish Manatosh Barik</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/lab2uint8.xml b/help/en_US/lab2uint8.xml
new file mode 100644
index 0000000..78fe0a8
--- /dev/null
+++ b/help/en_US/lab2uint8.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from lab2uint8.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="lab2uint8" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>lab2uint8</refname>
+    <refpurpose>This function converts L*a*b* data to uint8.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = lab2uint8(pstData)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> It is a list of color values.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> The converted uint8 value. lab8 has the same size as lab.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts L*a*b* data to uint8.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(70, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(71, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(0, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(89, 50, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(70, 5, 10.78);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(7, 5, 89);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(70.344, 5.34, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(0, 0, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(70.89, 5.11, 10.33);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert L*a*b* color values from double to uint8.
+a = list(10, 5, 10);
+b = lab2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Tess Zacharias</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/makeHDR.xml b/help/en_US/makeHDR.xml
new file mode 100644
index 0000000..ee020ec
--- /dev/null
+++ b/help/en_US/makeHDR.xml
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from makeHDR.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="makeHDR" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>makeHDR</refname>
+    <refpurpose>This function is used to create HDR image.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [out1, out2] = makeHDR(typeOfMethod=1, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, max_iter, threshold) // Robertson merging
+   [out1, out2] = makeHDR(typeOfMethod=2, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, samples, lambda, random) // Debevec merging
+   [out1, out2] = makeHDR(typeOfMethod=3, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+   [out1, out2] = makeHDR(typeOfMethod=1, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, max_iter, threshold) // Robertson merging
+   [out1, out2] = makeHDR(typeOfMethod=2, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, samples, lambda, random) // Debevec merging
+   [out1, out2] = makeHDR(typeOfMethod=3, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+   [out1, out2] = makeHDR(typeOfMethod=1, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, max_iter, threshold) // Robertson merging
+   [out1, out2] = makeHDR(typeOfMethod=2, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, samples, lambda, random) // Debevec merging
+   [out1, out2] = makeHDR(typeOfMethod=3, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+   [out1, out2] = makeHDR(typeOfMethod=1, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, max_iter, threshold) // Robertson merging
+   [out1, out2] = makeHDR(typeOfMethod=2, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, samples, lambda, random) // Debevec merging
+   [out1, out2] = makeHDR(typeOfMethod=3, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>typeOfMethod :</term>
+      <listitem><para> Use '1' for 'Robertson', '2' for 'Debevec', or '3' for 'Mertens'.</para></listitem></varlistentry>
+   <varlistentry><term>num :</term>
+      <listitem><para> It is the number of images being fed as input. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>srcMat_i :</term>
+      <listitem><para> It is the hypermat of input source image.</para></listitem></varlistentry>
+   <varlistentry><term>ex_i :</term>
+      <listitem><para> It is the exposure value of the corresponding image_i. It is of double type.</para></listitem></varlistentry>
+   <varlistentry><term>max_iter :</term>
+      <listitem><para> (Robertson) maximal number of Gauss-Seidel solver iterations. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>threshold :</term>
+      <listitem><para> (Robertson) target difference between results of two successive steps of the minimization. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>samples :</term>
+      <listitem><para> (Debevec) number of pixel locations to use. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>lambda :</term>
+      <listitem><para> (Debevec) smoothness term weight. Greater values produce smoother results, but can alter the response. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>random :</term>
+      <listitem><para> (Debevec) if true sample pixel locations are chosen at random, otherwise they form a rectangular grid. It is of Boolean type.</para></listitem></varlistentry>
+   <varlistentry><term>contrast_weight :</term>
+      <listitem><para> (Mertens) contrast measure weight. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>saturation_weight :</term>
+      <listitem><para> (Mertens) saturation measure weight. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>exposure_weight :</term>
+      <listitem><para> (Mertens) well-exposedness measure weight. It is of Double type.</para></listitem></varlistentry>
+   <varlistentry><term>out1 :</term>
+      <listitem><para> HDR image</para></listitem></varlistentry>
+   <varlistentry><term>out2 :</term>
+      <listitem><para> LDR image</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+This function takes a set of images of the same scene in different exposures which have been aligned accordingly and outputs the HDR image.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// input of 3 images(min), using Robertson merging technique
+a = imread("t1.jpeg");
+b = imread("t2.jpeg");
+c = imread("t3.jpeg");
+num = 3;
+typeOfMethod = 1;
+ex1 = 15;
+ex2 = 2.5;
+ex3 = 0.25;
+maxIter = 30;
+thres = 0.01;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, ex1, ex2, ex3, maxIter, thres);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Use of Debevec merging technique
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+d = imread("m4.jpeg");
+e = imread("m5.jpeg");
+f = imread("m6.jpeg");
+num = 6;
+typeOfMethod = 2;
+ex1 = 0.0167;
+ex2 = 0.034;
+ex3 = 0.067;
+ex4 = 0.125;
+ex5 = 0.25;
+ex6 = 0.5;
+samples = 70;
+lambda = 10.0;
+random = %f;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, samples, lambda, random);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// use of Robertson merging technique
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+d = imread("m4.jpeg");
+e = imread("m5.jpeg");
+f = imread("m6.jpeg");
+num = 6;
+typeOfMethod = 1;
+ex1 = 0.0167;
+ex2 = 0.034;
+ex3 = 0.067;
+ex4 = 0.125;
+ex5 = 0.25;
+ex6 = 0.5;
+maxIter = 30;
+thres = 0.01;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, maxIter, thres);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// alternative to creating an HDR image, resulting image is of average exposure. Faster compared to rendering a HDR image.
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = imread("m3.jpeg");
+d = imread("m4.jpeg");
+e = imread("m5.jpeg");
+f = imread("m6.jpeg");
+num = 6;
+typeOfMethod = 3;
+ex1 = 0.0167;
+ex2 = 0.034;
+ex3 = 0.067;
+ex4 = 0.125;
+ex5 = 0.25;
+ex6 = 0.5;
+contrastWeight = 1.0;
+saturationWeight = 1.0;
+exposureWeight = 0.0;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, contrastWeight, saturationWeight, exposureWeight);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("i1.jpeg");
+b = imread("i2.jpeg");
+c = imread("i3.jpeg");
+d = imread("i4.jpeg");
+num = 4;
+typeOfMethod = 2;
+ex1 = 0.034;
+ex2 = 0.008;
+ex3 = 0.0034;
+ex4 = 0.00073;
+samples = 70;
+lambda = 10.0;
+random = %f;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, samples, lambda, random);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("i1.jpeg");
+b = imread("i2.jpeg");
+c = imread("i3.jpeg");
+d = imread("i4.jpeg");
+num = 4;
+typeOfMethod = 1;
+ex1 = 0.034;
+ex2 = 0.008;
+ex3 = 0.0034;
+ex4 = 0.00073;
+maxIter = 30;
+thres = 0.01;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, maxIter, thres);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+a = imread("i1.jpeg");
+b = imread("i2.jpeg");
+c = imread("i3.jpeg");
+d = imread("i4.jpeg");
+num = 4;
+typeOfMethod = 3;
+ex1 = 0.034;
+ex2 = 0.008;
+ex3 = 0.0034;
+ex4 = 0.00073;
+maxIter = 30;
+contrastWeight = 1.0;
+saturationWeight = 1.0;
+exposureWeight = 0.0;
+[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, contrastWeight, saturationWeight, exposureWeight);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/master_help.xml b/help/en_US/master_help.xml
new file mode 100644
index 0000000..119b0b2
--- /dev/null
+++ b/help/en_US/master_help.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book [
+<!--Begin Entities-->
+<!ENTITY aec09a1d8cc19bb05a53d7b60d8ca8004 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/align.xml">
+<!ENTITY aabce97dfa16507a3ad934a077cc63187 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/applyTransformer.xml">
+<!ENTITY a6a07ad97dcbef341722ac76091020341 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/bwLookUp.xml">
+<!ENTITY a942913ea089e7d518fc5279fb2c4eb78 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/contourArea.xml">
+<!ENTITY aa7bd30194244dde6a89253409d1fd4e4 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/copyMakeBorder.xml">
+<!ENTITY a594d04d99491a65dd9c7830521fd0391 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/detectBRIEFDescriptors.xml">
+<!ENTITY a5daa6a73fadebf9d150e8fcd94609356 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/detectDAISYDescriptors.xml">
+<!ENTITY a36a6f3f67476d2c7f770b0f0e2546451 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/detectLATCHDescriptors.xml">
+<!ENTITY a6bde14b3511ded5d246775a1467523cf SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/detectSIFTFeatures.xml">
+<!ENTITY a430cd41198f40c6111e958c2a18cf140 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/distanceExtractor.xml">
+<!ENTITY af81275f66c3b3b4a5461f87a2848d06f SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/fillConvexPoly.xml">
+<!ENTITY a40be16c8195f79a9d4ea09eacbbbc87a SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/gabor.xml">
+<!ENTITY a11d670111a8d1c2c7a25d17c25a4ddad SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/gaussianBlur.xml">
+<!ENTITY ad10e78f2ee8a998906601242aafcae4a SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/histogramCostExtractor.xml">
+<!ENTITY acc7c71cb7675456b4b4aa6f8cfae73ae SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/imGaborFilt.xml">
+<!ENTITY ac45a87e0679d3007b05fe683f5623a14 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/lab2rgb.xml">
+<!ENTITY a1ed4e5f4e6cfcb3f027f455c8a305a2d SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/lab2uint8.xml">
+<!ENTITY a811a0ca601bbe82229ac5ae4a2e31cbd SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/makeHDR.xml">
+<!ENTITY aec618785d5bc28aa3cad96f93ff47904 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/ntsc2rgb.xml">
+<!ENTITY a90b028d690ae13a22ae5e64de37a644d SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/pcwrite.xml">
+<!ENTITY a0f7c44c67c3adaf79be74f5b0b4627b2 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/rgb2lab.xml">
+<!ENTITY a277aaf4c69882229945db9df7a91b457 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/ssim.xml">
+<!ENTITY a582dab75ff2f89fdf954bbff1576ac6e SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/wiener2.xml">
+<!ENTITY a8506f8ce404f3e266aeea3863bd2336c SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/xyz2double.xml">
+<!ENTITY a81864cacd0775ab7a1f74487dad7a196 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/xyz2lab.xml">
+<!ENTITY a6de7fd8ca7caa7f95ac8214249550d87 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/xyz2rgb.xml">
+<!ENTITY ab2274fd613bd5c40fdf9e8842c648628 SYSTEM "/home/avinashr175/Desktop/scilab/FosseeSummerInternship/FOSSEE_Image_Processing_Toolbox-master/help/en_US/xyz2uint16.xml">
+<!--End Entities-->
+]>
+<book version="5.0-subset Scilab" xml:lang="en_US"
+      xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:mml="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
+  <info xml:id='fossee_image_processing_toolbox_manual'>
+    <title>FOSSEE Image Processing Toolbox</title>
+  </info>
+
+<part xml:id='section_38a53415444fbf6feb416c6cf0aef456'>
+<title>FOSSEE Image Processing Toolbox</title>
+&aec09a1d8cc19bb05a53d7b60d8ca8004;
+&aabce97dfa16507a3ad934a077cc63187;
+&a6a07ad97dcbef341722ac76091020341;
+&a942913ea089e7d518fc5279fb2c4eb78;
+&aa7bd30194244dde6a89253409d1fd4e4;
+&a594d04d99491a65dd9c7830521fd0391;
+&a5daa6a73fadebf9d150e8fcd94609356;
+&a36a6f3f67476d2c7f770b0f0e2546451;
+&a6bde14b3511ded5d246775a1467523cf;
+&a430cd41198f40c6111e958c2a18cf140;
+&af81275f66c3b3b4a5461f87a2848d06f;
+&a40be16c8195f79a9d4ea09eacbbbc87a;
+&a11d670111a8d1c2c7a25d17c25a4ddad;
+&ad10e78f2ee8a998906601242aafcae4a;
+&acc7c71cb7675456b4b4aa6f8cfae73ae;
+&ac45a87e0679d3007b05fe683f5623a14;
+&a1ed4e5f4e6cfcb3f027f455c8a305a2d;
+&a811a0ca601bbe82229ac5ae4a2e31cbd;
+&aec618785d5bc28aa3cad96f93ff47904;
+&a90b028d690ae13a22ae5e64de37a644d;
+&a0f7c44c67c3adaf79be74f5b0b4627b2;
+&a277aaf4c69882229945db9df7a91b457;
+&a582dab75ff2f89fdf954bbff1576ac6e;
+&a8506f8ce404f3e266aeea3863bd2336c;
+&a81864cacd0775ab7a1f74487dad7a196;
+&a6de7fd8ca7caa7f95ac8214249550d87;
+&ab2274fd613bd5c40fdf9e8842c648628;
+</part>
+</book>
diff --git a/help/en_US/ntsc2rgb.xml b/help/en_US/ntsc2rgb.xml
new file mode 100644
index 0000000..b869a4a
--- /dev/null
+++ b/help/en_US/ntsc2rgb.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from ntsc2rgb.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="ntsc2rgb" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>ntsc2rgb</refname>
+    <refpurpose>This function converts NTSC values to RGB color space.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = ntsc2rgb(pstData)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> It is a list of the NTSC luminance (Y) and chrominance (I and Q) color components.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para>  It is a list that contains the red, green, and blue values equivalent to those colors.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts NTSC values to RGB color space.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert the grayscale image back to RGB color space.
+a = imread("b1.jpeg",0)
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert the grayscale image back to RGB color space.
+a = imread("b2.jpeg",0)
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert the grayscale image back to RGB color space.
+a = imread("graf1.jpeg",0)
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert the grayscale image back to RGB color space.
+a = imread("graf2.jpeg",0)
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// input RGB image
+a = imread("b2.jpeg")
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// input RGB image
+a = imread("graf1.jpeg")
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// input RGB image
+a = imread("garf2.jpeg")
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert the grayscale image back to RGB color space.
+a = imread("lena.jpeg",0)
+b = ntsc2rgb(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Tess Zacharias</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/pcwrite.xml b/help/en_US/pcwrite.xml
new file mode 100644
index 0000000..10c4170
--- /dev/null
+++ b/help/en_US/pcwrite.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from pcwrite.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="pcwrite" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>pcwrite</refname>
+    <refpurpose>This function is used to write 3-D point cloud to PLY or PCD file.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [] = pcwrite(pointCloud, filename)
+   [] = pcwrite(pointCloud, filename, fileFormat, fileType)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pointCloud :</term>
+      <listitem><para> Object for storing point cloud, specified as a pointCloud object.</para></listitem></varlistentry>
+   <varlistentry><term>filename :</term>
+      <listitem><para> File name, specified as a character vector, specify the file name with an extension incase of two input argument.(default encoding is ASCII)</para></listitem></varlistentry>
+   <varlistentry><term>fileFormat :</term>
+      <listitem><para> The input file type must be a PLY or PCD format file.(choose between ".ply" or ".pcd")</para></listitem></varlistentry>
+   <varlistentry><term>fileType :</term>
+      <listitem><para> Choose from the following encoding, PLY - 'ascii', 'binary' and PCD - 'ascii', 'binary', or 'compressed'.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Writes the point cloud object, ptCloud, to the PLY or PCD file specified by the input.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Write 3-D Point Cloud to PLY File
+ptCloud = pcread('teapot.ply');
+pcshow(ptCloud);
+pcwrite(ptCloud,'teapotOut','ply','binary');
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Write 3-D Point Cloud to PCD File
+ptCloud = pcread('teapot.ply');
+pcshow(ptCloud);
+pcwrite(ptCloud,'teapotOut','pcd','binary');
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/rgb2lab.xml b/help/en_US/rgb2lab.xml
new file mode 100644
index 0000000..3c793c3
--- /dev/null
+++ b/help/en_US/rgb2lab.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from rgb2lab.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="rgb2lab" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>rgb2lab</refname>
+    <refpurpose>This function converts RGB to CIE 1976 L*a*b*.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = rgb2lab(inputImage)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>inputImage :</term>
+      <listitem><para> It is a list of color values to convert.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> The converted color values, returned as a list.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts RGB to CIE 1976 L*a*b*.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert the RGB white value to L*a*b.
+rgb2lab([1 1 1])
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert the RGB white value to L*a*b.
+rgb2lab([.2 .3 .4])
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert
+a = imread("b1.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert
+a = imread("b2.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert the RGB white value to L*a*b.
+rgb2lab([23 23 22])
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert
+a = imread("lena.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// to convert the RGB white value to L*a*b.
+rgb2lab([34.2 43.3 343.4])
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert
+a = imread("graf1.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert
+a = imread("graf2.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Read RGB image to convert which doesnt exit
+a = imread("b.jpeg");
+b = rgb2lab(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Sridhar Reddy</member>
+   <member>Ashish Manatosh Barik</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..a6ce6a4
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..928ba57
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..1a443d7
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..8911dba
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..ce41e57
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=1011 id2=1
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..3452435
Binary files /dev/null and b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP differ
diff --git a/help/en_US/scilab_en_US_help/ScilabCaution.png b/help/en_US/scilab_en_US_help/ScilabCaution.png
new file mode 100644
index 0000000..231159a
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabCaution.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabEdit.png b/help/en_US/scilab_en_US_help/ScilabEdit.png
new file mode 100644
index 0000000..ff0cca7
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabEdit.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabExecute.png b/help/en_US/scilab_en_US_help/ScilabExecute.png
new file mode 100644
index 0000000..4acd4b9
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabExecute.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabImportant.png b/help/en_US/scilab_en_US_help/ScilabImportant.png
new file mode 100644
index 0000000..73931b2
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabImportant.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabNote.png b/help/en_US/scilab_en_US_help/ScilabNote.png
new file mode 100644
index 0000000..6607ece
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabNote.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabTip.png b/help/en_US/scilab_en_US_help/ScilabTip.png
new file mode 100644
index 0000000..6607ece
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabTip.png differ
diff --git a/help/en_US/scilab_en_US_help/ScilabWarning.png b/help/en_US/scilab_en_US_help/ScilabWarning.png
new file mode 100644
index 0000000..231159a
Binary files /dev/null and b/help/en_US/scilab_en_US_help/ScilabWarning.png differ
diff --git a/help/en_US/scilab_en_US_help/align.html b/help/en_US/scilab_en_US_help/align.html
new file mode 100644
index 0000000..b507a62
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/align.html
@@ -0,0 +1,140 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>align</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">&lt;&lt; FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="applyTransformer.html">applyTransformer &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; align</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">align</h1>
+    <p class="refpurpose">This function aligns the set of input images for HDR image creation.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">, </span><span class="default">out3</span><span class="default">] = </span><span class="functionid">align</span><span class="default">(</span><span class="default">maxBits</span><span class="default">, </span><span class="default">excludeRange</span><span class="default">, </span><span class="default">cut</span><span class="default">, </span><span class="default">num</span><span class="default">, </span><span class="default">srcImg_1</span><span class="default">, </span><span class="default">srcImg_2</span><span class="default">, </span><span class="default">srcImg_3</span><span class="default">)</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">, </span><span class="default">out3</span><span class="default">, </span><span class="default">out4</span><span class="default">] = </span><span class="functionid">align</span><span class="default">(</span><span class="default">maxBits</span><span class="default">, </span><span class="default">excludeRange</span><span class="default">, </span><span class="default">cut</span><span class="default">, </span><span class="default">num</span><span class="default">, </span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg_2</span><span class="default">, </span><span class="default">srcImg_3</span><span class="default">, </span><span class="default">srcImg_4</span><span class="default">)</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">, </span><span class="default">out3</span><span class="default">, </span><span class="default">out4</span><span class="default">, </span><span class="default">out5</span><span class="default">] = </span><span class="functionid">align</span><span class="default">(</span><span class="default">maxBits</span><span class="default">, </span><span class="default">excludeRange</span><span class="default">, </span><span class="default">cut</span><span class="default">, </span><span class="default">num</span><span class="default">, </span><span class="default">srcImg_1</span><span class="default">, </span><span class="default">srcImg_2</span><span class="default">, </span><span class="default">srcImg_3</span><span class="default">, </span><span class="default">srcImg_4</span><span class="default">, </span><span class="default">srcImg_5</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">maxBits :</span>
+      <dd><p class="para">Logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). Value should not exceed 6. It is of Double type.</p></dd></dt>
+   <dt><span class="term">excludeRange :</span>
+      <dd><p class="para">Range for exclusion bitmap that is constructed to suppress noise around the median value. It is of Double type.</p></dd></dt>
+   <dt><span class="term">cut :</span>
+      <dd><p class="para">If true, cuts images. Otherwise fills the new regions with zeros. It is of Boolean type.</p></dd></dt>
+   <dt><span class="term">num :</span>
+      <dd><p class="para">Number of images given as input source images(3 - 5). It is of double type.</p></dd></dt>
+   <dt><span class="term">srcImg_i :</span>
+      <dd><p class="para">Hypermat of image_i.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function uses AlignMTB algorithm which converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxBits</span><span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">excludeRange</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">cut</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span> <span class="scilabid">y</span><span class="scilabdefault">,</span> <span class="scilabid">z</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">align</span><span class="scilabopenclose">(</span><span class="scilabid">maxBits</span><span class="scilabdefault">,</span> <span class="scilabid">excludeRange</span><span class="scilabdefault">,</span> <span class="scilabid">cut</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxBits</span><span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">excludeRange</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">cut</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%f</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span> <span class="scilabid">y</span><span class="scilabdefault">,</span> <span class="scilabid">z</span><span class="scilabdefault">,</span> <span class="scilabid">p</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">align</span><span class="scilabopenclose">(</span><span class="scilabid">maxBits</span><span class="scilabdefault">,</span> <span class="scilabid">excludeRange</span><span class="scilabdefault">,</span> <span class="scilabid">cut</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error cause maxBits value is greater than 6</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxBits</span><span class="scilaboperator">=</span> <span class="scilabnumber">7</span><span class="scilabdefault">;</span>
+<span class="scilabid">excludeRange</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">cut</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span> <span class="scilabid">y</span><span class="scilabdefault">,</span> <span class="scilabid">z</span><span class="scilabdefault">,</span> <span class="scilabid">p</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">align</span><span class="scilabopenclose">(</span><span class="scilabid">maxBits</span><span class="scilabdefault">,</span> <span class="scilabid">excludeRange</span><span class="scilabdefault">,</span> <span class="scilabid">cut</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">e</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m5.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxBits</span><span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">excludeRange</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">cut</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span> <span class="scilabid">y</span><span class="scilabdefault">,</span> <span class="scilabid">z</span><span class="scilabdefault">,</span> <span class="scilabid">p</span><span class="scilabdefault">,</span> <span class="scilabid">q</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">align</span><span class="scilabopenclose">(</span><span class="scilabid">maxBits</span><span class="scilabdefault">,</span> <span class="scilabid">excludeRange</span><span class="scilabdefault">,</span> <span class="scilabid">cut</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// cut is set false here (if true cuts images, otherwise fills the new regions with zeros. )</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxBits</span><span class="scilaboperator">=</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">excludeRange</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">cut</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">x</span><span class="scilabdefault">,</span> <span class="scilabid">y</span><span class="scilabdefault">,</span> <span class="scilabid">z</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">align</span><span class="scilabopenclose">(</span><span class="scilabid">maxBits</span><span class="scilabdefault">,</span> <span class="scilabid">excludeRange</span><span class="scilabdefault">,</span> <span class="scilabid">cut</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">&lt;&lt; FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="applyTransformer.html">applyTransformer &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/applyTransformer.html b/help/en_US/scilab_en_US_help/applyTransformer.html
new file mode 100644
index 0000000..ff53983
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/applyTransformer.html
@@ -0,0 +1,115 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>applyTransformer</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="align.html">&lt;&lt; align</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="bwLookUp.html">bwLookUp &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; applyTransformer</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">applyTransformer</h1>
+    <p class="refpurpose">This function is used to apply affine or TPS transformation to image.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">tImg</span><span class="default">] =  </span><span class="functionid">applyTransformer</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">, </span><span class="default">hessianThreshold</span><span class="default">, </span><span class="default">rpTPS</span><span class="default">, </span><span class="default">sfAffine</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg1 :</span>
+      <dd><p class="para">It is the first input image.</p></dd></dt>
+   <dt><span class="term">srcImg2 :</span>
+      <dd><p class="para">It is the  second input image, which is also the target image.</p></dd></dt>
+   <dt><span class="term">typeOfMethod :</span>
+      <dd><p class="para">It is used as a flag to pick a certain type of transformation. Use value &#0039;1&#0039; for &#0039;Affine Transformation&#0039; and &#0039;2&#0039; for &#0039;Thin Plate Spline Shape Transformation&#0039;. It is of double type.</p></dd></dt>
+   <dt><span class="term">hessianThreshold :</span>
+      <dd><p class="para">It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.</p></dd></dt>
+   <dt><span class="term">rpTPS :</span>
+      <dd><p class="para">It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.</p></dd></dt>
+   <dt><span class="term">sfAffine :</span>
+      <dd><p class="para">It is used to set the full-affine condition for Affine Transformation. If true, the function finds as optimal transformation with no additional restrictions(6 degrees of freedom). Otherwise, the class of transformations to choose from is limited to combination of translation, rotation &amp; uniform scaling(5 degrees of freedom).</p></dd></dt>
+   <dt><span class="term">tImg :</span>
+      <dd><p class="para">The transformed image of the target(srcImg2). It is of hypermat type.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function is used to perform shape transformation, the user gets to choose and apply the type of transformation she/he wishes to perform.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">affine</span> <span class="scilabid">transformation</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">bryan.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">p1.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">rpTPS</span><span class="scilaboperator">=</span><span class="scilabnumber">25000</span><span class="scilabdefault">;</span>
+<span class="scilabid">sfAffine</span><span class="scilaboperator">=</span><span class="scilabconstants">%f</span><span class="scilabdefault">;</span>
+<span class="scilabid">img</span><span class="scilaboperator">=</span><span class="scilabid">applyTransformer</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabdefault">,</span> <span class="scilabid">rpTPS</span><span class="scilabdefault">,</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">bryan.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">rpTPS</span><span class="scilaboperator">=</span><span class="scilabnumber">2000</span><span class="scilabdefault">;</span>
+<span class="scilabid">sfAffine</span><span class="scilaboperator">=</span><span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabid">img</span><span class="scilaboperator">=</span><span class="scilabid">applyTransformer</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabdefault">,</span> <span class="scilabid">rpTPS</span><span class="scilabdefault">,</span><span class="scilabid">sfAffine</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">TPS</span> <span class="scilabid">shape</span> <span class="scilabid">transformation</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo1.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">rpTPS</span><span class="scilaboperator">=</span><span class="scilabnumber">800</span><span class="scilabdefault">;</span>
+<span class="scilabid">sfAffine</span><span class="scilaboperator">=</span><span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabid">img</span><span class="scilaboperator">=</span><span class="scilabid">applyTransformer</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabdefault">,</span> <span class="scilabid">rpTPS</span><span class="scilabdefault">,</span><span class="scilabid">sfAffine</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="align.html">&lt;&lt; align</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="bwLookUp.html">bwLookUp &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/bwLookUp.html b/help/en_US/scilab_en_US_help/bwLookUp.html
new file mode 100644
index 0000000..66d80ad
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/bwLookUp.html
@@ -0,0 +1,84 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>bwLookUp</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="applyTransformer.html">&lt;&lt; applyTransformer</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="contourArea.html">contourArea &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; bwLookUp</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">bwLookUp</h1>
+    <p class="refpurpose">This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">out</span><span class="default">] = </span><span class="functionid">bwLookUp</span><span class="default">(</span><span class="default">image</span><span class="default">,</span><span class="default">lut</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">image :</span>
+      <dd><p class="para">The input is a grayscale image. If the image is not binary, it is converted to one.</p></dd></dt>
+   <dt><span class="term">lut :</span>
+      <dd><p class="para">The lut is a 1*16 double vector [2*2 filtering], or a [1*512] double vector [3*3 filtering].</p></dd></dt>
+   <dt><span class="term">out :</span>
+      <dd><p class="para">The output image is the same size as image, same data type as lut.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">The function performs a 2-by-2 or 3-by-3 nonlinear neighborhood filtering operation on a grayscale image and returns the results in the output image. The neighborhood processing determines an integer index value used to access values in a lookup table &#0039;lut&#0039;. The fetched lut value becomes the pixel value in the output image at the targeted position.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">lut</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabnumber">0</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">bwLookUp</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">lut</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Samiran Roy</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="applyTransformer.html">&lt;&lt; applyTransformer</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="contourArea.html">contourArea &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/c_code.css b/help/en_US/scilab_en_US_help/c_code.css
new file mode 100644
index 0000000..948d2ee
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/c_code.css
@@ -0,0 +1,54 @@
+.ccomment {
+ font-style: italic;
+ color: #b22222
+}
+
+.cdefault {
+ font-style: normal;
+ color: #000000
+}
+
+.copenclose {
+ font-style: normal;
+ color: #000000
+}
+
+.coperator {
+ font-style: normal;
+ color: #000000
+}
+
+.cstring {
+ font-style: normal;
+ color: #a6557a
+}
+
+.ctype {
+ font-style: normal;
+ color: #55a655
+}
+
+.cpreprocessor {
+ font-style: normal;
+ color: #9965a6
+}
+
+.cid {
+ font-style: normal;
+ color: #000000
+}
+
+.ckeyword {
+ font-style: normal;
+ color: #ad3ff2
+}
+
+.cmodifier {
+ font-style: normal;
+ color: #ad3ff2
+}
+
+.cnumber {
+ font-style: normal;
+ color: #008b8b
+}
diff --git a/help/en_US/scilab_en_US_help/contourArea.html b/help/en_US/scilab_en_US_help/contourArea.html
new file mode 100644
index 0000000..08bce81
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/contourArea.html
@@ -0,0 +1,85 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>contourArea</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="bwLookUp.html">&lt;&lt; bwLookUp</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="copyMakeBorder.html">copyMakeBorder &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; contourArea</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">contourArea</h1>
+    <p class="refpurpose">This function calculates the contour area.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">out</span><span class="default">] = </span><span class="functionid">contourArea</span><span class="default">(</span><span class="default">inputArrayContour</span><span class="default">, </span><span class="default">booloriented</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">inputArrayContour :</span>
+      <dd><p class="para">The input vector of 2D points.</p></dd></dt>
+   <dt><span class="term">booloriented :</span>
+      <dd><p class="para">The oriented area flag. If it is true, the function returns a signed area value, depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can determine the orientation of a contour by taking the sign of an area.</p></dd></dt>
+   <dt><span class="term">out :</span>
+      <dd><p class="para">The output is the calculated area.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">It computes the contour area. Also, the function will most certainly give a wrong results for contours with self-intersections.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">inputArrayContour</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">0</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">10</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilabnumber">10</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span> <span class="scilabnumber">5</span> <span class="scilabnumber">4</span><span class="scilabid">S</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">booloriented</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%t</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">contourArea</span><span class="scilabopenclose">(</span><span class="scilabid">inputArrayContour</span><span class="scilabdefault">,</span> <span class="scilabid">booloriented</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Priyanka Hiranandani, NIT Surat</li>
+   <li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="bwLookUp.html">&lt;&lt; bwLookUp</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="copyMakeBorder.html">copyMakeBorder &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/copyMakeBorder.html b/help/en_US/scilab_en_US_help/copyMakeBorder.html
new file mode 100644
index 0000000..ba545f1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/copyMakeBorder.html
@@ -0,0 +1,98 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>copyMakeBorder</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="contourArea.html">&lt;&lt; contourArea</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectBRIEFDescriptors.html">detectBRIEFDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; copyMakeBorder</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">copyMakeBorder</h1>
+    <p class="refpurpose">This function forms a border around the input image.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">new_image</span><span class="default">] = </span><span class="functionid">copyMakeBorder</span><span class="default">(</span><span class="default">image</span><span class="default">, </span><span class="default">top</span><span class="default">, </span><span class="default">bottom</span><span class="default">, </span><span class="default">left</span><span class="default">, </span><span class="default">right</span><span class="default">, </span><span class="default">borderType</span><span class="default">, </span><span class="default">value</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">image :</span>
+      <dd><p class="para">The source image.</p></dd></dt>
+   <dt><span class="term">top :</span>
+      <dd><p class="para">No. of pixels in this direction from the source image rectangle to extrapolate.</p></dd></dt>
+   <dt><span class="term">bottom :</span>
+      <dd><p class="para">No. of pixels in this direction from the source image rectangle to extrapolate.</p></dd></dt>
+   <dt><span class="term">left :</span>
+      <dd><p class="para">No. of pixels in this direction from the source image rectangle to extrapolate.</p></dd></dt>
+   <dt><span class="term">right :</span>
+      <dd><p class="para">No. of pixels in this direction from the source image rectangle to extrapolate.</p></dd></dt>
+   <dt><span class="term">borderType :</span>
+      <dd><p class="para">Stating the border type.</p></dd></dt>
+   <dt><span class="term">value :</span>
+      <dd><p class="para">Border value if borderType==BORDER_CONSTANT.</p></dd></dt>
+   <dt><span class="term">new_image :</span>
+      <dd><p class="para">The output image with specified borders.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function forms a border around the input image. The areas to the left, to the right, above and below the copied source image are filled with the extrapolated pixels.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">top</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">bottom</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">left</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">right</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">copyMakeBorder</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">top</span><span class="scilabdefault">,</span> <span class="scilabid">bottom</span><span class="scilabdefault">,</span> <span class="scilabid">left</span><span class="scilabdefault">,</span> <span class="scilabid">right</span><span class="scilabdefault">,</span> <span class="scilabstring">&#0034;</span><span class="scilabstring">BORDER_CONSTANT</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik</li>
+   <li class="member">Shubheksha Jalan</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="contourArea.html">&lt;&lt; contourArea</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectBRIEFDescriptors.html">detectBRIEFDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/detectBRIEFDescriptors.html b/help/en_US/scilab_en_US_help/detectBRIEFDescriptors.html
new file mode 100644
index 0000000..4ad8bab
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/detectBRIEFDescriptors.html
@@ -0,0 +1,112 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>detectBRIEFDescriptors</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="copyMakeBorder.html">&lt;&lt; copyMakeBorder</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectDAISYDescriptors.html">detectDAISYDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; detectBRIEFDescriptors</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">detectBRIEFDescriptors</h1>
+    <p class="refpurpose">This function is used for computing BRIEF descriptors using Star keypoints.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectBRIEFDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">)</span>
+<span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="default">detectVRIEFDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">maxSize</span><span class="default">, </span><span class="default">responseThreshold</span><span class="default">, </span><span class="default">lineThresholdProjected</span><span class="default">, </span><span class="default">lineThresholdBinarized</span><span class="default">, </span><span class="default">suppressNonmaxSize</span><span class="default">, </span><span class="default">bytes</span><span class="default">, </span><span class="default">use_orientation</span><span class="default">    )</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg :</span>
+      <dd><p class="para">Hyper of input image</p></dd></dt>
+   <dt><span class="term">maxSize :</span>
+      <dd><p class="para">Choose the number of filters to be applied, the parameter value set the maximum size.</p></dd></dt>
+   <dt><span class="term">responseThreshold :</span>
+      <dd><p class="para">To eliminate weak corners.</p></dd></dt>
+   <dt><span class="term">lineThresholdProjected :</span>
+      <dd><p class="para">Harris of responses.</p></dd></dt>
+   <dt><span class="term">lineThresholdBinarized :</span>
+      <dd><p class="para">Harris of sizes.</p></dd></dt>
+   <dt><span class="term">suppressNonmaxSize :</span>
+      <dd><p class="para">Window size (n-by-n) to apply the non-maximal suppression.</p></dd></dt>
+   <dt><span class="term">bytes :</span>
+      <dd><p class="para">legth of the descriptor in bytes, valid values are: 16, 32 (default) or 64.</p></dd></dt>
+   <dt><span class="term">use_orientation :</span>
+      <dd><p class="para">sample patterns using keypoints orientation, disabled by default.</p></dd></dt>
+   <dt><span class="term">a :</span>
+      <dd><p class="para">It is a struct consisting of &#0039;Type&#0039;(Type of Feature) , &#0039;Features&#0039;(descriptors) , &#0039;NumBits&#0039;, &#0039;NumFeatures&#0039;, &#0039;KeyPoints&#0039;, &#0039;keypointsCount&#0039;.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">For extracting keypoints(StarDetector) and computing descriptors. BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// with default values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">max);</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectBRIEFDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectBRIEFDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// user assigned values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">max);</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectBRIEFDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">32</span><span class="scilabdefault">,</span> <span class="scilabconstants">%f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectBRIEFDEscriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">32</span><span class="scilabdefault">,</span> <span class="scilabconstants">%f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li>
+   <li class="member">Shubham Lohakare, NITK Surathkal</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="copyMakeBorder.html">&lt;&lt; copyMakeBorder</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectDAISYDescriptors.html">detectDAISYDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/detectDAISYDescriptors.html b/help/en_US/scilab_en_US_help/detectDAISYDescriptors.html
new file mode 100644
index 0000000..89abd4d
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/detectDAISYDescriptors.html
@@ -0,0 +1,125 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>detectDAISYDescriptors</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectBRIEFDescriptors.html">&lt;&lt; detectBRIEFDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectLATCHDescriptors.html">detectLATCHDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; detectDAISYDescriptors</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">detectDAISYDescriptors</h1>
+    <p class="refpurpose">This function is used for computing DAISY descriptors using Star keypoints.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectDAISYDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">)</span>
+<span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectDAISYDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">maxSize</span><span class="default">, </span><span class="default">responseThreshold</span><span class="default">, </span><span class="default">lineThresholdProjected</span><span class="default">, </span><span class="default">lineThresholdBinarized</span><span class="default">, </span><span class="default">suppressNonmaxSize</span><span class="default">, </span><span class="default">radius</span><span class="default">, </span><span class="default">q_radius</span><span class="default">, </span><span class="default">q_theta</span><span class="default">, </span><span class="default">q_hist</span><span class="default">, </span><span class="default">norm</span><span class="default">, </span><span class="default">interpolation</span><span class="default">, </span><span class="default">use_orientation</span><span class="default">)</span>
+<span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectDAISYDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">maxSize</span><span class="default">, </span><span class="default">responseThreshold</span><span class="default">, </span><span class="default">lineThresholdProjected</span><span class="default">, </span><span class="default">lineThresholdBinarized</span><span class="default">, </span><span class="default">suppressNonmaxSize</span><span class="default">, </span><span class="default">radius</span><span class="default">, </span><span class="default">q_radius</span><span class="default">, </span><span class="default">q_theta</span><span class="default">, </span><span class="default">q_hist</span><span class="default">, </span><span class="default">norm</span><span class="default">, </span><span class="default">homography</span><span class="default">, </span><span class="default">interpolation</span><span class="default">, </span><span class="default">use_orientation</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg :</span>
+      <dd><p class="para">Hyper of input image</p></dd></dt>
+   <dt><span class="term">maxSize :</span>
+      <dd><p class="para">Choose the number of filters to be applied, the parameter value set the maximum size.</p></dd></dt>
+   <dt><span class="term">responseThreshold :</span>
+      <dd><p class="para">To eliminate weak corners.</p></dd></dt>
+   <dt><span class="term">lineThresholdProjected :</span>
+      <dd><p class="para">Harris of responses.</p></dd></dt>
+   <dt><span class="term">lineThresholdBinarized :</span>
+      <dd><p class="para">Harris of sizes.</p></dd></dt>
+   <dt><span class="term">suppressNonmaxSize :</span>
+      <dd><p class="para">Window size (n-by-n) to apply the non-maximal suppression.</p></dd></dt>
+   <dt><span class="term">radius :</span>
+      <dd><p class="para">radius of the descriptor at the initial scale.</p></dd></dt>
+   <dt><span class="term">q_radius :</span>
+      <dd><p class="para">amount of radial range division quantity.</p></dd></dt>
+   <dt><span class="term">q_theta :</span>
+      <dd><p class="para">amount of angular range division quantity.</p></dd></dt>
+   <dt><span class="term">q_hist :</span>
+      <dd><p class="para">amount of gradient orientations range division quantity.</p></dd></dt>
+   <dt><span class="term">norm    :</span>
+      <dd><p class="para">choose descriptors normalization type, where DAISY::NRM_NONE will not do any normalization (default), DAISY::NRM_PARTIAL mean that histograms are normalized independently for L2 norm equal to 1.0, DAISY::NRM_FULL mean that descriptors are normalized for L2 norm equal to 1.0, DAISY::NRM_SIFT mean that descriptors are normalized for L2 norm equal to 1.0 but no individual one is bigger than 0.154 as in SIFT</p></dd></dt>
+   <dt><span class="term">homography :</span>
+      <dd><p class="para">optional 3x3 homography matrix used to warp the grid of daisy but sampling keypoints remains unwarped on image.</p></dd></dt>
+   <dt><span class="term">interpolation :</span>
+      <dd><p class="para">switch to disable interpolation for speed improvement at minor quality loss.</p></dd></dt>
+   <dt><span class="term">use_orientation :</span>
+      <dd><p class="para">sample patterns using keypoints orientation, disabled by default.</p></dd></dt>
+   <dt><span class="term">a :</span>
+      <dd><p class="para">It is a struct consisting of &#0039;Type&#0039;(Type of Feature) , &#0039;Features&#0039;(descriptors) , &#0039;NumBits&#0039;, &#0039;NumFeatures&#0039;, &#0039;KeyPoints&#0039;, &#0039;keypointsCount&#0039;.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">For extracting keypoints(using StarDetector) and computing descriptors(DAISY).</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// with default values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">max</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectDAISYDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectDAISYDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// user assigned values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">max</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectDAISYDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">15</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabdefault">,</span> <span class="scilabconstants">%t</span><span class="scilabdefault">,</span> <span class="scilabconstants">%f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectDAISYDEscriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">15</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">100</span><span class="scilabdefault">,</span> <span class="scilabconstants">%t</span><span class="scilabdefault">,</span> <span class="scilabconstants">%f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik NIT Rourkela</li>
+   <li class="member">Shubham Lohakare, NITK Surathkal</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectBRIEFDescriptors.html">&lt;&lt; detectBRIEFDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectLATCHDescriptors.html">detectLATCHDescriptors &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/detectLATCHDescriptors.html b/help/en_US/scilab_en_US_help/detectLATCHDescriptors.html
new file mode 100644
index 0000000..7c56cb2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/detectLATCHDescriptors.html
@@ -0,0 +1,114 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>detectLATCHDescriptors</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectDAISYDescriptors.html">&lt;&lt; detectDAISYDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectSIFTFeatures.html">detectSIFTFeatures &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; detectLATCHDescriptors</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">detectLATCHDescriptors</h1>
+    <p class="refpurpose">This function is used for computing the LATCH descriptors using Star keypoints.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectLATCHDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">)</span>
+<span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectLATCHDescriptors</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">maxSize</span><span class="default">, </span><span class="default">responseThreshold</span><span class="default">, </span><span class="default">lineThresholdProjected</span><span class="default">, </span><span class="default">lineThresholdBinarized</span><span class="default">, </span><span class="default">suppressNonmaxSize</span><span class="default">, </span><span class="default">bytes</span><span class="default">, </span><span class="default">rotationInvariance</span><span class="default">, </span><span class="default">half_ssd_size</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg :</span>
+      <dd><p class="para">Hyper of input image</p></dd></dt>
+   <dt><span class="term">maxSize :</span>
+      <dd><p class="para">Choose the number of filters to be applied, the parameter value set the maximum size.</p></dd></dt>
+   <dt><span class="term">responseThreshold :</span>
+      <dd><p class="para">To eliminate weak corners.</p></dd></dt>
+   <dt><span class="term">lineThresholdProjected :</span>
+      <dd><p class="para">Harris of responses.</p></dd></dt>
+   <dt><span class="term">lineThresholdBinarized :</span>
+      <dd><p class="para">Harris of sizes.</p></dd></dt>
+   <dt><span class="term">suppressNonmaxSize :</span>
+      <dd><p class="para">Window size (n-by-n) to apply the non-maximal suppression.</p></dd></dt>
+   <dt><span class="term">bytes :</span>
+      <dd><p class="para">It is the size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1.</p></dd></dt>
+   <dt><span class="term">rotationInvariance :</span>
+      <dd><p class="para">whether or not the descriptor should compansate for orientation changes.</p></dd></dt>
+   <dt><span class="term">half_ssd_size) :</span>
+      <dd><p class="para">the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x then the half_ssd_size should be (7-1)/2 = 3.</p></dd></dt>
+   <dt><span class="term">a :</span>
+      <dd><p class="para">It is a struct consisting of &#0039;Type&#0039;(Type of Feature) , &#0039;Features&#0039;(descriptors) , &#0039;NumBits&#0039;, &#0039;NumFeatures&#0039;, &#0039;KeyPoints&#0039;, &#0039;keypointsCount&#0039;.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">For extracting keypoints(using StarDetectors) and computing descriptors(LATCH).</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// with default values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">max</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectLATCHdescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectLATCHDescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// user assigned values</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">a</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">b</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">max</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">c</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectLATCHdescriptors</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">32</span><span class="scilabdefault">,</span> <span class="scilabconstants">%t</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">d</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">detectLATCHDEscriptors</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabnumber">45</span><span class="scilabdefault">,</span> <span class="scilabnumber">30</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">32</span><span class="scilabdefault">,</span> <span class="scilabconstants">%t</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li>
+   <li class="member">Shubham Lohakare, NITK Surathkal</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectDAISYDescriptors.html">&lt;&lt; detectDAISYDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="detectSIFTFeatures.html">detectSIFTFeatures &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/detectSIFTFeatures.html b/help/en_US/scilab_en_US_help/detectSIFTFeatures.html
new file mode 100644
index 0000000..d8b30d5
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/detectSIFTFeatures.html
@@ -0,0 +1,107 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>detectSIFTFeatures</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectLATCHDescriptors.html">&lt;&lt; detectLATCHDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="distanceExtractor.html">distanceExtractor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; detectSIFTFeatures</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">detectSIFTFeatures</h1>
+    <p class="refpurpose">This function is used to find scale-invariant features.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectSIFTFeatures</span><span class="default">(</span><span class="default">srcImg</span><span class="default">)</span>
+<span class="default">[ </span><span class="default">a</span><span class="default"> ] = </span><span class="functionid">detectSIFTFeatures</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">features</span><span class="default">, </span><span class="default">nOctaveLayers</span><span class="default">, </span><span class="default">contrastThreshold</span><span class="default">, </span><span class="default">edgeThreshold</span><span class="default">, </span><span class="default">sigma</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg :</span>
+      <dd><p class="para">Hyper of input image.</p></dd></dt>
+   <dt><span class="term">nfeatures :</span>
+      <dd><p class="para">The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast). If valued as 0, uses all detected keypoints.</p></dd></dt>
+   <dt><span class="term">nOctaveLayers :</span>
+      <dd><p class="para">The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.</p></dd></dt>
+   <dt><span class="term">contrastThreshold :</span>
+      <dd><p class="para">The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.</p></dd></dt>
+   <dt><span class="term">edgeThreshold :</span>
+      <dd><p class="para">The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).</p></dd></dt>
+   <dt><span class="term">sigma :</span>
+      <dd><p class="para">The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.</p></dd></dt>
+   <dt><span class="term">a :</span>
+      <dd><p class="para">It is a struct consisting of &#0039;Type&#0039;(Type of Feature) , &#0039;Features&#0039;(descriptors) , &#0039;NumBits&#0039;, &#0039;NumFeatures&#0039;, &#0039;KeyPoints&#0039;, &#0039;keypointsCount&#0039;.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">For extracting keypoints and computing descriptors using the Scale Invariant Feature Transform. RGB images are converted to Grayscale images before processing.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// with default values</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">max</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">detectSIFTFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">detectSIFTFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// user assigned values</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<a class="scilabcommand" href="scilab://stacksize">stacksize</a><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">max</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">detectSIFTFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.05</span><span class="scilabdefault">,</span> <span class="scilabnumber">11</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">detectSIFTFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.05</span><span class="scilabdefault">,</span> <span class="scilabnumber">11</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.6</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span> <span class="scilabid">e</span> <span class="scilabid">f</span> <span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">matchFeatures</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">Features</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">out</span> <span class="scilaboperator">=</span> <span class="scilabid">drawMatch</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilaboperator">.</span><span class="scilabfield">KeyPoints</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectLATCHDescriptors.html">&lt;&lt; detectLATCHDescriptors</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="distanceExtractor.html">distanceExtractor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/distanceExtractor.html b/help/en_US/scilab_en_US_help/distanceExtractor.html
new file mode 100644
index 0000000..1a5b645
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/distanceExtractor.html
@@ -0,0 +1,126 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>distanceExtractor</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectSIFTFeatures.html">&lt;&lt; detectSIFTFeatures</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="fillConvexPoly.html">fillConvexPoly &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; distanceExtractor</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">distanceExtractor</h1>
+    <p class="refpurpose">This function computes the shape-distance between two images.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">dist</span><span class="default"> ] = </span><span class="functionid">distanceExtractor</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">); </span><span class="comment">// Hausdorrf distance</span>
+<span class="default">[ </span><span class="default">dist</span><span class="default"> ] = </span><span class="functionid">distanceExtractor</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">, </span><span class="default">nAngularBins</span><span class="default">, </span><span class="default">innerRadius</span><span class="default">, </span><span class="default">nRadialBins</span><span class="default">, </span><span class="default">outerRadius</span><span class="default">, </span><span class="default">iterations</span><span class="default">); </span><span class="comment">// Shape Context</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg1 :</span>
+      <dd><p class="para">It is the first input image.</p></dd></dt>
+   <dt><span class="term">srcImg2 :</span>
+      <dd><p class="para">It is the  second input image.</p></dd></dt>
+   <dt><span class="term">typeOfMethod :</span>
+      <dd><p class="para">It is used as a flag to pick a certain type of Shape Distance calculation technique. Use &#0039;1&#0039; for &#0039;Shape Context&#0039; and &#0039;2&#0039; for &#0039;Hausdorrf&#0039;.</p></dd></dt>
+   <dt><span class="term">nAngularBins :</span>
+      <dd><p class="para">Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline.</p></dd></dt>
+   <dt><span class="term">nRadialBins :</span>
+      <dd><p class="para">Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline.</p></dd></dt>
+   <dt><span class="term">innerRadius :</span>
+      <dd><p class="para">Set the inner radius of the shape context descriptor.</p></dd></dt>
+   <dt><span class="term">outerRadius :</span>
+      <dd><p class="para">Set the outer radius of the shape context descriptor.</p></dd></dt>
+   <dt><span class="term">dist :</span>
+      <dd><p class="para">It is the calculated distance. It is of double type.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function is used to compute the shape distance between two shapes defined by its contours.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Hausdorff distance extractor</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">bnwhite.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">bryan.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span><span class="scilabcomment">//2 is for hausdorff</span>
+<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabid">distanceExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span><span class="scilabid">orff</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Shape Context Distance extractor</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">photo1.jpg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabcomment">//1 for ShapeContext</span>
+<span class="scilabid">nAngularBins</span><span class="scilaboperator">=</span><span class="scilabnumber">12</span><span class="scilabdefault">;</span>
+<span class="scilabid">nRadialBins</span><span class="scilaboperator">=</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">innerRadius</span><span class="scilaboperator">=</span><span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">outerRadius</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">iterations</span><span class="scilaboperator">=</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">ndummies</span> <span class="scilaboperator">=</span> <span class="scilabnumber">25</span><span class="scilabdefault">;</span>
+<span class="scilabid">defaultCost</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">rpTps</span> <span class="scilaboperator">=</span><span class="scilabnumber">0</span> <span class="scilabdefault">;</span>
+<span class="scilabid">dist</span><span class="scilaboperator">=</span><span class="scilabid">distanceExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">nAngularBins</span><span class="scilabdefault">,</span><span class="scilabid">nRadialBins</span><span class="scilabdefault">,</span><span class="scilabid">innerRadius</span><span class="scilabdefault">,</span><span class="scilabid">outerRadius</span><span class="scilabdefault">,</span><span class="scilabid">iterations</span><span class="scilabdefault">,</span><span class="scilabid">ndummies</span><span class="scilabdefault">,</span><span class="scilabid">dC</span><span class="scilabdefault">,</span><span class="scilabid">rpTps</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">Incorrect</span> <span class="scilabid">usage</span>
+<span class="scilabid">a</span><span class="scilaboperator">=</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span> <span class="scilabopenclose">(</span><span class="scilabid">not</span> <a class="scilabmacro" href="scilab://hypermat">hypermat</a><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span><span class="scilabnumber">88</span><span class="scilabdefault">;</span> <span class="scilabopenclose">(</span><span class="scilabid">not</span> <a class="scilabmacro" href="scilab://hypermat">hypermat</a><span class="scilabopenclose">)</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span> <span class="scilabcomment">//1 for ShapeContext</span>
+<span class="scilabid">nAngularBins</span><span class="scilaboperator">=</span><span class="scilabnumber">12</span><span class="scilabdefault">;</span>
+<span class="scilabid">nRadialBins</span><span class="scilaboperator">=</span><span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">innerRadius</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">outerRadius</span><span class="scilaboperator">=</span><span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">iterations</span><span class="scilaboperator">=</span><span class="scilabnumber">300</span><span class="scilabdefault">;</span>
+<span class="scilabid">ndummies</span> <span class="scilaboperator">=</span> <span class="scilabnumber">25</span><span class="scilabdefault">;</span>
+<span class="scilabid">defaultCost</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">rpTps</span> <span class="scilaboperator">=</span><span class="scilabnumber">0</span> <span class="scilabdefault">;</span>
+<span class="scilabid">dist</span><span class="scilaboperator">=</span><span class="scilabid">distanceExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">nAngularBins</span><span class="scilabdefault">,</span><span class="scilabid">nRadialBins</span><span class="scilabdefault">,</span><span class="scilabid">innerRadius</span><span class="scilabdefault">,</span><span class="scilabid">outerRadius</span><span class="scilabdefault">,</span><span class="scilabid">iterations</span><span class="scilabdefault">,</span><span class="scilabid">ndummies</span><span class="scilabdefault">,</span><span class="scilabid">dC</span><span class="scilabdefault">,</span><span class="scilabid">rpTps</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="detectSIFTFeatures.html">&lt;&lt; detectSIFTFeatures</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="fillConvexPoly.html">fillConvexPoly &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/fillConvexPoly.html b/help/en_US/scilab_en_US_help/fillConvexPoly.html
new file mode 100644
index 0000000..393542c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/fillConvexPoly.html
@@ -0,0 +1,95 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>fillConvexPoly</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="distanceExtractor.html">&lt;&lt; distanceExtractor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="gabor.html">gabor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; fillConvexPoly</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">fillConvexPoly</h1>
+    <p class="refpurpose">This function fills a convex polygon.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">out</span><span class="default">] = </span><span class="functionid">fillConvexPoly</span><span class="default">(</span><span class="default">img</span><span class="default">, </span><span class="default">pstData</span><span class="default">, </span><span class="default">npts</span><span class="default">, </span><span class="default">r_value</span><span class="default">, </span><span class="default">g_value</span><span class="default">, </span><span class="default">b_value</span><span class="default">, </span><span class="default">linetype</span><span class="default">, </span><span class="default">shift</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">img :</span>
+      <dd><p class="para">The input source image.</p></dd></dt>
+   <dt><span class="term">pstData :</span>
+      <dd><p class="para">The vector of polygon vertices.</p></dd></dt>
+   <dt><span class="term">npts :</span>
+      <dd><p class="para">The number of polygon vertices.</p></dd></dt>
+   <dt><span class="term">r_value :</span>
+      <dd><p class="para">The red value of RGB color for the polygon.</p></dd></dt>
+   <dt><span class="term">g_value :</span>
+      <dd><p class="para">The green value of RGB color for the polygon.</p></dd></dt>
+   <dt><span class="term">b_value :</span>
+      <dd><p class="para">The blue value of RGB color for the polygon.</p></dd></dt>
+   <dt><span class="term">linetype :</span>
+      <dd><p class="para">This is the type of the polygon boundaries. It has only 3 valid types: 4, 8 and 16(CV_AA). Passing any other value as lineType is not legal.</p></dd></dt>
+   <dt><span class="term">shift :</span>
+      <dd><p class="para">This is the number of fractional bits in the vertex coordinates.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">The function fillConvexPoly draws a filled convex polygon. It can fill not only convex polygons but any monotonic polygon without self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) twice at the most (though, its top-most and/or the bottom edge could be horizontal).</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabnumber">0</span> <span class="scilabnumber">10</span><span class="scilabdefault">;</span> <span class="scilabnumber">10</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span> <span class="scilaboperator">-</span><span class="scilabnumber">10</span> <span class="scilabnumber">0</span> <span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">fillConvexPoly</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabnumber">3</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">1</span><span class="scilabdefault">,</span> <span class="scilabnumber">8</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Abhilasha Sancheti</li>
+   <li class="member">Sukul Bagai</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="distanceExtractor.html">&lt;&lt; distanceExtractor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="gabor.html">gabor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/gabor.html b/help/en_US/scilab_en_US_help/gabor.html
new file mode 100644
index 0000000..44d2aa0
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/gabor.html
@@ -0,0 +1,84 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>gabor</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="fillConvexPoly.html">&lt;&lt; fillConvexPoly</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="gaussianBlur.html">gaussianBlur &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; gabor</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">gabor</h1>
+    <p class="refpurpose">This function creates a Gabor filter.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">outputImg</span><span class="default">] = </span><span class="functionid">gabor</span><span class="default">(</span><span class="default">wavelength</span><span class="default">,</span><span class="default">orientation</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">wavelength :</span>
+      <dd><p class="para">It is the wavelength of sinusoid, specified as a numeric scalar or vector, in pixels/cycle.</p></dd></dt>
+   <dt><span class="term">orientation :</span>
+      <dd><p class="para">It is the orientation of filter in degrees, specified as a numeric scalar in the range [0 180], where the orientation is defined as the normal direction to the sinusoidal plane wave.</p></dd></dt>
+   <dt><span class="term">outputImg :</span>
+      <dd><p class="para">The Gabor filter.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">It creates a Gabor filter with the specified wavelength (in pixels/cycle) and orientation (in degrees). If you specify wavelength or orientation as vectors, gabor returns an array of gabor objects, called a filter bank, that contain all the unique combinations of wavelength and orientation. For example, if wavelength is a vector of length 2 and orientation is a vector of length 3, then the output array is a vector of length 6.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create an array of Gabor filters.</span>
+<span class="scilabid">wavelength</span> <span class="scilaboperator">=</span> <span class="scilabnumber">20</span><span class="scilabdefault">;</span>
+<span class="scilabid">orientation</span> <span class="scilaboperator">=</span> <span class="scilabnumber">45</span><span class="scilabdefault">;</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">gabor</span><span class="scilabopenclose">(</span><span class="scilabid">wavelength</span><span class="scilabdefault">,</span> <span class="scilabid">orientation</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Samiran Roy</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="fillConvexPoly.html">&lt;&lt; fillConvexPoly</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="gaussianBlur.html">gaussianBlur &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/gaussianBlur.html b/help/en_US/scilab_en_US_help/gaussianBlur.html
new file mode 100644
index 0000000..8222e45
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/gaussianBlur.html
@@ -0,0 +1,88 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>gaussianBlur</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="gabor.html">&lt;&lt; gabor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="histogramCostExtractor.html">histogramCostExtractor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; gaussianBlur</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">gaussianBlur</h1>
+    <p class="refpurpose">This function blurs the input image using a Gaussian filter.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">outputImg</span><span class="default"> = </span><span class="default">gaussianblur</span><span class="default">(</span><span class="default">inputImage</span><span class="default">,</span><span class="default">ksize_height</span><span class="default">,</span><span class="default">ksize_width</span><span class="default">,</span><span class="default">sigmaX</span><span class="default">,</span><span class="default">sigmaY</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">inputImage :</span>
+      <dd><p class="para">The input source image.</p></dd></dt>
+   <dt><span class="term">ksize_height :</span>
+      <dd><p class="para">It is the gaussian kernel height. It must be positive and odd.</p></dd></dt>
+   <dt><span class="term">ksize_width :</span>
+      <dd><p class="para">It is the gaussian kernel width. It must be positive and odd.</p></dd></dt>
+   <dt><span class="term">sigmaX :</span>
+      <dd><p class="para">It is the gaussian kernel standard deviation in X direction.</p></dd></dt>
+   <dt><span class="term">sigmaY :</span>
+      <dd><p class="para">It is the gaussian kernel standard deviation in Y direction.</p></dd></dt>
+   <dt><span class="term">outputImg :</span>
+      <dd><p class="para">The output filtered image is of the same size and type as the input image.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">The function convolves the source image with the specified Gaussian kernel.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">inputImage</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">lena.jpg</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">outputImg</span> <span class="scilaboperator">=</span> <span class="scilabid">gaussianBlur</span><span class="scilabopenclose">(</span><span class="scilabid">inputImage</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Sukul Bagai</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="gabor.html">&lt;&lt; gabor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="histogramCostExtractor.html">histogramCostExtractor &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/histogramCostExtractor.html b/help/en_US/scilab_en_US_help/histogramCostExtractor.html
new file mode 100644
index 0000000..00b5fed
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/histogramCostExtractor.html
@@ -0,0 +1,115 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>histogramCostExtractor</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="gaussianBlur.html">&lt;&lt; gaussianBlur</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="imGaborFilt.html">imGaborFilt &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; histogramCostExtractor</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">histogramCostExtractor</h1>
+    <p class="refpurpose">This function computes the cost matrix.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[ </span><span class="default">costMatrix</span><span class="default"> ] = </span><span class="functionid">histogramCostExtractor</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">=3, </span><span class="default">hessianThreshold</span><span class="default">); </span><span class="comment">// Norm based cost</span>
+<span class="default">[ </span><span class="default">costMatrix</span><span class="default"> ] = </span><span class="default">histogramcostExtractor</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">=1, </span><span class="default">hessianThreshold</span><span class="default">, </span><span class="default">nDummies</span><span class="default">, </span><span class="default">defaultCost</span><span class="default">); </span><span class="comment">// Chi as well as EMDL1 based cost extraction</span>
+<span class="default">[ </span><span class="default">costMatrix</span><span class="default"> ] = </span><span class="functionid">histogramCostExtractor</span><span class="default">(</span><span class="default">srcImg1</span><span class="default">, </span><span class="default">srcImg2</span><span class="default">, </span><span class="default">typeOfMethod</span><span class="default">=2, </span><span class="default">hessianThreshold</span><span class="default">, </span><span class="default">nDummies</span><span class="default">, </span><span class="default">defaultCost</span><span class="default">); </span><span class="comment">// EMDL1 based cost extraction</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg1 :</span>
+      <dd><p class="para">It is the first input image.</p></dd></dt>
+   <dt><span class="term">srcImg2 :</span>
+      <dd><p class="para">It is the second input image.</p></dd></dt>
+   <dt><span class="term">typeOfMethod :</span>
+      <dd><p class="para">It is used as a flag to pick a certain type of transformation. Use value &#0039;1&#0039; for &#0039;Chi based cost ectraction&#0039;, &#0039;2&#0039; for &#0039;EMDL1 based cost extraction&#0039; and &#0039;3&#0039; for &#0039;Norm based cost extraction&#0039;. It is of double type.</p></dd></dt>
+   <dt><span class="term">hessianThreshold :</span>
+      <dd><p class="para">It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.</p></dd></dt>
+   <dt><span class="term">rpTPS :</span>
+      <dd><p class="para">It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.</p></dd></dt>
+   <dt><span class="term">costMatrix :</span>
+      <dd><p class="para">It is the cost matrix.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function is used to calculate the histogram based cost matrix of two images, the user gets to choose and apply the type of transformation she/he wishes to perform.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Chi based cost extraction</span>
+<span class="scilabid">a</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">nDummies</span><span class="scilaboperator">=</span><span class="scilabnumber">25</span><span class="scilabdefault">;</span>
+<span class="scilabid">defaultCost</span><span class="scilaboperator">=</span><span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabid">histogramCostExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabdefault">,</span><span class="scilabid">nDummies</span><span class="scilabdefault">,</span><span class="scilabid">defaultCost</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// EMDL1</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">nDummies</span><span class="scilaboperator">=</span><span class="scilabnumber">25</span><span class="scilabdefault">;</span>
+<span class="scilabid">defaultCost</span><span class="scilaboperator">=</span><span class="scilabnumber">0.2</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabid">histogramCostExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabdefault">,</span><span class="scilabid">nDummies</span><span class="scilabdefault">,</span><span class="scilabid">defaultCost</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">Norm</span> <span class="scilabid">based</span> <span class="scilabid">cost</span> <span class="scilabid">extraction</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span><span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">n1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span><span class="scilaboperator">=</span><span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">hessianThreshold</span><span class="scilaboperator">=</span><span class="scilabnumber">5000</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span><span class="scilaboperator">=</span><span class="scilabid">histogramCostExtractor</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabdefault">,</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span><span class="scilabid">hessianThreshold</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Mantosh Barik, NIT Rouekela</li>
+   <li class="member">Shubham Lohakare, NITK Surathkal</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="gaussianBlur.html">&lt;&lt; gaussianBlur</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="imGaborFilt.html">imGaborFilt &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/imGaborFilt.html b/help/en_US/scilab_en_US_help/imGaborFilt.html
new file mode 100644
index 0000000..60754b5
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/imGaborFilt.html
@@ -0,0 +1,85 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>imGaborFilt</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="histogramCostExtractor.html">&lt;&lt; histogramCostExtractor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="lab2rgb.html">lab2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; imGaborFilt</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">imGaborFilt</h1>
+    <p class="refpurpose">The function applies Gabor filter or set of filters to 2-D image.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">new_image</span><span class="default">] = </span><span class="functionid">imGaborFilt</span><span class="default">(</span><span class="default">image</span><span class="default">, </span><span class="default">wavelength</span><span class="default">, </span><span class="default">orientation</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">image :</span>
+      <dd><p class="para">The input grayscale image.</p></dd></dt>
+   <dt><span class="term">wavelength :</span>
+      <dd><p class="para">It is the wavelength of the sinusoidal carrier, specified as a numeric scalar in the range [2,Inf), in pixels/cycle.</p></dd></dt>
+   <dt><span class="term">orientation :</span>
+      <dd><p class="para">Orientation value of filter in degrees, specified as a numeric scalar in the range [0 360], where the orientation is defined as the normal direction to the sinusoidal plane wave.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">It computes the magnitude and phase response of a Gabor filter for the input grayscale image.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// apply Single Gabor Filter to Input Image</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">wavelength</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">orientation</span> <span class="scilaboperator">=</span> <span class="scilabnumber">90</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imGaborFilt</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">wavelength</span><span class="scilabdefault">,</span> <span class="scilabid">orientation</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Samiran Roy</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="histogramCostExtractor.html">&lt;&lt; histogramCostExtractor</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="lab2rgb.html">lab2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/index.html b/help/en_US/scilab_en_US_help/index.html
new file mode 100644
index 0000000..a38276a
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/index.html
@@ -0,0 +1,211 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title></title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    
+    <br /><br />
+    <h3 class="book-title">FOSSEE Image Processing Toolbox</h3>
+<ul class="list-part"><a name="fossee_image_processing_toolbox_manual"></a><div class="info"></div>
+
+<li><a href="section_38a53415444fbf6feb416c6cf0aef456.html" class="part">FOSSEE Image Processing Toolbox</a>
+<ul class="list-chapter"><li><a href="align.html" class="refentry">align</a> &#8212; <span class="refentry-description">This function aligns the set of input images for HDR image creation.</span></li>
+
+
+
+
+
+<li><a href="applyTransformer.html" class="refentry">applyTransformer</a> &#8212; <span class="refentry-description">This function is used to apply affine or TPS transformation to image.</span></li>
+
+
+
+
+
+<li><a href="bwLookUp.html" class="refentry">bwLookUp</a> &#8212; <span class="refentry-description">This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.</span></li>
+
+
+
+
+
+<li><a href="contourArea.html" class="refentry">contourArea</a> &#8212; <span class="refentry-description">This function calculates the contour area.</span></li>
+
+
+
+
+
+<li><a href="copyMakeBorder.html" class="refentry">copyMakeBorder</a> &#8212; <span class="refentry-description">This function forms a border around the input image.</span></li>
+
+
+
+
+
+<li><a href="detectBRIEFDescriptors.html" class="refentry">detectBRIEFDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing BRIEF descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectDAISYDescriptors.html" class="refentry">detectDAISYDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing DAISY descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectLATCHDescriptors.html" class="refentry">detectLATCHDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing the LATCH descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectSIFTFeatures.html" class="refentry">detectSIFTFeatures</a> &#8212; <span class="refentry-description">This function is used to find scale-invariant features.</span></li>
+
+
+
+
+
+<li><a href="distanceExtractor.html" class="refentry">distanceExtractor</a> &#8212; <span class="refentry-description">This function computes the shape-distance between two images.</span></li>
+
+
+
+
+
+<li><a href="fillConvexPoly.html" class="refentry">fillConvexPoly</a> &#8212; <span class="refentry-description">This function fills a convex polygon.</span></li>
+
+
+
+
+
+<li><a href="gabor.html" class="refentry">gabor</a> &#8212; <span class="refentry-description">This function creates a Gabor filter.</span></li>
+
+
+
+
+
+<li><a href="gaussianBlur.html" class="refentry">gaussianBlur</a> &#8212; <span class="refentry-description">This function blurs the input image using a Gaussian filter.</span></li>
+
+
+
+
+
+<li><a href="histogramCostExtractor.html" class="refentry">histogramCostExtractor</a> &#8212; <span class="refentry-description">This function computes the cost matrix.</span></li>
+
+
+
+
+
+<li><a href="imGaborFilt.html" class="refentry">imGaborFilt</a> &#8212; <span class="refentry-description">The function applies Gabor filter or set of filters to 2-D image.</span></li>
+
+
+
+
+
+<li><a href="lab2rgb.html" class="refentry">lab2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1976 L*a*b* to RGB.</span></li>
+
+
+
+
+
+<li><a href="lab2uint8.html" class="refentry">lab2uint8</a> &#8212; <span class="refentry-description">This function converts L*a*b* data to uint8.</span></li>
+
+
+
+
+
+<li><a href="makeHDR.html" class="refentry">makeHDR</a> &#8212; <span class="refentry-description">This function is used to create HDR image.</span></li>
+
+
+
+
+
+<li><a href="ntsc2rgb.html" class="refentry">ntsc2rgb</a> &#8212; <span class="refentry-description">This function converts NTSC values to RGB color space.</span></li>
+
+
+
+
+
+<li><a href="pcwrite.html" class="refentry">pcwrite</a> &#8212; <span class="refentry-description">Write 3-D point cloud to PLY or PCD file.</span></li>
+
+
+
+
+
+<li><a href="rgb2lab.html" class="refentry">rgb2lab</a> &#8212; <span class="refentry-description">This function converts RGB to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="ssim.html" class="refentry">ssim</a> &#8212; <span class="refentry-description">This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality.</span></li>
+
+
+
+
+
+<li><a href="wiener2.html" class="refentry">wiener2</a> &#8212; <span class="refentry-description">This function is used for 2-D adaptive noise-removal filtering.</span></li>
+
+
+
+
+
+<li><a href="xyz2double.html" class="refentry">xyz2double</a> &#8212; <span class="refentry-description">This function converts XYZ color values to double.</span></li>
+
+
+
+
+
+<li><a href="xyz2lab.html" class="refentry">xyz2lab</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="xyz2rgb.html" class="refentry">xyz2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to RGB.</span></li>
+
+
+
+
+
+<li><a href="xyz2uint16.html" class="refentry">xyz2uint16</a> &#8212; <span class="refentry-description">This function converts XYZ color values to uint16.</span></li></ul></li></ul>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/jhelpidx.xml b/help/en_US/scilab_en_US_help/jhelpidx.xml
new file mode 100644
index 0000000..aa5a66e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpidx.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "http://java.sun.com/products/javahelp/index_1_0.dtd">
+<index version="1.0"/>
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelpmap.jhm b/help/en_US/scilab_en_US_help/jhelpmap.jhm
new file mode 100644
index 0000000..d68a422
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpmap.jhm
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "http://java.sun.com/products/javahelp/map_1_0.dtd">
+<map version="1.0">
+<mapID target="index" url="index.html"/>
+<mapID target="section_38a53415444fbf6feb416c6cf0aef456" url="section_38a53415444fbf6feb416c6cf0aef456.html"/>
+<mapID target="align" url="align.html"/>
+<mapID target="applyTransformer" url="applyTransformer.html"/>
+<mapID target="bwLookUp" url="bwLookUp.html"/>
+<mapID target="contourArea" url="contourArea.html"/>
+<mapID target="copyMakeBorder" url="copyMakeBorder.html"/>
+<mapID target="detectBRIEFDescriptors" url="detectBRIEFDescriptors.html"/>
+<mapID target="detectDAISYDescriptors" url="detectDAISYDescriptors.html"/>
+<mapID target="detectLATCHDescriptors" url="detectLATCHDescriptors.html"/>
+<mapID target="detectSIFTFeatures" url="detectSIFTFeatures.html"/>
+<mapID target="distanceExtractor" url="distanceExtractor.html"/>
+<mapID target="fillConvexPoly" url="fillConvexPoly.html"/>
+<mapID target="gabor" url="gabor.html"/>
+<mapID target="gaussianBlur" url="gaussianBlur.html"/>
+<mapID target="histogramCostExtractor" url="histogramCostExtractor.html"/>
+<mapID target="imGaborFilt" url="imGaborFilt.html"/>
+<mapID target="lab2rgb" url="lab2rgb.html"/>
+<mapID target="lab2uint8" url="lab2uint8.html"/>
+<mapID target="makeHDR" url="makeHDR.html"/>
+<mapID target="ntsc2rgb" url="ntsc2rgb.html"/>
+<mapID target="pcwrite" url="pcwrite.html"/>
+<mapID target="rgb2lab" url="rgb2lab.html"/>
+<mapID target="ssim" url="ssim.html"/>
+<mapID target="wiener2" url="wiener2.html"/>
+<mapID target="xyz2double" url="xyz2double.html"/>
+<mapID target="xyz2lab" url="xyz2lab.html"/>
+<mapID target="xyz2rgb" url="xyz2rgb.html"/>
+<mapID target="xyz2uint16" url="xyz2uint16.html"/>
+</map>
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelpset.hs b/help/en_US/scilab_en_US_help/jhelpset.hs
new file mode 100644
index 0000000..7c93217
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelpset.hs
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE helpset
+  PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "http://java.sun.com/products/javahelp/helpset_1_0.dtd">
+<helpset version="1.0">
+<title>FOSSEE Image Processing Toolbox</title>
+<maps>
+<homeID>top</homeID>
+<mapref location="jhelpmap.jhm"/>
+</maps>
+<view>
+<name>TOC</name>
+<label>Table Of Contents</label>
+<type>javax.help.TOCView</type>
+<data>jhelptoc.xml</data>
+</view>
+<view>
+<name>Index</name>
+<label>Index</label>
+<type>javax.help.IndexView</type>
+<data>jhelpidx.xml</data>
+</view>
+<view>
+<name>Search</name>
+<label>Search</label>
+<type>javax.help.SearchView</type>
+<data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/jhelptoc.xml b/help/en_US/scilab_en_US_help/jhelptoc.xml
new file mode 100644
index 0000000..b100ac9
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/jhelptoc.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "http://java.sun.com/products/javahelp/toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="index" text="FOSSEE Image Processing Toolbox">
+<tocitem target="section_38a53415444fbf6feb416c6cf0aef456" text="FOSSEE Image Processing Toolbox">
+<tocitem target="align" text="align"/>
+<tocitem target="applyTransformer" text="applyTransformer"/>
+<tocitem target="bwLookUp" text="bwLookUp"/>
+<tocitem target="contourArea" text="contourArea"/>
+<tocitem target="copyMakeBorder" text="copyMakeBorder"/>
+<tocitem target="detectBRIEFDescriptors" text="detectBRIEFDescriptors"/>
+<tocitem target="detectDAISYDescriptors" text="detectDAISYDescriptors"/>
+<tocitem target="detectLATCHDescriptors" text="detectLATCHDescriptors"/>
+<tocitem target="detectSIFTFeatures" text="detectSIFTFeatures"/>
+<tocitem target="distanceExtractor" text="distanceExtractor"/>
+<tocitem target="fillConvexPoly" text="fillConvexPoly"/>
+<tocitem target="gabor" text="gabor"/>
+<tocitem target="gaussianBlur" text="gaussianBlur"/>
+<tocitem target="histogramCostExtractor" text="histogramCostExtractor"/>
+<tocitem target="imGaborFilt" text="imGaborFilt"/>
+<tocitem target="lab2rgb" text="lab2rgb"/>
+<tocitem target="lab2uint8" text="lab2uint8"/>
+<tocitem target="makeHDR" text="makeHDR"/>
+<tocitem target="ntsc2rgb" text="ntsc2rgb"/>
+<tocitem target="pcwrite" text="pcwrite"/>
+<tocitem target="rgb2lab" text="rgb2lab"/>
+<tocitem target="ssim" text="ssim"/>
+<tocitem target="wiener2" text="wiener2"/>
+<tocitem target="xyz2double" text="xyz2double"/>
+<tocitem target="xyz2lab" text="xyz2lab"/>
+<tocitem target="xyz2rgb" text="xyz2rgb"/>
+<tocitem target="xyz2uint16" text="xyz2uint16"/>
+</tocitem>
+</tocitem>
+</toc>
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/lab2rgb.html b/help/en_US/scilab_en_US_help/lab2rgb.html
new file mode 100644
index 0000000..bc85673
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/lab2rgb.html
@@ -0,0 +1,127 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>lab2rgb</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="imGaborFilt.html">&lt;&lt; imGaborFilt</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="lab2uint8.html">lab2uint8 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; lab2rgb</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">lab2rgb</h1>
+    <p class="refpurpose">This function converts CIE 1976 L*a*b* to RGB.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">lab2rgb</span><span class="default">(</span><span class="default">pstData</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pstData :</span>
+      <dd><p class="para">The color values to convert, specified as a list of values.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">The converted color values, returned as an array of the same shape as the input.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Convert CIE 1976 L*a*b* to RGB.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">71</span><span class="scilabdefault">,</span> <span class="scilabnumber">50</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">7.3</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.53</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10.6656</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.45</span><span class="scilabdefault">,</span> <span class="scilabnumber">10.45</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">7.343</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.34</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">500</span><span class="scilabdefault">,</span> <span class="scilabnumber">1012</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">701.2</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.545</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">23</span><span class="scilabdefault">,</span> <span class="scilabnumber">51</span><span class="scilabdefault">,</span> <span class="scilabnumber">18</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Tess Zacharias</li>
+   <li class="member">Ashish Manatosh Barik</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="imGaborFilt.html">&lt;&lt; imGaborFilt</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="lab2uint8.html">lab2uint8 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/lab2uint8.html b/help/en_US/scilab_en_US_help/lab2uint8.html
new file mode 100644
index 0000000..50286f9
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/lab2uint8.html
@@ -0,0 +1,126 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>lab2uint8</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="lab2rgb.html">&lt;&lt; lab2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="makeHDR.html">makeHDR &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; lab2uint8</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">lab2uint8</h1>
+    <p class="refpurpose">This function converts L*a*b* data to uint8.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">lab2uint8</span><span class="default">(</span><span class="default">pstData</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pstData :</span>
+      <dd><p class="para">It is a list of color values.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">The converted uint8 value. lab8 has the same size as lab.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts L*a*b* data to uint8.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">71</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">89</span><span class="scilabdefault">,</span> <span class="scilabnumber">50</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10.78</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">7</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">89</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70.344</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.34</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span> <span class="scilabnumber">0</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">70.89</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.11</span><span class="scilabdefault">,</span> <span class="scilabnumber">10.33</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert L*a*b* color values from double to uint8.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">10</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">lab2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Tess Zacharias</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="lab2rgb.html">&lt;&lt; lab2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="makeHDR.html">makeHDR &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/makeHDR.html b/help/en_US/scilab_en_US_help/makeHDR.html
new file mode 100644
index 0000000..618247c
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/makeHDR.html
@@ -0,0 +1,235 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>makeHDR</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="lab2uint8.html">&lt;&lt; lab2uint8</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="ntsc2rgb.html">ntsc2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; makeHDR</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">makeHDR</h1>
+    <p class="refpurpose">This function is used to create HDR image.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=1, </span><span class="default">num</span><span class="default">=3, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">max_iter</span><span class="default">, </span><span class="default">threshold</span><span class="default">) </span><span class="comment">// Robertson merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=2, </span><span class="default">num</span><span class="default">=3, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">samples</span><span class="default">, </span><span class="default">lambda</span><span class="default">, </span><span class="default">random</span><span class="default">) </span><span class="comment">// Debevec merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=3, </span><span class="default">num</span><span class="default">=3, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">contrast_weight</span><span class="default">, </span><span class="default">saturation_weight</span><span class="default">, </span><span class="default">exposure_weight</span><span class="default">) </span><span class="comment">// Mertens merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=1, </span><span class="default">num</span><span class="default">=4, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">max_iter</span><span class="default">, </span><span class="default">threshold</span><span class="default">) </span><span class="comment">// Robertson merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=2, </span><span class="default">num</span><span class="default">=4, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">samples</span><span class="default">, </span><span class="default">lambda</span><span class="default">, </span><span class="default">random</span><span class="default">) </span><span class="comment">// Debevec merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=3, </span><span class="default">num</span><span class="default">=4, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">contrast_weight</span><span class="default">, </span><span class="default">saturation_weight</span><span class="default">, </span><span class="default">exposure_weight</span><span class="default">) </span><span class="comment">// Mertens merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=1, </span><span class="default">num</span><span class="default">=5, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">max_iter</span><span class="default">, </span><span class="default">threshold</span><span class="default">) </span><span class="comment">// Robertson merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=2, </span><span class="default">num</span><span class="default">=5, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">samples</span><span class="default">, </span><span class="default">lambda</span><span class="default">, </span><span class="default">random</span><span class="default">) </span><span class="comment">// Debevec merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=3, </span><span class="default">num</span><span class="default">=5, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">contrast_weight</span><span class="default">, </span><span class="default">saturation_weight</span><span class="default">, </span><span class="default">exposure_weight</span><span class="default">) </span><span class="comment">// Mertens merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=1, </span><span class="default">num</span><span class="default">=6, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">srcMat_6</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">ex_6</span><span class="default">, </span><span class="default">max_iter</span><span class="default">, </span><span class="default">threshold</span><span class="default">) </span><span class="comment">// Robertson merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=2, </span><span class="default">num</span><span class="default">=6, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">srcMat_6</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">ex_6</span><span class="default">, </span><span class="default">samples</span><span class="default">, </span><span class="default">lambda</span><span class="default">, </span><span class="default">random</span><span class="default">) </span><span class="comment">// Debevec merging</span>
+<span class="default">[</span><span class="default">out1</span><span class="default">, </span><span class="default">out2</span><span class="default">] = </span><span class="functionid">makeHDR</span><span class="default">(</span><span class="default">typeOfMethod</span><span class="default">=3, </span><span class="default">num</span><span class="default">=6, </span><span class="default">srcMat_1</span><span class="default">, </span><span class="default">srcMat_2</span><span class="default">, </span><span class="default">srcMat_3</span><span class="default">, </span><span class="default">srcMat_4</span><span class="default">, </span><span class="default">srcMat_5</span><span class="default">, </span><span class="default">srcMat_6</span><span class="default">, </span><span class="default">ex_1</span><span class="default">, </span><span class="default">ex_2</span><span class="default">, </span><span class="default">ex_3</span><span class="default">, </span><span class="default">ex_4</span><span class="default">, </span><span class="default">ex_5</span><span class="default">, </span><span class="default">ex_6</span><span class="default">, </span><span class="default">contrast_weight</span><span class="default">, </span><span class="default">saturation_weight</span><span class="default">, </span><span class="default">exposure_weight</span><span class="default">) </span><span class="comment">// Mertens merging</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">typeOfMethod :</span>
+      <dd><p class="para">Use &#0039;1&#0039; for &#0039;Robertson&#0039;, &#0039;2&#0039; for &#0039;Debevec&#0039;, or &#0039;3&#0039; for &#0039;Mertens&#0039;.</p></dd></dt>
+   <dt><span class="term">num :</span>
+      <dd><p class="para">It is the number of images being fed as input. It is of Double type.</p></dd></dt>
+   <dt><span class="term">srcMat_i :</span>
+      <dd><p class="para">It is the hypermat of input source image.</p></dd></dt>
+   <dt><span class="term">ex_i :</span>
+      <dd><p class="para">It is the exposure value of the corresponding image_i. It is of double type.</p></dd></dt>
+   <dt><span class="term">max_iter :</span>
+      <dd><p class="para">(Robertson) maximal number of Gauss-Seidel solver iterations. It is of Double type.</p></dd></dt>
+   <dt><span class="term">threshold :</span>
+      <dd><p class="para">(Robertson) target difference between results of two successive steps of the minimization. It is of Double type.</p></dd></dt>
+   <dt><span class="term">samples :</span>
+      <dd><p class="para">(Debevec) number of pixel locations to use. It is of Double type.</p></dd></dt>
+   <dt><span class="term">lambda :</span>
+      <dd><p class="para">(Debevec) smoothness term weight. Greater values produce smoother results, but can alter the response. It is of Double type.</p></dd></dt>
+   <dt><span class="term">random :</span>
+      <dd><p class="para">(Debevec) if true sample pixel locations are chosen at random, otherwise they form a rectangular grid. It is of Boolean type.</p></dd></dt>
+   <dt><span class="term">contrast_weight :</span>
+      <dd><p class="para">(Mertens) contrast measure weight. It is of Double type.</p></dd></dt>
+   <dt><span class="term">saturation_weight :</span>
+      <dd><p class="para">(Mertens) saturation measure weight. It is of Double type.</p></dd></dt>
+   <dt><span class="term">exposure_weight :</span>
+      <dd><p class="para">(Mertens) well-exposedness measure weight. It is of Double type.</p></dd></dt>
+   <dt><span class="term">out1 :</span>
+      <dd><p class="para">HDR image</p></dd></dt>
+   <dt><span class="term">out2 :</span>
+      <dd><p class="para">LDR image</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">This function takes a set of images of the same scene in different exposures which have been aligned accordingly and outputs the HDR image.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// input of 3 images(min), using Robertson merging technique</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">t3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">15</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2.5</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.25</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxIter</span> <span class="scilaboperator">=</span> <span class="scilabnumber">30</span><span class="scilabdefault">;</span>
+<span class="scilabid">thres</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.01</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">maxIter</span><span class="scilabdefault">,</span> <span class="scilabid">thres</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Use of Debevec merging technique</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">e</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m5.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m6.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0167</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.067</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.125</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex5</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.25</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex6</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">;</span>
+<span class="scilabid">samples</span> <span class="scilaboperator">=</span> <span class="scilabnumber">70</span><span class="scilabdefault">;</span>
+<span class="scilabid">lambda</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">random</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%f</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">ex5</span><span class="scilabdefault">,</span> <span class="scilabid">ex6</span><span class="scilabdefault">,</span> <span class="scilabid">samples</span><span class="scilabdefault">,</span> <span class="scilabid">lambda</span><span class="scilabdefault">,</span> <span class="scilabid">random</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// use of Robertson merging technique</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">e</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m5.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m6.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0167</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.067</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.125</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex5</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.25</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex6</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxIter</span> <span class="scilaboperator">=</span> <span class="scilabnumber">30</span><span class="scilabdefault">;</span>
+<span class="scilabid">thres</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.01</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">ex5</span><span class="scilabdefault">,</span> <span class="scilabid">ex6</span><span class="scilabdefault">,</span> <span class="scilabid">maxIter</span><span class="scilabdefault">,</span> <span class="scilabid">thres</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// alternative to creating an HDR image, resulting image is of average exposure. Faster compared to rendering a HDR image.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">e</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m5.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">f</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m6.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">6</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0167</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.067</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.125</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex5</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.25</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex6</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">;</span>
+<span class="scilabid">contrastWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">saturationWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">exposureWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">e</span><span class="scilabdefault">,</span> <span class="scilabid">f</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">ex5</span><span class="scilabdefault">,</span> <span class="scilabid">ex6</span><span class="scilabdefault">,</span> <span class="scilabid">contrastWeight</span><span class="scilabdefault">,</span> <span class="scilabid">saturationWeight</span><span class="scilabdefault">,</span> <span class="scilabid">exposureWeight</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">2</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.008</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.00073</span><span class="scilabdefault">;</span>
+<span class="scilabid">samples</span> <span class="scilaboperator">=</span> <span class="scilabnumber">70</span><span class="scilabdefault">;</span>
+<span class="scilabid">lambda</span> <span class="scilaboperator">=</span> <span class="scilabnumber">10.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">random</span> <span class="scilaboperator">=</span> <span class="scilabconstants">%f</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">samples</span><span class="scilabdefault">,</span> <span class="scilabid">lambda</span><span class="scilabdefault">,</span> <span class="scilabid">random</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.008</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.00073</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxIter</span> <span class="scilaboperator">=</span> <span class="scilabnumber">30</span><span class="scilabdefault">;</span>
+<span class="scilabid">thres</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.01</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">maxIter</span><span class="scilabdefault">,</span> <span class="scilabid">thres</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i3.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">i4.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">num</span> <span class="scilaboperator">=</span> <span class="scilabnumber">4</span><span class="scilabdefault">;</span>
+<span class="scilabid">typeOfMethod</span> <span class="scilaboperator">=</span> <span class="scilabnumber">3</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex1</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex2</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.008</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex3</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0034</span><span class="scilabdefault">;</span>
+<span class="scilabid">ex4</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.00073</span><span class="scilabdefault">;</span>
+<span class="scilabid">maxIter</span> <span class="scilaboperator">=</span> <span class="scilabnumber">30</span><span class="scilabdefault">;</span>
+<span class="scilabid">contrastWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">saturationWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">1.0</span><span class="scilabdefault">;</span>
+<span class="scilabid">exposureWeight</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0.0</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">hdr</span><span class="scilabdefault">,</span> <span class="scilabid">ldr</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">makeHDR</span><span class="scilabopenclose">(</span><span class="scilabid">typeOfMethod</span><span class="scilabdefault">,</span> <span class="scilabid">num</span><span class="scilabdefault">,</span> <span class="scilabid">a</span><span class="scilabdefault">,</span> <span class="scilabid">b</span><span class="scilabdefault">,</span> <span class="scilabid">c</span><span class="scilabdefault">,</span> <span class="scilabid">d</span><span class="scilabdefault">,</span> <span class="scilabid">ex1</span><span class="scilabdefault">,</span> <span class="scilabid">ex2</span><span class="scilabdefault">,</span> <span class="scilabid">ex3</span><span class="scilabdefault">,</span> <span class="scilabid">ex4</span><span class="scilabdefault">,</span> <span class="scilabid">contrastWeight</span><span class="scilabdefault">,</span> <span class="scilabid">saturationWeight</span><span class="scilabdefault">,</span> <span class="scilabid">exposureWeight</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="lab2uint8.html">&lt;&lt; lab2uint8</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="ntsc2rgb.html">ntsc2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/ntsc2rgb.html b/help/en_US/scilab_en_US_help/ntsc2rgb.html
new file mode 100644
index 0000000..0d91790
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/ntsc2rgb.html
@@ -0,0 +1,116 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>ntsc2rgb</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="makeHDR.html">&lt;&lt; makeHDR</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="pcwrite.html">pcwrite &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; ntsc2rgb</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">ntsc2rgb</h1>
+    <p class="refpurpose">This function converts NTSC values to RGB color space.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">ntsc2rgb</span><span class="default">(</span><span class="default">pstData</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pstData :</span>
+      <dd><p class="para">It is a list of the NTSC luminance (Y) and chrominance (I and Q) color components.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">It is a list that contains the red, green, and blue values equivalent to those colors.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts NTSC values to RGB color space.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert the grayscale image back to RGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert the grayscale image back to RGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert the grayscale image back to RGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">graf1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert the grayscale image back to RGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">graf2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// input RGB image</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// input RGB image</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">graf1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// input RGB image</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">garf2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert the grayscale image back to RGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabdefault">,</span><span class="scilabnumber">0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">ntsc2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Tess Zacharias</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="makeHDR.html">&lt;&lt; makeHDR</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="pcwrite.html">pcwrite &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/pcwrite.html b/help/en_US/scilab_en_US_help/pcwrite.html
new file mode 100644
index 0000000..168b670
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/pcwrite.html
@@ -0,0 +1,93 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>pcwrite</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="ntsc2rgb.html">&lt;&lt; ntsc2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="rgb2lab.html">rgb2lab &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; pcwrite</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">pcwrite</h1>
+    <p class="refpurpose">This function is used to write 3-D point cloud to PLY or PCD file.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[] = </span><span class="functionid">pcwrite</span><span class="default">(</span><span class="default">pointCloud</span><span class="default">, </span><span class="default">filename</span><span class="default">)</span>
+<span class="default">[] = </span><span class="functionid">pcwrite</span><span class="default">(</span><span class="default">pointCloud</span><span class="default">, </span><span class="default">filename</span><span class="default">, </span><span class="default">fileFormat</span><span class="default">, </span><span class="default">fileType</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pointCloud :</span>
+      <dd><p class="para">Object for storing point cloud, specified as a pointCloud object.</p></dd></dt>
+   <dt><span class="term">filename :</span>
+      <dd><p class="para">File name, specified as a character vector, specify the file name with an extension incase of two input argument.(default encoding is ASCII)</p></dd></dt>
+   <dt><span class="term">fileFormat :</span>
+      <dd><p class="para">The input file type must be a PLY or PCD format file.(choose between &#0034;.ply&#0034; or &#0034;.pcd&#0034;)</p></dd></dt>
+   <dt><span class="term">fileType :</span>
+      <dd><p class="para">Choose from the following encoding, PLY - &#0039;ascii&#0039;, &#0039;binary&#0039; and PCD - &#0039;ascii&#0039;, &#0039;binary&#0039;, or &#0039;compressed&#0039;.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Writes the point cloud object, ptCloud, to the PLY or PCD file specified by the input.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Write 3-D Point Cloud to PLY File</span>
+<span class="scilabid">ptCloud</span> <span class="scilaboperator">=</span> <span class="scilabid">pcread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">teapot.ply</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">pcshow</span><span class="scilabopenclose">(</span><span class="scilabid">ptCloud</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">pcwrite</span><span class="scilabopenclose">(</span><span class="scilabid">ptCloud</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">teapotOut</span><span class="scilabstring">&#0039;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">ply</span><span class="scilabstring">&#0039;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">binary</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Write 3-D Point Cloud to PCD File</span>
+<span class="scilabid">ptCloud</span> <span class="scilaboperator">=</span> <span class="scilabid">pcread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0039;</span><span class="scilabstring">teapot.ply</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">pcshow</span><span class="scilabopenclose">(</span><span class="scilabid">ptCloud</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">pcwrite</span><span class="scilabopenclose">(</span><span class="scilabid">ptCloud</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">teapotOut</span><span class="scilabstring">&#0039;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">pcd</span><span class="scilabstring">&#0039;</span><span class="scilabdefault">,</span><span class="scilabstring">&#0039;</span><span class="scilabstring">binary</span><span class="scilabstring">&#0039;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="ntsc2rgb.html">&lt;&lt; ntsc2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="rgb2lab.html">rgb2lab &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/rgb2lab.html b/help/en_US/scilab_en_US_help/rgb2lab.html
new file mode 100644
index 0000000..deae45f
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/rgb2lab.html
@@ -0,0 +1,123 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>rgb2lab</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="pcwrite.html">&lt;&lt; pcwrite</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="ssim.html">ssim &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; rgb2lab</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">rgb2lab</h1>
+    <p class="refpurpose">This function converts RGB to CIE 1976 L*a*b*.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">rgb2lab</span><span class="default">(</span><span class="default">inputImage</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">inputImage :</span>
+      <dd><p class="para">It is a list of color values to convert.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">The converted color values, returned as a list.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts RGB to CIE 1976 L*a*b*.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert the RGB white value to L*a*b.</span>
+<span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">1</span> <span class="scilabnumber">1</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert the RGB white value to L*a*b.</span>
+<span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">.2</span> <span class="scilabnumber">.3</span> <span class="scilabnumber">.4</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert the RGB white value to L*a*b.</span>
+<span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">23</span> <span class="scilabnumber">23</span> <span class="scilabnumber">22</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">lena.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// to convert the RGB white value to L*a*b.</span>
+<span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">34.2</span> <span class="scilabnumber">43.3</span> <span class="scilabnumber">343.4</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">graf1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">graf2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Read RGB image to convert which doesnt exit</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">b.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">rgb2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Sridhar Reddy</li>
+   <li class="member">Ashish Manatosh Barik</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="pcwrite.html">&lt;&lt; pcwrite</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="ssim.html">ssim &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/scilab_code.css b/help/en_US/scilab_en_US_help/scilab_code.css
new file mode 100644
index 0000000..658f42e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/scilab_code.css
@@ -0,0 +1,96 @@
+.scilabcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.scilabdefault {
+ font-style: normal;
+ color: #000000
+}
+
+.scilabspecial {
+ font-style: normal;
+ color: #ffaa00
+}
+
+.scilabconstants {
+ font-style: normal;
+ color: #da70d6
+}
+
+.scilaboperator {
+ font-style: normal;
+ color: #5c5c5c
+}
+
+.scilabnumber {
+ font-style: normal;
+ color: #bc8f8f
+}
+
+.scilabfkeyword {
+ font-style: normal;
+ color: #b01813
+}
+
+.scilabskeyword {
+ font-style: normal;
+ color: #a020f0
+}
+
+.scilabckeyword {
+ font-style: normal;
+ color: #5f9ea0
+}
+
+.scilabcommand {
+ font-style: normal;
+ color: #32b9b9
+}
+
+.scilabmacro {
+ font-style: normal;
+ color: #ae5cb0
+}
+
+a.scilabcommand {
+ font-style: normal;
+ text-decoration: underline;
+ color: #32b9b9
+}
+
+a.scilabmacro {
+ font-style: normal;
+ text-decoration: underline;
+ color: #ae5cb0
+}
+
+.scilabstring {
+ font-style: normal;
+ color: #bc8f8f
+}
+
+.scilabid {
+ font-style: normal;
+ color: #000000
+}
+
+.scilabinputoutputargs {
+ font-weight: bold;
+ color: #834310
+}
+
+.scilabfunctionid {
+ font-weight: bold;
+ color: #000000
+}
+
+.scilabfield {
+ font-style: normal;
+ color: #aaaaaa
+}
+
+.scilabopenclose {
+ font-style: normal;
+ color: #4a55db
+}
diff --git a/help/en_US/scilab_en_US_help/section_38a53415444fbf6feb416c6cf0aef456.html b/help/en_US/scilab_en_US_help/section_38a53415444fbf6feb416c6cf0aef456.html
new file mode 100644
index 0000000..806c996
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_38a53415444fbf6feb416c6cf0aef456.html
@@ -0,0 +1,211 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title></title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; FOSSEE Image Processing Toolbox</span>
+
+    <br /><br />
+    <h3 class="title-part">FOSSEE Image Processing Toolbox</h3>
+<ul class="list-chapter"><li><a href="align.html" class="refentry">align</a> &#8212; <span class="refentry-description">This function aligns the set of input images for HDR image creation.</span></li>
+
+
+
+
+
+<li><a href="applyTransformer.html" class="refentry">applyTransformer</a> &#8212; <span class="refentry-description">This function is used to apply affine or TPS transformation to image.</span></li>
+
+
+
+
+
+<li><a href="bwLookUp.html" class="refentry">bwLookUp</a> &#8212; <span class="refentry-description">This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.</span></li>
+
+
+
+
+
+<li><a href="contourArea.html" class="refentry">contourArea</a> &#8212; <span class="refentry-description">This function calculates the contour area.</span></li>
+
+
+
+
+
+<li><a href="copyMakeBorder.html" class="refentry">copyMakeBorder</a> &#8212; <span class="refentry-description">This function forms a border around the input image.</span></li>
+
+
+
+
+
+<li><a href="detectBRIEFDescriptors.html" class="refentry">detectBRIEFDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing BRIEF descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectDAISYDescriptors.html" class="refentry">detectDAISYDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing DAISY descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectLATCHDescriptors.html" class="refentry">detectLATCHDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing the LATCH descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectSIFTFeatures.html" class="refentry">detectSIFTFeatures</a> &#8212; <span class="refentry-description">This function is used to find scale-invariant features.</span></li>
+
+
+
+
+
+<li><a href="distanceExtractor.html" class="refentry">distanceExtractor</a> &#8212; <span class="refentry-description">This function computes the shape-distance between two images.</span></li>
+
+
+
+
+
+<li><a href="fillConvexPoly.html" class="refentry">fillConvexPoly</a> &#8212; <span class="refentry-description">This function fills a convex polygon.</span></li>
+
+
+
+
+
+<li><a href="gabor.html" class="refentry">gabor</a> &#8212; <span class="refentry-description">This function creates a Gabor filter.</span></li>
+
+
+
+
+
+<li><a href="gaussianBlur.html" class="refentry">gaussianBlur</a> &#8212; <span class="refentry-description">This function blurs the input image using a Gaussian filter.</span></li>
+
+
+
+
+
+<li><a href="histogramCostExtractor.html" class="refentry">histogramCostExtractor</a> &#8212; <span class="refentry-description">This function computes the cost matrix.</span></li>
+
+
+
+
+
+<li><a href="imGaborFilt.html" class="refentry">imGaborFilt</a> &#8212; <span class="refentry-description">The function applies Gabor filter or set of filters to 2-D image.</span></li>
+
+
+
+
+
+<li><a href="lab2rgb.html" class="refentry">lab2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1976 L*a*b* to RGB.</span></li>
+
+
+
+
+
+<li><a href="lab2uint8.html" class="refentry">lab2uint8</a> &#8212; <span class="refentry-description">This function converts L*a*b* data to uint8.</span></li>
+
+
+
+
+
+<li><a href="makeHDR.html" class="refentry">makeHDR</a> &#8212; <span class="refentry-description">This function is used to create HDR image.</span></li>
+
+
+
+
+
+<li><a href="ntsc2rgb.html" class="refentry">ntsc2rgb</a> &#8212; <span class="refentry-description">This function converts NTSC values to RGB color space.</span></li>
+
+
+
+
+
+<li><a href="pcwrite.html" class="refentry">pcwrite</a> &#8212; <span class="refentry-description">Write 3-D point cloud to PLY or PCD file.</span></li>
+
+
+
+
+
+<li><a href="rgb2lab.html" class="refentry">rgb2lab</a> &#8212; <span class="refentry-description">This function converts RGB to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="ssim.html" class="refentry">ssim</a> &#8212; <span class="refentry-description">This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality.</span></li>
+
+
+
+
+
+<li><a href="wiener2.html" class="refentry">wiener2</a> &#8212; <span class="refentry-description">This function is used for 2-D adaptive noise-removal filtering.</span></li>
+
+
+
+
+
+<li><a href="xyz2double.html" class="refentry">xyz2double</a> &#8212; <span class="refentry-description">This function converts XYZ color values to double.</span></li>
+
+
+
+
+
+<li><a href="xyz2lab.html" class="refentry">xyz2lab</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="xyz2rgb.html" class="refentry">xyz2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to RGB.</span></li>
+
+
+
+
+
+<li><a href="xyz2uint16.html" class="refentry">xyz2uint16</a> &#8212; <span class="refentry-description">This function converts XYZ color values to uint16.</span></li></ul>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_90534096b3a447538ddfbb9df9cf6c8b.html b/help/en_US/scilab_en_US_help/section_90534096b3a447538ddfbb9df9cf6c8b.html
new file mode 100644
index 0000000..d4c0a2e
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_90534096b3a447538ddfbb9df9cf6c8b.html
@@ -0,0 +1,109 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title></title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; FOSSEE Image Processing Toolbox</span>
+
+    <br /><br />
+    <h3 class="title-part">FOSSEE Image Processing Toolbox</h3>
+<ul class="list-chapter"><li><a href="align.html" class="refentry">align</a> &#8212; <span class="refentry-description">Aligns images for HDR image creation.</span></li>
+
+
+
+
+
+<li><a href="applyTransformer.html" class="refentry">applyTransformer</a> &#8212; <span class="refentry-description">Apply affine or TPS transformation to image.</span></li>
+
+
+
+
+
+<li><a href="detectBRIEFDescriptors.html" class="refentry">detectBRIEFDescriptors</a> &#8212; <span class="refentry-description">Method for computing BRIEF descriptors.</span></li>
+
+
+
+
+
+<li><a href="detectDAISYDescriptors.html" class="refentry">detectDAISYDescriptors</a> &#8212; <span class="refentry-description">Method for computing DAISY descriptors.</span></li>
+
+
+
+
+
+<li><a href="detectLATCHDescriptors.html" class="refentry">detectLATCHDescriptors</a> &#8212; <span class="refentry-description">Method for for computing the LATCH descriptors.</span></li>
+
+
+
+
+
+<li><a href="detectSIFTFeatures.html" class="refentry">detectSIFTFeatures</a> &#8212; <span class="refentry-description">Method to find scale-invariant features.</span></li>
+
+
+
+
+
+<li><a href="detectSTARKeypoints.html" class="refentry">detectSTARKeypoints</a> &#8212; <span class="refentry-description">Method to find star-Keypoints of an image.</span></li>
+
+
+
+
+
+<li><a href="distanceExtractor.html" class="refentry">distanceExtractor</a> &#8212; <span class="refentry-description">Computes shape-distance between two images.</span></li>
+
+
+
+
+
+<li><a href="histogramCostExtractor.html" class="refentry">histogramCostExtractor</a> &#8212; <span class="refentry-description">Finds the cost matrix.</span></li>
+
+
+
+
+
+<li><a href="makeHDR.html" class="refentry">makeHDR</a> &#8212; <span class="refentry-description">Create HDR image.</span></li></ul>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/section_a2c9cca36f8f25d9e603fc42b80e6232.html b/help/en_US/scilab_en_US_help/section_a2c9cca36f8f25d9e603fc42b80e6232.html
new file mode 100644
index 0000000..628c1f8
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/section_a2c9cca36f8f25d9e603fc42b80e6232.html
@@ -0,0 +1,211 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title></title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; FOSSEE Image Processing Toolbox</span>
+
+    <br /><br />
+    <h3 class="title-part">FOSSEE Image Processing Toolbox</h3>
+<ul class="list-chapter"><li><a href="align.html" class="refentry">align</a> &#8212; <span class="refentry-description">This function aligns the set of input images for HDR image creation.</span></li>
+
+
+
+
+
+<li><a href="applyTransformer.html" class="refentry">applyTransformer</a> &#8212; <span class="refentry-description">This function is used to apply affine or TPS transformation to image.</span></li>
+
+
+
+
+
+<li><a href="bwLookUp.html" class="refentry">bwLookUp</a> &#8212; <span class="refentry-description">This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.</span></li>
+
+
+
+
+
+<li><a href="contourArea.html" class="refentry">contourArea</a> &#8212; <span class="refentry-description">This function calculates the contour area.</span></li>
+
+
+
+
+
+<li><a href="copyMakeBorder.html" class="refentry">copyMakeBorder</a> &#8212; <span class="refentry-description">This function forms a border around the input image.</span></li>
+
+
+
+
+
+<li><a href="detectBRIEFDescriptors.html" class="refentry">detectBRIEFDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing BRIEF descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectDAISYDescriptors.html" class="refentry">detectDAISYDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing DAISY descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectLATCHDescriptors.html" class="refentry">detectLATCHDescriptors</a> &#8212; <span class="refentry-description">This function is used for computing the LATCH descriptors using Star keypoints.</span></li>
+
+
+
+
+
+<li><a href="detectSIFTFeatures.html" class="refentry">detectSIFTFeatures</a> &#8212; <span class="refentry-description">This function is used to find scale-invariant features.</span></li>
+
+
+
+
+
+<li><a href="distanceExtractor.html" class="refentry">distanceExtractor</a> &#8212; <span class="refentry-description">This function computes the shape-distance between two images.</span></li>
+
+
+
+
+
+<li><a href="fillConvexPoly.html" class="refentry">fillConvexPoly</a> &#8212; <span class="refentry-description">This function fills a convex polygon.</span></li>
+
+
+
+
+
+<li><a href="gabor.html" class="refentry">gabor</a> &#8212; <span class="refentry-description">This function creates a Gabor filter.</span></li>
+
+
+
+
+
+<li><a href="gaussianBlur.html" class="refentry">gaussianBlur</a> &#8212; <span class="refentry-description">This function blurs the input image using a Gaussian filter.</span></li>
+
+
+
+
+
+<li><a href="histogramCostExtractor.html" class="refentry">histogramCostExtractor</a> &#8212; <span class="refentry-description">This function computes the cost matrix.</span></li>
+
+
+
+
+
+<li><a href="imGaborFilt.html" class="refentry">imGaborFilt</a> &#8212; <span class="refentry-description">The function applies Gabor filter or set of filters to 2-D image.</span></li>
+
+
+
+
+
+<li><a href="lab2rgb.html" class="refentry">lab2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1976 L*a*b* to RGB.</span></li>
+
+
+
+
+
+<li><a href="lab2uint8.html" class="refentry">lab2uint8</a> &#8212; <span class="refentry-description">This function converts L*a*b* data to uint8.</span></li>
+
+
+
+
+
+<li><a href="makeHDR.html" class="refentry">makeHDR</a> &#8212; <span class="refentry-description">This function is used to create HDR image.</span></li>
+
+
+
+
+
+<li><a href="ntsc2rgb.html" class="refentry">ntsc2rgb</a> &#8212; <span class="refentry-description">This function converts NTSC values to RGB color space.</span></li>
+
+
+
+
+
+<li><a href="pcwrite.html" class="refentry">pcwrite</a> &#8212; <span class="refentry-description">This function is used to write 3-D point cloud to PLY or PCD file.</span></li>
+
+
+
+
+
+<li><a href="rgb2lab.html" class="refentry">rgb2lab</a> &#8212; <span class="refentry-description">This function converts RGB to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="ssim.html" class="refentry">ssim</a> &#8212; <span class="refentry-description">This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality.</span></li>
+
+
+
+
+
+<li><a href="wiener2.html" class="refentry">wiener2</a> &#8212; <span class="refentry-description">This function is used for 2-D adaptive noise-removal filtering.</span></li>
+
+
+
+
+
+<li><a href="xyz2double.html" class="refentry">xyz2double</a> &#8212; <span class="refentry-description">This function converts XYZ color values to double.</span></li>
+
+
+
+
+
+<li><a href="xyz2lab.html" class="refentry">xyz2lab</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.</span></li>
+
+
+
+
+
+<li><a href="xyz2rgb.html" class="refentry">xyz2rgb</a> &#8212; <span class="refentry-description">This function converts CIE 1931 XYZ to RGB.</span></li>
+
+
+
+
+
+<li><a href="xyz2uint16.html" class="refentry">xyz2uint16</a> &#8212; <span class="refentry-description">This function converts XYZ color values to uint16.</span></li></ul>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="index.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/ssim.html b/help/en_US/scilab_en_US_help/ssim.html
new file mode 100644
index 0000000..99a07c2
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/ssim.html
@@ -0,0 +1,84 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>ssim</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="rgb2lab.html">&lt;&lt; rgb2lab</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="wiener2.html">wiener2 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; ssim</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">ssim</h1>
+    <p class="refpurpose">This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">ssim_val</span><span class="default">] = </span><span class="functionid">ssim</span><span class="default">(</span><span class="default">srcImg</span><span class="default">, </span><span class="default">reference</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">srcImg :</span>
+      <dd><p class="para">The input image whose quality is to be measured. Must be the same size and class as reference.</p></dd></dt>
+   <dt><span class="term">reference :</span>
+      <dd><p class="para">Reference image against which quality if measured.</p></dd></dt>
+   <dt><span class="term">ssim_val :</span>
+      <dd><p class="para">Structural Similarity (SSIM) Index.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Computes the Structural Similarity Index (SSIM) value.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m2.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">ssim</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Dhruti Shah</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="rgb2lab.html">&lt;&lt; rgb2lab</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="wiener2.html">wiener2 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/style.css b/help/en_US/scilab_en_US_help/style.css
new file mode 100644
index 0000000..0fe8923
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/style.css
@@ -0,0 +1,350 @@
+body {
+    color:#000000;
+    background-color:#ffffff;
+    font-family:sans-serif;
+    font-size:100%;
+    margin:5px;
+    padding:0;
+    background          : url("/img/body.png");
+    background-repeat   : repeat-x;
+}
+
+.para {
+    padding-left: 10px;
+}
+
+.refname {
+    color: #ff6c0a;
+}
+.refpurpose {
+    font-size: 110%;
+}
+
+.synopsis {
+    border: 1px solid black;
+    width:80%;
+    padding: 0.5em;
+}
+
+.editbar {
+    text-align: right;
+}
+
+.term {
+    color:#800000;
+    font-size:100%;
+}
+
+h3 {
+    color: #000063;
+    font-weight: bold;
+    font-size:130%;
+    margin-bottom: 10px;
+}
+
+.programlisting {
+    font-family: monospace;
+    font-size: 100%;
+    background-color:#EEEEFF;
+    border-color:#CCCCCC;
+    border-style:solid;
+    border-width:2px medium;
+    width:80%;
+    color:#333333;
+    line-height:120%;
+    padding:10px;
+}
+
+.literal {
+    font-family: monospace;
+    font-size: 100%;
+}
+
+.option {
+    font-family: monospace;
+    font-style: italic;
+    font-size: 100%;
+}
+
+.command {
+    font-family: monospace;
+    font-size: 100%;
+    color: #32b9b9;
+}
+
+.function {
+    font-family: monospace;
+    font-size: 100%;
+    color: #32b9b9;
+}
+
+.varname {
+    font-family: monospace;
+    font-weight: bold;
+    font-size: 100%;
+}
+
+.constant {
+    font-family: monospace;
+    font-size: 100%;
+    color: #da70d6;
+}
+
+a {
+    color: blue;
+    text-decoration:none;
+}
+
+a:hover {
+    text-decoration:underline;
+}
+
+.itemizedlist {
+    list-style-type: disk;
+}
+
+.inline-list li {
+    display: inline;
+    list-style-type: disk;
+}
+
+.vert-list {
+    list-style-type: disk;
+}
+
+pre {
+    margin-bottom: 0px;
+    margin-top: 0px;
+}
+
+.leftpart {
+    position:absolute;
+    float:left;
+    width: 186px;
+    padding: 5px;
+    font-size: smaller;
+}
+
+.content {
+    margin-top: 100px;
+    margin-left: 196px
+}
+
+.container {
+    margin: 0 auto;
+    width:1024px;
+}
+
+ul.toc li.list-active {
+    list-style-type:disc;
+    font-weight:bold;
+}
+
+ul.toc li.parent {
+    font-size: 115%;
+    padding: 5px 0px 5px 11px;
+    border-bottom: 1px solid #cccccc;
+    margin-bottom: 5px;
+}
+
+ul.toc li.root {
+    font-size: 135%;
+    padding: 5px 0px 5px 11px;
+    border-bottom: 1px solid #cccccc;
+    margin-bottom: 5px;
+}
+
+ul.toc li {
+    font-size: 85%;
+    margin: 1px 0 1px 1px;
+    padding: 1px 0 1px 11px;
+    background-repeat: no-repeat;
+    background-position: center left;
+    list-style-type: circle;
+}
+
+.next {
+    float:right;
+    text-align: right;
+}
+
+.center {
+    text-align: center;
+}
+
+.screen {
+    font-family: monospace;
+    font-size: 100%;
+    background-color:#FFFFFF;
+    border-color:#CCCCCC;
+    border-style:solid;
+    border-width:2px medium;
+    width:80%;
+    color:#333333;
+    line-height:120%;
+    padding:10px;
+}
+
+/* Top and bottom navigation controls on manual pages --------------------- */
+div.manualnavbar {
+    background-color: #E0E0E0;
+        color: inherit;
+        padding: 4px;
+        margin-bottom: 10px;
+}
+div.manualnavbar .prev {
+        padding-right: 4px;
+}
+div.manualnavbar .next {
+    text-align: right;
+        padding-left: 4px;
+}
+
+div.manualnavbar .top {
+        text-align: center;
+            display: block;
+}
+
+div.manualnavbar hr {
+        color: #cccccc;
+        background-color: #cccccc;
+}
+
+/* Footer navigation area ------------------------------------------------- */
+
+#pagefooter {
+        position: relative;
+        font-size: 75%;
+        color: inherit;
+        background-color: #e5e5e5;
+        width: 100%;
+}
+
+#pagefooterleft {
+        top: 0px;
+        left: 0px;
+        padding: 6px;
+        margin-right: 30%;
+}
+
+#pagefooterright {
+        text-align: right;
+        margin-left: 50%;
+        padding: 6px;
+}
+#footnav {
+        color: inherit;
+        background-color: #9999cc;
+        border-width: 1px 0px;
+        border-color: #333366;
+        border-style: solid;
+        text-align: right;
+        padding-right: 6px;
+}
+
+
+
+
+                #global{
+/*                      width: 90%; */
+                        max-width: 90em;
+/*                      min-width: 850px; */
+                        margin-left: auto;
+                        margin-right: auto;
+                }
+
+                #myHeader{
+                        background-color:#000000;
+                        color:white;
+                        margin-bottom : 10px;
+    position            : relative;
+    text-align: center;
+/*    width               : 1024px;*/
+    height              : 100px;
+    padding-left        : 20px;
+    background          : url("http://atoms.scilab.org/images/homepage/cadre_head.png");
+    background-repeat   : no-repeat;
+    background-position : 0px 0px;
+
+                }
+
+                #myFooter{
+                        background-color:#E5E5E5;
+                        font-color:black;
+/*                      width: 90%;*/
+                        max-width: 90em;
+/*                      min-width: 850px;
+                        margin-left: 5%;
+                        margin-right: 5%;*/
+                        margin-top:10px;
+                        padding:10px;
+                }
+
+                #mainArea{
+                        width: 100%;
+                        overflow: hidden;
+                }
+
+                #myLeftArea{
+                        color:white;
+                        float: left;
+                        width: 180px;
+                        padding:5px;
+                }
+
+                #myMiddleArea{
+                        color:black;
+                        margin-left: 200px;
+                        padding: 10px 20px;
+                }
+
+                #myRightArea{
+                        color:white;
+                        float: right;
+                        width: 200px;
+                        padding: 12px 20px;
+                }
+
+
+div#cadre_head
+{
+    position            : relative;
+    text-align: center;
+/*    width               : 1024px;*/
+    height              : 100px;
+    padding-left        : 20px;
+    background          : url("/img/cadre_head.png");
+    background-repeat   : no-repeat;
+    background-position : 0px 0px;
+}
+
+
+div#slogan{
+    position: absolute;
+    top : 50px;
+    left:251px;
+    color:#0000AA;
+    font: 120%, Georgia,Serif;
+}
+div#cadre_help
+{
+    position: absolute;
+    top:45px;
+    right:0px;
+    font-size:0.8em;
+    color:#0000AA;
+}
+
+table.revhistory
+{ 
+  width:80%;
+  border-color:#CCCCCC;
+  border-style:solid;
+  border-width:2px medium;
+  margin-bottom: 10px;
+}
+
+table.revhistory tr.title td
+{ 
+  background-color: #9999CC;
+}
\ No newline at end of file
diff --git a/help/en_US/scilab_en_US_help/wiener2.html b/help/en_US/scilab_en_US_help/wiener2.html
new file mode 100644
index 0000000..c644169
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/wiener2.html
@@ -0,0 +1,87 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>wiener2</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="ssim.html">&lt;&lt; ssim</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2double.html">xyz2double &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; wiener2</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">wiener2</h1>
+    <p class="refpurpose">This function is used for 2-D adaptive noise-removal filtering.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">outputImg</span><span class="default">] = </span><span class="functionid">wiener2</span><span class="default">(</span><span class="default">inputImage</span><span class="default">,</span><span class="default">filtsize</span><span class="default">,</span><span class="default">sigma</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">inputImage :</span>
+      <dd><p class="para">The input image, grayscale only.</p></dd></dt>
+   <dt><span class="term">filtsize :</span>
+      <dd><p class="para">The filter size.</p></dd></dt>
+   <dt><span class="term">sigma :</span>
+      <dd><p class="para">The additive noise (Gaussian white noise) power is assumed to be noise. if sigma = 0 then the variance is estimated from data</p></dd></dt>
+   <dt><span class="term">outputImg :</span>
+      <dd><p class="para">The output image, is of the same size and class as the input image</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">It lowpass-filters a grayscale image that has been degraded by constant power additive noise.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// a simple example</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <span class="scilabid">imread</span><span class="scilabopenclose">(</span><span class="scilabstring">&#0034;</span><span class="scilabstring">m1.jpeg</span><span class="scilabstring">&#0034;</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">filtsize</span> <span class="scilaboperator">=</span> <span class="scilabnumber">5</span><span class="scilabdefault">;</span>
+<span class="scilabid">sigma</span> <span class="scilaboperator">=</span> <span class="scilabnumber">0</span><span class="scilabdefault">;</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabid">ssim</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabdefault">,</span><span class="scilabid">b</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Riddhish Bhalodia</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="ssim.html">&lt;&lt; ssim</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2double.html">xyz2double &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/xml_code.css b/help/en_US/scilab_en_US_help/xml_code.css
new file mode 100644
index 0000000..9e4c27f
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xml_code.css
@@ -0,0 +1,94 @@
+.xmlcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmldefault {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlentity {
+ font-style: normal;
+ color: #ffaa00
+}
+
+.xmlopeninstr {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlcloseinstr {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlinstrname {
+ font-style: normal;
+ color: #9965a6
+}
+
+.xmllowtag {
+ font-style: normal;
+ color: #000000
+}
+
+.xmltagname {
+ font-style: normal;
+ color: #0303ff
+}
+
+.xmllowclose {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlopencomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlcommentend {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlcomment {
+ font-style: italic;
+ color: #01a801
+}
+
+.xmlopencdata {
+ font-style: normal;
+ color: #c45555
+}
+
+.xmlcdataend {
+ font-style: normal;
+ color: #c45555
+}
+
+.xmlcdata {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlattributename {
+ font-style: normal;
+ color: #9965a6
+}
+
+.xmlequal {
+ font-style: normal;
+ color: #000000
+}
+
+.xmlattributevalue {
+ font-style: normal;
+ color: #973964
+}
+
+.xmlautoclose {
+ font-style: normal;
+ color: #000000
+}
diff --git a/help/en_US/scilab_en_US_help/xyz2double.html b/help/en_US/scilab_en_US_help/xyz2double.html
new file mode 100644
index 0000000..e0b28b6
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xyz2double.html
@@ -0,0 +1,126 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>xyz2double</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="wiener2.html">&lt;&lt; wiener2</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2lab.html">xyz2lab &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; xyz2double</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">xyz2double</h1>
+    <p class="refpurpose">This function converts XYZ color values to double.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">xyz2double</span><span class="default">(</span><span class="default">pstData</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pstData :</span>
+      <dd><p class="para">list of uint16 or double array that must be real and nonsparse.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">list of converted values.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts an M-by-3 or M-by-N-by-3 array of pstData color values to double. output has the same size as XYZ.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// check for boundary level values</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32768</span> <span class="scilabnumber">65535</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">c</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// check for boundary level values</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32768</span> <span class="scilabnumber">65536</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// check for lower values</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">1</span> <span class="scilabnumber">3</span> <span class="scilabnumber">5</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput should be M by 3 or M by N by 3</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32768</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput should be M by 3 or M by N by 3</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32</span> <span class="scilabnumber">67</span> <span class="scilabnumber">56</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// float value input</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.0031</span> <span class="scilabnumber">1</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput should be M by 3 or M by N by 3</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32</span> <span class="scilabnumber">678</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput should be M by 3 or M by N by 3</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32768</span> <span class="scilabnumber">3244</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// float value input</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">0.0031</span> <span class="scilabnumber">1.56</span> <span class="scilabnumber">2.454</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput is double, no conversion takes place.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://double">double</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">9</span> <span class="scilabnumber">1</span> <span class="scilabnumber">2</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="wiener2.html">&lt;&lt; wiener2</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2lab.html">xyz2lab &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/xyz2lab.html b/help/en_US/scilab_en_US_help/xyz2lab.html
new file mode 100644
index 0000000..334dde1
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xyz2lab.html
@@ -0,0 +1,127 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>xyz2lab</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2double.html">&lt;&lt; xyz2double</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2rgb.html">xyz2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; xyz2lab</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">xyz2lab</h1>
+    <p class="refpurpose">This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">xyz2lab</span><span class="default">(</span><span class="default">vartype</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">varType :</span>
+      <dd><p class="para">list of color values to convert.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">list of converted color values.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Convert CIE 1931 XYZ to CIE 1976 L*a*b*.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.10</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.29</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.23</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.11</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.29</span><span class="scilabdefault">,</span> <span class="scilabnumber">34</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.10</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.56</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.18</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// error - inpput ahould be M by 3 or M by N by 3</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://uint16">uint16</a><span class="scilabopenclose">(</span><span class="scilabopenclose">[</span><span class="scilabnumber">100</span> <span class="scilabnumber">32</span> <span class="scilabnumber">67</span> <span class="scilabnumber">56</span><span class="scilabopenclose">]</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">b</span> <span class="scilaboperator">=</span> <span class="scilabid">xyz2double</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">89.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">89.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.10</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">78</span><span class="scilabdefault">,</span> <span class="scilabnumber">89</span><span class="scilabdefault">,</span> <span class="scilabnumber">11</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">90.67</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.76</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.67</span><span class="scilabdefault">,</span> <span class="scilabnumber">9.10</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert an XYZ color value to L*a*b*</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">78.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">34.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.10</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2lab</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Ashish Manatosh Barik, NIT Rourkela</li>
+   <li class="member">Priyanka Hiranandani, NIT Surat</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2double.html">&lt;&lt; xyz2double</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2rgb.html">xyz2rgb &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/xyz2rgb.html b/help/en_US/scilab_en_US_help/xyz2rgb.html
new file mode 100644
index 0000000..a36d27a
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xyz2rgb.html
@@ -0,0 +1,127 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>xyz2rgb</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2lab.html">&lt;&lt; xyz2lab</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2uint16.html">xyz2uint16 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; xyz2rgb</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">xyz2rgb</h1>
+    <p class="refpurpose">This function converts CIE 1931 XYZ to RGB.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">xyz2rgb</span><span class="default">(</span><span class="default">data</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">data :</span>
+      <dd><p class="para">list of color values to convert.</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">list of converted color values.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts CIE 1931 XYZ to RGB.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">3.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">5.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">12.10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">2</span><span class="scilabdefault">,</span> <span class="scilabnumber">5</span><span class="scilabdefault">,</span> <span class="scilabnumber">4</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.65</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.43</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.19</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">89.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">23</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.6710</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.2534</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.4340</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.143</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">67.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">34.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">44.10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">34.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">56.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">223.189</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.1</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Convert a color value in the XYZ color space to the sRGB color space.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">78.25</span><span class="scilabdefault">,</span> <span class="scilabnumber">34.40</span><span class="scilabdefault">,</span> <span class="scilabnumber">23.10</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
+<span class="scilabid">xyz2rgb</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Tess Zacharias</li>
+   <li class="member">Ashish Manatosh Barik</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2lab.html">&lt;&lt; xyz2lab</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	<span class="next"><a href="xyz2uint16.html">xyz2uint16 &gt;&gt;</a></span>
+
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/xyz2uint16.html b/help/en_US/scilab_en_US_help/xyz2uint16.html
new file mode 100644
index 0000000..1cc36a4
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/xyz2uint16.html
@@ -0,0 +1,125 @@
+<html><head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>xyz2uint16</title>
+    <style type="text/css" media="all">
+      @import url("scilab_code.css");
+      @import url("xml_code.css");
+      @import url("c_code.css");
+      @import url("style.css");
+    </style>
+  </head>
+  <body>
+    <div class="manualnavbar">
+    <table width="100%"><tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2rgb.html">&lt;&lt; xyz2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+
+
+
+    <span class="path"><a href="index.html">FOSSEE Image Processing Toolbox</a> &gt;&gt; <a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a> &gt; xyz2uint16</span>
+
+    <br /><br />
+    <div class="refnamediv"><h1 class="refname">xyz2uint16</h1>
+    <p class="refpurpose">This function converts XYZ color values to uint16.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+   <div class="synopsis"><pre><span class="default">[</span><span class="default">output</span><span class="default">] = </span><span class="functionid">xyz2uint16</span><span class="default">(</span><span class="default">pstData</span><span class="default">)</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+   <dl><dt><span class="term">pstData :</span>
+      <dd><p class="para">list of uint16 or double array that must be real and nonsparse</p></dd></dt>
+   <dt><span class="term">output :</span>
+      <dd><p class="para">list of puint8.</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+   <p class="para">Converts an M-by-3 or M-by-N-by-3 array of XYZ color values to uint16. output has the same size as pstData.</p>
+   <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.14</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.35</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.20</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">45.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">22.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">45.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">200</span><span class="scilabdefault">,</span> <span class="scilabnumber">334</span><span class="scilabdefault">,</span> <span class="scilabnumber">2112</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">56.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">8378.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">878.1</span><span class="scilabdefault">,</span> <span class="scilabnumber">32.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.12323</span><span class="scilabdefault">,</span> <span class="scilabnumber">0.53434</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.878</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">44</span><span class="scilabdefault">,</span> <span class="scilabnumber">55</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.0</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+   <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Create a double vector specifying a color in XYZ colorspace.</span>
+<span class="scilabid">a</span> <span class="scilaboperator">=</span> <a class="scilabcommand" href="scilab://list">list</a><span class="scilabopenclose">(</span><span class="scilabnumber">0.134</span><span class="scilabdefault">,</span> <span class="scilabnumber">55.5</span><span class="scilabdefault">,</span> <span class="scilabnumber">1.121</span><span class="scilabopenclose">)</span>
+<span class="scilabid">xyz2uint16</span><span class="scilabopenclose">(</span><span class="scilabid">a</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+   <ul class="itemizedlist"><li class="member">Tess Zacharias</li>
+   <li class="member">Ashish Manatosh Barik</li></ul></div>
+    <br />
+
+    <div class="manualnavbar">
+    <table width="100%">
+    <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+      <td width="30%">
+    	<span class="previous"><a href="xyz2rgb.html">&lt;&lt; xyz2rgb</a></span>
+
+      </td>
+      <td width="40%" class="center">
+      	<span class="top"><a href="section_a2c9cca36f8f25d9e603fc42b80e6232.html">FOSSEE Image Processing Toolbox</a></span>
+
+      </td>
+      <td width="30%" class="next">
+      	
+      </td>
+    </tr></table>
+      <hr />
+    </div>
+  </body>
+</html>
diff --git a/help/en_US/ssim.xml b/help/en_US/ssim.xml
new file mode 100644
index 0000000..a2ebb3c
--- /dev/null
+++ b/help/en_US/ssim.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from ssim.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="ssim" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>ssim</refname>
+    <refpurpose>This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [ssim_val] = ssim(srcImg, reference)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>srcImg :</term>
+      <listitem><para> The input image whose quality is to be measured. Must be the same size and class as reference.</para></listitem></varlistentry>
+   <varlistentry><term>reference :</term>
+      <listitem><para> Reference image against which quality if measured.</para></listitem></varlistentry>
+   <varlistentry><term>ssim_val :</term>
+      <listitem><para> Structural Similarity (SSIM) Index.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Computes the Structural Similarity Index (SSIM) value.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+a = imread("m1.jpeg");
+b = imread("m2.jpeg");
+c = ssim(a,b);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Dhruti Shah</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/wiener2.xml b/help/en_US/wiener2.xml
new file mode 100644
index 0000000..e1d994c
--- /dev/null
+++ b/help/en_US/wiener2.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from wiener2.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="wiener2" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>wiener2</refname>
+    <refpurpose>This function is used for 2-D adaptive noise-removal filtering.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [outputImg] = wiener2(inputImage,filtsize,sigma)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>inputImage :</term>
+      <listitem><para> The input image, grayscale only.</para></listitem></varlistentry>
+   <varlistentry><term>filtsize :</term>
+      <listitem><para> The filter size.</para></listitem></varlistentry>
+   <varlistentry><term>sigma :</term>
+      <listitem><para> The additive noise (Gaussian white noise) power is assumed to be noise. if sigma = 0 then the variance is estimated from data</para></listitem></varlistentry>
+   <varlistentry><term>outputImg :</term>
+      <listitem><para> The output image, is of the same size and class as the input image</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+It lowpass-filters a grayscale image that has been degraded by constant power additive noise.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// a simple example
+a = imread("m1.jpeg");
+filtsize = 5;
+sigma = 0;
+c = ssim(a,b);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Riddhish Bhalodia</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/xyz2double.xml b/help/en_US/xyz2double.xml
new file mode 100644
index 0000000..8d4b17b
--- /dev/null
+++ b/help/en_US/xyz2double.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from xyz2double.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="xyz2double" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>xyz2double</refname>
+    <refpurpose>This function converts XYZ color values to double.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = xyz2double(pstData)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> list of uint16 or double array that must be real and nonsparse.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> list of converted values.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts an M-by-3 or M-by-N-by-3 array of pstData color values to double. output has the same size as XYZ.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// check for boundary level values
+a = uint16([100 32768 65535]);
+b = xyz2double(c);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// check for boundary level values
+a = uint16([100 32768 65536]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// check for lower values
+a = uint16([1 3 5]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput should be M by 3 or M by N by 3
+a = uint16([100 32768]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput should be M by 3 or M by N by 3
+a = uint16([100 32 67 56]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// float value input
+a = uint16([0.0031 1 2]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput should be M by 3 or M by N by 3
+a = uint16([100 32 678]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput should be M by 3 or M by N by 3
+a = uint16([100 32768 3244]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// float value input
+a = uint16([0.0031 1.56 2.454]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput is double, no conversion takes place.
+a = double([9 1 2]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/xyz2lab.xml b/help/en_US/xyz2lab.xml
new file mode 100644
index 0000000..4c28c67
--- /dev/null
+++ b/help/en_US/xyz2lab.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from xyz2lab.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="xyz2lab" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>xyz2lab</refname>
+    <refpurpose>This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = xyz2lab(vartype)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>varType :</term>
+      <listitem><para> list of color values to convert.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> list of converted color values.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Convert CIE 1931 XYZ to CIE 1976 L*a*b*.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.25, 0.40, 0.10)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.29, 0.23, 0.11)
+xyz2lab(a))
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.29, 34, 0.10)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.25, 0.56, 0.18)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// error - inpput ahould be M by 3 or M by N by 3
+a = uint16([100 32 67 56]);
+b = xyz2double(a);
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(89.25, 89.40, 0.10)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(78, 89, 11)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.25, 0.40, 90.67)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(0.76, 0.67, 9.10)
+xyz2lab(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert an XYZ color value to L*a*b*
+a = list(78.25, 34.40, 0.10)
+xyz2lab(a))
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Ashish Manatosh Barik, NIT Rourkela</member>
+   <member>Priyanka Hiranandani, NIT Surat</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/xyz2rgb.xml b/help/en_US/xyz2rgb.xml
new file mode 100644
index 0000000..3f01b25
--- /dev/null
+++ b/help/en_US/xyz2rgb.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from xyz2rgb.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="xyz2rgb" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>xyz2rgb</refname>
+    <refpurpose>This function converts CIE 1931 XYZ to RGB.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = xyz2rgb(data)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>data :</term>
+      <listitem><para> list of color values to convert.</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> list of converted color values.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts CIE 1931 XYZ to RGB.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(0.25, 0.40, 0.10);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(3.25, 5.40, 12.10);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(2, 5, 4);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(0.65, 0.43, 0.19);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(89.25, 23, 0.6710);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(0.2534, 0.4340, 0.143);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(67.25, 34.40, 44.10);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(34.25, 56.40, 223.189);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(0.1, 0.1, 0.1);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Convert a color value in the XYZ color space to the sRGB color space.
+a = list(78.25, 34.40, 23.10);
+xyz2rgb(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Tess Zacharias</member>
+   <member>Ashish Manatosh Barik</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/xyz2uint16.xml b/help/en_US/xyz2uint16.xml
new file mode 100644
index 0000000..e9a446b
--- /dev/null
+++ b/help/en_US/xyz2uint16.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from xyz2uint16.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="xyz2uint16" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns3="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:scilab="http://www.scilab.org"
+          xmlns:db="http://docbook.org/ns/docbook">
+
+  <refnamediv>
+    <refname>xyz2uint16</refname>
+    <refpurpose>This function converts XYZ color values to uint16.</refpurpose>
+  </refnamediv>
+
+
+<refsynopsisdiv>
+   <title>Calling Sequence</title>
+   <synopsis>
+   [output] = xyz2uint16(pstData)
+   
+   </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+   <title>Parameters</title>
+   <variablelist>
+   <varlistentry><term>pstData :</term>
+      <listitem><para> list of uint16 or double array that must be real and nonsparse</para></listitem></varlistentry>
+   <varlistentry><term>output :</term>
+      <listitem><para> list of puint8.</para></listitem></varlistentry>
+   </variablelist>
+</refsection>
+
+<refsection>
+   <title>Description</title>
+   <para>
+Converts an M-by-3 or M-by-N-by-3 array of XYZ color values to uint16. output has the same size as pstData.
+   </para>
+   <para>
+</para>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(0.1, 0.5, 1.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(0.14, 0.35, 1.20)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(45.1, 22.5, 45.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(200, 334, 2112)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(56.1, 0.5, 1.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(0.1, 8378.5, 1.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(878.1, 32.5, 1.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(0.12323, 0.53434, 1.878)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(44, 55, 1.0)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Examples</title>
+   <programlisting role="example"><![CDATA[
+// Create a double vector specifying a color in XYZ colorspace.
+a = list(0.134, 55.5, 1.121)
+xyz2uint16(a)
+
+   ]]></programlisting>
+</refsection>
+
+<refsection>
+   <title>Authors</title>
+   <simplelist type="vert">
+   <member>Tess Zacharias</member>
+   <member>Ashish Manatosh Barik</member>
+   </simplelist>
+</refsection>
+</refentry>
diff --git a/images/b1.jpeg b/images/b1.jpeg
new file mode 100644
index 0000000..50c363d
Binary files /dev/null and b/images/b1.jpeg differ
diff --git a/images/b2.jpeg b/images/b2.jpeg
new file mode 100644
index 0000000..9ce3594
Binary files /dev/null and b/images/b2.jpeg differ
diff --git a/images/bnwhite.jpg b/images/bnwhite.jpg
new file mode 100644
index 0000000..38faf4c
Binary files /dev/null and b/images/bnwhite.jpg differ
diff --git a/images/bryan.jpeg b/images/bryan.jpeg
new file mode 100644
index 0000000..d314b8f
Binary files /dev/null and b/images/bryan.jpeg differ
diff --git a/images/bw.jpg b/images/bw.jpg
new file mode 100644
index 0000000..93b6468
Binary files /dev/null and b/images/bw.jpg differ
diff --git a/images/cat.jpg b/images/cat.jpg
new file mode 100644
index 0000000..e05ffad
Binary files /dev/null and b/images/cat.jpg differ
diff --git a/images/graf1.jpeg b/images/graf1.jpeg
new file mode 100644
index 0000000..500b24d
Binary files /dev/null and b/images/graf1.jpeg differ
diff --git a/images/graf2.jpeg b/images/graf2.jpeg
new file mode 100644
index 0000000..ed57f8e
Binary files /dev/null and b/images/graf2.jpeg differ
diff --git a/images/i1.jpeg b/images/i1.jpeg
new file mode 100644
index 0000000..4cb1818
Binary files /dev/null and b/images/i1.jpeg differ
diff --git a/images/i2.jpeg b/images/i2.jpeg
new file mode 100644
index 0000000..2765e7c
Binary files /dev/null and b/images/i2.jpeg differ
diff --git a/images/i3.jpeg b/images/i3.jpeg
new file mode 100644
index 0000000..85ec008
Binary files /dev/null and b/images/i3.jpeg differ
diff --git a/images/i4.jpeg b/images/i4.jpeg
new file mode 100644
index 0000000..02f5bc5
Binary files /dev/null and b/images/i4.jpeg differ
diff --git a/images/l1.jpeg b/images/l1.jpeg
new file mode 100644
index 0000000..cfae4cf
Binary files /dev/null and b/images/l1.jpeg differ
diff --git a/images/l2.jpeg b/images/l2.jpeg
new file mode 100644
index 0000000..f53ac88
Binary files /dev/null and b/images/l2.jpeg differ
diff --git a/images/lena.jpeg b/images/lena.jpeg
new file mode 100644
index 0000000..21d5012
Binary files /dev/null and b/images/lena.jpeg differ
diff --git a/images/lena_noiseImg.jpg b/images/lena_noiseImg.jpg
new file mode 100644
index 0000000..200a3a7
Binary files /dev/null and b/images/lena_noiseImg.jpg differ
diff --git a/images/m1.jpeg b/images/m1.jpeg
new file mode 100644
index 0000000..cc3040f
Binary files /dev/null and b/images/m1.jpeg differ
diff --git a/images/m2.jpeg b/images/m2.jpeg
new file mode 100644
index 0000000..e69201f
Binary files /dev/null and b/images/m2.jpeg differ
diff --git a/images/m3.jpeg b/images/m3.jpeg
new file mode 100644
index 0000000..1f5d7cc
Binary files /dev/null and b/images/m3.jpeg differ
diff --git a/images/m4.jpeg b/images/m4.jpeg
new file mode 100644
index 0000000..7da25af
Binary files /dev/null and b/images/m4.jpeg differ
diff --git a/images/m5.jpeg b/images/m5.jpeg
new file mode 100644
index 0000000..ff3b2db
Binary files /dev/null and b/images/m5.jpeg differ
diff --git a/images/m6.jpeg b/images/m6.jpeg
new file mode 100644
index 0000000..5b062b4
Binary files /dev/null and b/images/m6.jpeg differ
diff --git a/images/man.tiff b/images/man.tiff
new file mode 100644
index 0000000..e1a2c4e
Binary files /dev/null and b/images/man.tiff differ
diff --git a/images/noise.jpg b/images/noise.jpg
new file mode 100644
index 0000000..24263da
Binary files /dev/null and b/images/noise.jpg differ
diff --git a/images/p1.jpeg b/images/p1.jpeg
new file mode 100644
index 0000000..264180d
Binary files /dev/null and b/images/p1.jpeg differ
diff --git a/images/p1.jpg b/images/p1.jpg
new file mode 100644
index 0000000..9d52c39
Binary files /dev/null and b/images/p1.jpg differ
diff --git a/images/p2.jpeg b/images/p2.jpeg
new file mode 100644
index 0000000..7f1ab65
Binary files /dev/null and b/images/p2.jpeg differ
diff --git a/images/p2.jpg b/images/p2.jpg
new file mode 100644
index 0000000..25678aa
Binary files /dev/null and b/images/p2.jpg differ
diff --git a/images/photo.jpg b/images/photo.jpg
new file mode 100644
index 0000000..fdb63a1
Binary files /dev/null and b/images/photo.jpg differ
diff --git a/images/photo1.jpg b/images/photo1.jpg
new file mode 100644
index 0000000..5b95da4
Binary files /dev/null and b/images/photo1.jpg differ
diff --git a/images/portrait2.jpg b/images/portrait2.jpg
new file mode 100644
index 0000000..ea1fb07
Binary files /dev/null and b/images/portrait2.jpg differ
diff --git a/images/t1.jpeg b/images/t1.jpeg
new file mode 100644
index 0000000..f166632
Binary files /dev/null and b/images/t1.jpeg differ
diff --git a/images/t2.jpeg b/images/t2.jpeg
new file mode 100644
index 0000000..7327ff4
Binary files /dev/null and b/images/t2.jpeg differ
diff --git a/images/t3.jpeg b/images/t3.jpeg
new file mode 100644
index 0000000..111df83
Binary files /dev/null and b/images/t3.jpeg differ
diff --git a/images/t4.jpeg b/images/t4.jpeg
new file mode 100644
index 0000000..583dcb4
Binary files /dev/null and b/images/t4.jpeg differ
diff --git a/images/taj.jpg b/images/taj.jpg
new file mode 100644
index 0000000..6624ba9
Binary files /dev/null and b/images/taj.jpg differ
diff --git a/images/wall.tiff b/images/wall.tiff
new file mode 100644
index 0000000..22b61eb
Binary files /dev/null and b/images/wall.tiff differ
diff --git a/images/wall1.jpeg b/images/wall1.jpeg
new file mode 100644
index 0000000..bcfa62c
Binary files /dev/null and b/images/wall1.jpeg differ
diff --git a/images/wall2.jpeg b/images/wall2.jpeg
new file mode 100644
index 0000000..1f76811
Binary files /dev/null and b/images/wall2.jpeg differ
diff --git a/images/wall3.jpg b/images/wall3.jpg
new file mode 100644
index 0000000..d5b37af
Binary files /dev/null and b/images/wall3.jpg differ
diff --git a/macros/align.sci b/macros/align.sci
new file mode 100644
index 0000000..3f18999
--- /dev/null
+++ b/macros/align.sci
@@ -0,0 +1,282 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outImg1, outImg2, outImg3, varargout] = align(maxBits, excludeRange, cut, num, srcImg1, srcImg2, srcImg3, varargin)
+// This function aligns the set of input images for HDR image creation.
+//
+// Calling Sequence 
+// [out1, out2, out3] = align(maxBits, excludeRange, cut, num, srcImg_1, srcImg_2, srcImg_3)
+// [out1, out2, out3, out4] = align(maxBits, excludeRange, cut, num, srcImg1, srcImg_2, srcImg_3, srcImg_4)
+// [out1, out2, out3, out4, out5] = align(maxBits, excludeRange, cut, num, srcImg_1, srcImg_2, srcImg_3, srcImg_4, srcImg_5)
+//
+// Parameters 
+// maxBits : Logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). Value should not exceed 6. It is of Double type.
+// excludeRange : Range for exclusion bitmap that is constructed to suppress noise around the median value. It is of Double type.
+// cut : If true, cuts images. Otherwise fills the new regions with zeros. It is of Boolean type.
+// num : Number of images given as input source images(3 - 5). It is of double type.
+// srcImg_i : Hypermat of image_i.
+//
+// Description
+// This function uses AlignMTB algorithm which converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.
+//
+// Examples
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// num = 3;
+// maxBits= 6;
+// excludeRange = 4;
+// cut = %t;
+// [x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+//
+// Examples
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// d = imread("/images/t4.jpeg");
+// num = 4;
+// maxBits= 6;
+// excludeRange = 4;
+// cut = %f;
+// [x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+//
+// Examples
+// // error cause maxBits value is greater than 6
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// d = imread("/images/m4.jpeg");
+// num = 4;
+// maxBits= 7;
+// excludeRange = 4;
+// cut = %t;
+// [x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+//
+// Examples
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// d = imread("/images/m4.jpeg");
+// e = imread("/images/m5.jpeg");
+// num = 5;
+// maxBits= 6;
+// excludeRange = 4;
+// cut = %t;
+// [x, y, z, p, q] = align(maxBits, excludeRange, cut, num, a, b, c, d, e);
+//
+// Examples
+// // cut is set false here (if true cuts images, otherwise fills the new regions with zeros. )
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// num = 3;
+// maxBits= 1;
+// excludeRange = 4;
+// cut = %t;
+// [x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+// 
+// Examples
+// // aligns the images for the making of 1 HDR image
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// num = 3;
+// maxBits= 5;
+// excludeRange = 4;
+// cut = %t;
+//[x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+//
+// Examples
+// // aligns the images for the making of 1 HDR image
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// num = 3;
+// maxBits= 5;
+// excludeRange = 4;
+// cut = %t;
+// [x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+//
+// Examples
+// // aligns the images for the making of 1 HDR image
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// num = 3;
+// maxBits= 5;
+// excludeRange = 3;
+// cut = %f;
+// [x, y, z] = align(maxBits, excludeRange, cut, num, a, b, c);
+//
+// Examples
+// // maxBits = 6, leads to noticeable pixel shift
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// d = imread("/images/t4.jpeg");
+// num = 4;
+// maxBits= 5;
+// excludeRange = 5;
+// cut = %t;
+// [x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+//
+// Examples
+// // maxBits = 6, leads to noticeable pixel shift
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// num = 3;
+// maxBits= 5;
+// excludeRange = 6;
+// cut = %f;
+// [x, y, z, p] = align(maxBits, excludeRange, cut, num, a, b, c, d);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela
+//
+	srcMat1 = mattolist(srcImg1)
+	srcMat2 = mattolist(srcImg2)
+	srcMat3 = mattolist(srcImg3)
+
+	[lhs, rhs] = argn(0)
+
+	select rhs
+		case 7 then
+			[out1, out2, out3] = raw_align(maxBits, excludeRange, cut, num, srcMat1, srcMat2, srcMat3)
+
+			channels1 = size(out1)
+			channels2 = size(out2)
+			channels3 = size(out3)
+
+			for i = 1:channels1
+				outImg1(:, :, i) = (out1(i))
+			end
+
+			for j = 1:channels2
+				outImg2(:, :, j) = (out2(j))
+			end
+
+			for k = 1:channels3
+				outImg3(:, :, k) = (out3(k))
+			end
+			
+		case 8 then
+			srcMat4 = mattolist(varargin(1))
+
+			[out1, out2, out3, out4] = raw_align(maxBits, excludeRange, cut, num, srcMat1, srcMat2, srcMat3, srcMat4)
+
+			channels1 = size(out1)
+			channels2 = size(out2)
+			channels3 = size(out3)
+			channels4 = size(out4)
+
+			for i = 1:channels1
+				outImg1(:, :, i) = (out1(i))
+			end
+
+			for j = 1:channels2
+				outImg2(:, :, j) = (out2(j))
+			end
+
+			for k = 1:channels3
+				outImg3(:, :, k) = (out3(k))
+			end
+
+			for l = 1:channels4
+				outImg4(:, :, l) = (out4(l))
+			end
+
+			varargout(1) = outImg4
+	
+
+
+		case 9 then
+			srcMat4 = mattolist(varargin(1))
+			srcMat5 = mattolist(varargin(2))
+
+			[out1, out2, out3, out4, out5] = raw_align(maxBits, excludeRange, cut, num, srcMat1, srcMat2, srcMat3, srcMat4, srcMat5)
+			
+			channels1 = size(out1)
+			channels2 = size(out2)
+			channels3 = size(out3)
+			channels4 = size(out4)
+			channels5 = size(out5)
+
+			for i = 1:channels1
+				outImg1(:, :, i) = (out1(i))
+			end
+
+			for j = 1:channels2
+				outImg2(:, :, j) = (out2(j))
+			end
+
+			for k = 1:channels3
+				outImg3(:, :, k) = (out3(k))
+			end
+
+			for l = 1:channels4
+				outImg4(:, :, l) = (out4(l))
+			end		
+			
+			varargout(1) = outImg4
+
+			for m = 1:channels5
+				outImg5(:, :, m) = (out5(m))
+			end
+
+			varargout(2) = outImg5
+
+		case 10 then
+			srcMat4 = mattolist(varargin(1))
+			srcMat5 = mattolist(varargin(2))
+			srcMat6 = mattolist(varargin(3))
+
+			[out1, out2, out3, out4, out5, out6] = raw_align(maxBits, excludeRange, cut, num, srcMat1, srcMat2, srcMat3, srcMat4, srcMat5, srcMat6)
+			
+			channels1 = size(out1)
+			channels2 = size(out2)
+			channels3 = size(out3)
+			channels4 = size(out4)
+			channels5 = size(out5)
+			channels6 - size(out6)
+
+			for i = 1:channels1
+				outImg1(:, :, i) = (out1(i))
+			end
+
+			for j = 1:channels2
+				outImg2(:, :, j) = (out2(j))
+			end
+
+			for k = 1:channels3
+				outImg3(:, :, k) = (out3(k))
+			end
+
+			for l = 1:channels4
+				outImg4(:, :, l) = (out4(l))
+			end		
+			
+			varargout(1) = outImg4
+
+			for m = 1:channels5
+				outImg5(:, :, m) = (out5(m))
+			end
+
+			varargout(2) = outImg5
+
+			for n = 1:channels6
+				outImg6(:, :, n) = (out6(n))
+			end
+
+			varargout(3) = outImg6
+	end
+
+endfunction
diff --git a/macros/applyTransformer.sci b/macros/applyTransformer.sci
new file mode 100644
index 0000000..42fc26d
--- /dev/null
+++ b/macros/applyTransformer.sci
@@ -0,0 +1,92 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [tImg] = applyTransformer(srcImg1, srcImg2, typeOfMethod, hessianThreshold, rpTPS, sfAffine)	
+// This function is used to apply affine or TPS transformation to image.
+//
+// Calling Sequence
+// [ tImg] =  applyTransformer(srcImg1, srcImg2, typeOfMethod, hessianThreshold, rpTPS, sfAffine)
+// 
+// Parameters
+// srcImg1 : It is the first input image. 
+// srcImg2 : It is the  second input image, which is also the target image. 
+// typeOfMethod : It is used as a flag to pick a certain type of transformation. Use value '1' for 'Affine Transformation' and '2' for 'Thin Plate Spline Shape Transformation'. It is of double type.
+// hessianThreshold : It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.
+// rpTPS : It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.
+// sfAffine : It is used to set the full-affine condition for Affine Transformation. If true, the function finds as optimal transformation with no additional restrictions(6 degrees of freedom). Otherwise, the class of transformations to choose from is limited to combination of translation, rotation & uniform scaling(5 degrees of freedom).
+// tImg : The transformed image of the target(srcImg2). It is of hypermat type.
+//
+// Description
+// This function is used to perform shape transformation, the user gets to choose and apply the type of transformation she/he wishes to perform.
+//
+// Examples
+// affine transformation
+// a = imread("/images/bryan.jpeg");
+// b = imread("/images/p1.jpg");
+// typeOfMethod=1
+// hessianThreshold=5000;
+// rpTPS=25000;
+// sfAffine=%f;
+// img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS, 
+//
+// Examples
+// a= imread("/images/lena.jpeg");
+// b= imread("/images/bryan.jpeg");
+// typeOfMethod=1
+// hessianThreshold=5000;
+// rpTPS=2000;
+// sfAffine=%t;
+// img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+//
+// Examples
+// TPS shape transformation
+// a = imread("/images/photo.jpg");
+// b= imread("/images/photo1.jpg");
+// typeOfMethod=2
+// hessianThreshold=5000;
+// rpTPS=800;
+// sfAffine=%t;
+// img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+// 
+// Examples
+// a = imread("/images/b1.jpeg");
+// b= imread("/images/b2.jpeg");
+// typeOfMethod=1
+// hessianThreshold=5000;
+// rpTPS=800;
+// sfAffine=%f;
+// img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+//
+// Examples
+// a = imread("/images/photo.jpg");
+// b= imread("/images/photo1.jpg");
+// typeOfMethod=2
+// hessianThreshold=5000;
+// rpTPS=800;
+// sfAffine=%t;
+// img=applyTransformer(a,b,typeOfMethod,hessianThreshold, rpTPS,sfAffine);
+//
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela
+
+	srcMat1 = mattolist(srcImg1);
+	srcMat2 = mattolist(srcImg2);
+
+	[out] = raw_applyTransformer(srcMat1, srcMat2, typeOfMethod, hessianThreshold, rpTPS, sfAffine)
+
+	channels = size(out)
+
+	for i = 1:channels
+		tImg(:, :, i) = (out(i))
+	end
+
+endfunction
diff --git a/macros/bwLookUp.sci b/macros/bwLookUp.sci
new file mode 100644
index 0000000..d4c7e52
--- /dev/null
+++ b/macros/bwLookUp.sci
@@ -0,0 +1,44 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Samiran Roy
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out] = bwLookUp(image,lut)
+// This function performs 2*2 and 3*3 nonlinear filtering using a lookup table.
+//
+// Calling Sequence
+// [out] = bwLookUp(image,lut)
+// 
+// Parameters
+// image : The input is a grayscale image. If the image is not binary, it is converted to one.
+// lut : The lut is a 1*16 double vector [2*2 filtering], or a [1*512] double vector [3*3 filtering].
+// out : The output image is the same size as image, same data type as lut.
+//
+// Description
+// The function performs a 2-by-2 or 3-by-3 nonlinear neighborhood filtering operation on a grayscale image and returns the results in the output image. The neighborhood processing determines an integer index value used to access values in a lookup table 'lut'. The fetched lut value becomes the pixel value in the output image at the targeted position.
+//
+// Examples
+// // a simple example
+// a = imread("/images/lena.jpeg", 0);
+// lut = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];
+// b = bwLookUp(a,lut);
+//
+// Authors
+// Samiran Roy          
+	image1 = mattolist(image);
+        
+	a = raw_bwLookUp(image1,lut);
+         
+	dimension = size(a)
+         
+	for i = 1:dimension
+        	out(:,:,i)=a(i);
+        end
+
+endfunction;
diff --git a/macros/contourArea.sci b/macros/contourArea.sci
new file mode 100644
index 0000000..f378ba1
--- /dev/null
+++ b/macros/contourArea.sci
@@ -0,0 +1,38 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Priyanka Hiranandani, Ashish Manatosh Barik     
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out] = contourArea(inputArrayContour, booloriented)
+// This function calculates the contour area. 
+//
+// Calling Sequence
+// [out] = contourArea(inputArrayContour, booloriented)
+// 
+// Parameters
+// inputArrayContour : The input vector of 2D points.
+// booloriented : The oriented area flag. If it is true, the function returns a signed area value, depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can determine the orientation of a contour by taking the sign of an area. 
+// out : The output is the calculated area.
+//
+// Description
+// It computes the contour area. Also, the function will most certainly give a wrong results for contours with self-intersections.
+//
+// Examples
+// // a simple example
+// inputArrayContour = [0 0; 10 0; 10 10; 5 4S];
+// booloriented = %t;
+// b = contourArea(inputArrayContour, booloriented);
+//
+// Authors
+// Priyanka Hiranandani, NIT Surat
+// Ashish Manatosh Barik, NIT Rourkela  
+         out = raw_contourArea(inputArrayContour, booloriented);
+
+endfunction
+   
diff --git a/macros/copyMakeBorder.sci b/macros/copyMakeBorder.sci
new file mode 100644
index 0000000..89d8ee1
--- /dev/null
+++ b/macros/copyMakeBorder.sci
@@ -0,0 +1,53 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik, Shubheksha Jalan
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function new_image = copyMakeBorder(image, top, bottom, left, right, borderType, value)
+// This function forms a border around the input image. 
+//
+// Calling Sequence
+// [new_image] = copyMakeBorder(image, top, bottom, left, right, borderType, value)
+// 
+// Parameters
+// image : The source image. 
+// top : No. of pixels in this direction from the source image rectangle to extrapolate.
+// bottom : No. of pixels in this direction from the source image rectangle to extrapolate.
+// left : No. of pixels in this direction from the source image rectangle to extrapolate.
+// right : No. of pixels in this direction from the source image rectangle to extrapolate.
+// borderType : Stating the border type.
+// value : Border value if borderType==BORDER_CONSTANT.
+// new_image : The output image with specified borders.
+//
+// Description
+// This function forms a border around the input image. The areas to the left, to the right, above and below the copied source image are filled with the extrapolated pixels. 
+//
+// Examples
+// // a simple example
+// a = imread("/images/lena.jpeg");
+// top=1;
+// bottom=1;
+// left=1;
+// right=1; 
+// b = copyMakeBorder(a, top, bottom, left, right, "BORDER_CONSTANT", 1);
+//
+// Authors
+// Ashish Manatosh Barik
+// Shubheksha Jalan	
+	image_list = mattolist(image)
+	
+	out = raw_copyMakeBorder(image_list, top, bottom, left, right, borderType, value)
+		
+	sz = size(out)
+	
+	for i = 1:sz
+		new_image(:, :, i) = (out(i))
+	end
+			
+endfunction
diff --git a/macros/detectBRIEFDescriptors.sci b/macros/detectBRIEFDescriptors.sci
new file mode 100644
index 0000000..0ccad06
--- /dev/null
+++ b/macros/detectBRIEFDescriptors.sci
@@ -0,0 +1,77 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik & Shubham Lohakare
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout] = detectBRIEFDescriptors(srcImg, varargin)	
+// This function is used for computing BRIEF descriptors using Star keypoints.
+// 
+// Calling Sequence
+// [ a ] = detectBRIEFDescriptors(srcImg)
+// [ a ] = detectVRIEFDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, bytes, use_orientation	)
+//
+// Parameters
+// srcImg : Hyper of input image
+// maxSize : Choose the number of filters to be applied, the parameter value set the maximum size.
+// responseThreshold : To eliminate weak corners.
+// lineThresholdProjected : Harris of responses.
+// lineThresholdBinarized : Harris of sizes.
+// suppressNonmaxSize : Window size (n-by-n) to apply the non-maximal suppression.
+// bytes : legth of the descriptor in bytes, valid values are: 16, 32 (default) or 64.
+// use_orientation : sample patterns using keypoints orientation, disabled by default. 
+// a : It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.
+// 
+// Description
+// For extracting keypoints(StarDetector) and computing descriptors. BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate.
+//
+// Examples
+// // with default values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize("max);
+// [ c ] = detectBRIEFDescriptors(a);
+// [ d ] = detectBRIEFDescriptors(b);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Examples
+// // user assigned values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize("max);
+// [ c ] = detectBRIEFDescriptors(a, 45, 30, 10, 8, 5, 32, %f);
+// [ d ] = detectBRIEFDEscriptors(b, 45, 30, 10, 8, 5, 32, %f);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela
+// Shubham Lohakare, NITK Surathkal 
+	srcMat = mattolist(srcImg)
+
+	[lhs, rhs] = argn(0)
+
+	if rhs > 8 then
+		error(msprintf("Too many input arguments"))
+	end	
+	if lhs > 1 then
+		error(msprintf("Too many output arguments"))
+	end		
+
+
+	select rhs
+		case 1 then
+			[a b c d e] = raw_detectBRIEFDescriptors(srcMat)
+		case 8 then
+			[a b c d e] = raw_detectBRIEFDescriptors(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7))
+	end
+
+	varargout(1) = struct('Type','Brief features','Features',a,'NumBits',b,'NumFeatures',c,'KeyPoints',d,'keypointsCount',e);	
+
+endfunction
diff --git a/macros/detectDAISYDescriptors.sci b/macros/detectDAISYDescriptors.sci
new file mode 100644
index 0000000..193e24c
--- /dev/null
+++ b/macros/detectDAISYDescriptors.sci
@@ -0,0 +1,86 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik & Shubham Lohakare
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout] = detectDAISYDescriptors(srcImg, varargin)	
+// This function is used for computing DAISY descriptors using Star keypoints.
+// 
+// Calling Sequence
+// [ a ] = detectDAISYDescriptors(srcImg)
+// [ a ] = detectDAISYDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, radius, q_radius, q_theta, q_hist, norm, interpolation, use_orientation)
+// [ a ] = detectDAISYDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, radius, q_radius, q_theta, q_hist, norm, homography, interpolation, use_orientation)
+//
+// Parameters
+// srcImg : Hyper of input image
+// maxSize : Choose the number of filters to be applied, the parameter value set the maximum size.
+// responseThreshold : To eliminate weak corners.
+// lineThresholdProjected : Harris of responses.
+// lineThresholdBinarized : Harris of sizes.
+// suppressNonmaxSize : Window size (n-by-n) to apply the non-maximal suppression.
+// radius : radius of the descriptor at the initial scale.
+// q_radius : amount of radial range division quantity.
+// q_theta : amount of angular range division quantity.
+// q_hist : amount of gradient orientations range division quantity. 
+// norm	: choose descriptors normalization type, where DAISY::NRM_NONE will not do any normalization (default), DAISY::NRM_PARTIAL mean that histograms are normalized independently for L2 norm equal to 1.0, DAISY::NRM_FULL mean that descriptors are normalized for L2 norm equal to 1.0, DAISY::NRM_SIFT mean that descriptors are normalized for L2 norm equal to 1.0 but no individual one is bigger than 0.154 as in SIFT   
+// homography :	optional 3x3 homography matrix used to warp the grid of daisy but sampling keypoints remains unwarped on image.
+// interpolation : switch to disable interpolation for speed improvement at minor quality loss.
+// use_orientation : sample patterns using keypoints orientation, disabled by default.   
+// a : It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.
+// 
+// Description
+// For extracting keypoints(using StarDetector) and computing descriptors(DAISY).
+//
+// Examples
+// // with default values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize('max')
+// [ c ] = detectDAISYDescriptors(a);
+// [ d ] = detectDAISYDescriptors(b);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Examples
+// // user assigned values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize('max')
+// [ c ] = detectDAISYDescriptors(a, 45, 30, 10, 8, 5, 15, 3, 8, 8, 100, %t, %f);
+// [ d ] = detectDAISYDEscriptors(b, 45, 30, 10, 8, 5, 15, 3, 8, 8, 100, %t, %f);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Authors
+// Ashish Manatosh Barik NIT Rourkela
+// Shubham Lohakare, NITK Surathkal 
+	srcMat = mattolist(srcImg)
+
+	[lhs, rhs] = argn(0)
+
+	if rhs > 14 then
+		error(msprintf("Too many input arguments"))
+	end	
+	if lhs > 1 then
+		error(msprintf("Too many output arguments"))
+	end		
+
+
+	select rhs
+		case 1 then
+			[a b c d e] = raw_detectDAISYDescriptors(srcMat)
+		case 13 then
+			[a b c d e] = raw_detectDAISYDescriptors(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12))
+		case 14 then
+			[a b c d e] = raw_detectDAISYDescriptors(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12), varargin(13))
+	end
+
+	varargout(1) = struct('Type','Brief features','Features',a,'NumBits',b,'NumFeatures',c,'KeyPoints',d,'keypointsCount',e);	
+
+endfunction
diff --git a/macros/detectLATCHDescriptors.sci b/macros/detectLATCHDescriptors.sci
new file mode 100644
index 0000000..fcb22e2
--- /dev/null
+++ b/macros/detectLATCHDescriptors.sci
@@ -0,0 +1,78 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik & Shubham Lohakare
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout] = detectLATCHDescriptors(srcImg, varargin)	
+// This function is used for computing the LATCH descriptors using Star keypoints.
+// 
+// Calling Sequence
+// [ a ] = detectLATCHDescriptors(srcImg)
+// [ a ] = detectLATCHDescriptors(srcImg, maxSize, responseThreshold, lineThresholdProjected, lineThresholdBinarized, suppressNonmaxSize, bytes, rotationInvariance, half_ssd_size)
+//
+// Parameters
+// srcImg : Hyper of input image
+// maxSize : Choose the number of filters to be applied, the parameter value set the maximum size.
+// responseThreshold : To eliminate weak corners.
+// lineThresholdProjected : Harris of responses.
+// lineThresholdBinarized : Harris of sizes.
+// suppressNonmaxSize : Window size (n-by-n) to apply the non-maximal suppression.
+// bytes : It is the size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1. 
+// rotationInvariance : whether or not the descriptor should compansate for orientation changes.
+// half_ssd_size) : the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x then the half_ssd_size should be (7-1)/2 = 3.
+// a : It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.
+// 
+// Description
+// For extracting keypoints(using StarDetectors) and computing descriptors(LATCH). 
+//
+// Examples
+// // with default values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize('max')
+// [ c ] = detectLATCHdescriptors(a);
+// [ d ] = detectLATCHDescriptors(b);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Examples
+// // user assigned values
+// [ a ] = imread("/images/b1.jpeg");
+// [ b ] = imread("/images/b2.jpeg");
+// stacksize('max')
+// [ c ] = detectLATCHdescriptors(a, 45, 30, 10, 8, 5, 32, %t, 3);
+// [ d ] = detectLATCHDEscriptors(b, 45, 30, 10, 8, 5, 32, %t, 3);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela
+// Shubham Lohakare, NITK Surathkal
+	srcMat = mattolist(srcImg)
+
+	[lhs, rhs] = argn(0)
+
+	if rhs > 9 then
+		error(msprintf("Too many input arguments"))
+	end	
+	if lhs > 1 then
+		error(msprintf("Too many output arguments"))
+	end		
+
+
+	select rhs
+		case 1 then
+			[a b c d e] = raw_detectLATCHDescriptors(srcMat)
+		case 9 then
+			[a b c d e] = raw_detectLATCHDescriptors(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+	end
+
+	varargout(1) = struct('Type','Brief features','Features',a,'NumBits',b,'NumFeatures',c,'KeyPoints',d,'keypointsCount',e);	
+
+endfunction
diff --git a/macros/detectSIFTFeatures.sci b/macros/detectSIFTFeatures.sci
new file mode 100644
index 0000000..0869102
--- /dev/null
+++ b/macros/detectSIFTFeatures.sci
@@ -0,0 +1,74 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik & Shubham Lohakare
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [varargout] = detectSIFTFeatures(srcImg, varargin)	
+// This function is used to find scale-invariant features.
+// 
+// Calling Sequence
+// [ a ] = detectSIFTFeatures(srcImg)
+// [ a ] = detectSIFTFeatures(srcImg, features, nOctaveLayers, contrastThreshold, edgeThreshold, sigma)
+//
+// Parameters
+// srcImg : Hyper of input image.
+// nfeatures : The number of best features to retain. The features are ranked by their scores (measured in SIFT algorithm as the local contrast). If valued as 0, uses all detected keypoints.
+// nOctaveLayers : The number of layers in each octave. 3 is the value used in D. Lowe paper. The number of octaves is computed automatically from the image resolution.
+// contrastThreshold : The contrast threshold used to filter out weak features in semi-uniform (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
+// edgeThreshold : The threshold used to filter out edge-like features. Note that the its meaning is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
+// sigma : The sigma of the Gaussian applied to the input image at the octave #0. If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
+// a : It is a struct consisting of 'Type'(Type of Feature) , 'Features'(descriptors) , 'NumBits', 'NumFeatures', 'KeyPoints', 'keypointsCount'.
+// 
+// Description
+// For extracting keypoints and computing descriptors using the Scale Invariant Feature Transform. RGB images are converted to Grayscale images before processing. 
+//
+// Examples
+// // with default values
+// a = imread("/images/photo1.jpeg");
+// b = imread("/images/photo2.jpeg");
+// stacksize("max");
+// c = detectSIFTFeatures(a);
+// d = detectSIFTFeatures(b);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Examples
+// // user assigned values
+// a = imread("/images/photo1.jpeg");
+// b = imread("/images/photo2.jpeg");
+// stacksize("max");
+// c = detectSIFTFeatures(a, 0, 3, 0.05, 11, 1.6);
+// d = detectSIFTFeatures(b, 0, 3, 0.05, 11, 1.6);
+// [ e f ] = matchFeatures(c.Features, d.Features);
+// out = drawMatch(a, b, c.KeyPoints, d.KeyPoints, e, f);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela  
+	srcMat = mattolist(srcImg)
+
+	[lhs, rhs] = argn(0)
+
+	if rhs > 6 then
+		error(msprintf("Too many input arguments"))
+	end	
+	if lhs > 1 then
+		error(msprintf("Too many output arguments"))
+	end		
+
+
+	select rhs
+		case 1 then
+			[a b c d e] = raw_detectSIFTFeatures(srcMat)
+		case 6 then
+			[a b c d e] = raw_detectSIFTFeatures(srcMat, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5))
+	end
+
+	varargout(1) = struct('Type','Scale-Invariant-Features','Features',a,'NumBits',b,'NumFeatures',c,'KeyPoints',d,'keypointsCount',e);	
+
+endfunction
diff --git a/macros/distanceExtractor.sci b/macros/distanceExtractor.sci
new file mode 100644
index 0000000..3a6bdad
--- /dev/null
+++ b/macros/distanceExtractor.sci
@@ -0,0 +1,88 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function dist = distanceExtractor(srcImg1, srcImg2, typeOfMethod, varargin)
+// This function computes the shape-distance between two images.
+//
+// Calling Sequence
+// [ dist ] = distanceExtractor(srcImg1, srcImg2, typeOfMethod); // Hausdorrf distance
+// [ dist ] = distanceExtractor(srcImg1, srcImg2, typeOfMethod, nAngularBins, innerRadius, nRadialBins, outerRadius, iterations); // Shape Context
+//
+// Parameters
+// srcImg1 : It is the first input image. 
+// srcImg2 : It is the  second input image. 
+// typeOfMethod : It is used as a flag to pick a certain type of Shape Distance calculation technique. Use '1' for 'Shape Context' and '2' for 'Hausdorrf'.
+// nAngularBins : Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline. 
+// nRadialBins : Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline. 
+// innerRadius : Set the inner radius of the shape context descriptor.
+// outerRadius : Set the outer radius of the shape context descriptor.
+// dist : It is the calculated distance. It is of double type.
+//
+// Description
+// This function is used to compute the shape distance between two shapes defined by its contours.
+//
+// Examples
+// // Hausdorff distance extractor
+// a = imread("/images/bnwhite.jpg");
+// b = imread("/images/bryan.jpeg");
+// typeOfMethod=2;//2 is for hausdorff
+// c=distanceExtractor(a,b,typeOfMethod);orff
+//
+// Examples
+// // Shape Context Distance extractor
+// a = imread("/images/photo.jpg");
+// b = imread("/images/photo1.jpg");
+// typeOfMethod=1; //1 for ShapeContext
+// nAngularBins=12;
+// nRadialBins=4;
+// innerRadius=0.2;
+// outerRadius=2;
+// iterations=3;
+// ndummies = 25;
+// defaultCost = 0.2;
+// rpTps =0 ;
+// dist=distanceExtractor(a,b,typeOfMethod,nAngularBins,nRadialBins,innerRadius,outerRadius,iterations,ndummies,dC,rpTps);
+//
+// Examples
+// Incorrect usage
+// a=4; (not hypermat)
+// b=88; (not hypermat)
+// typeOfMethod=1; //1 for ShapeContext
+// nAngularBins=12;
+// nRadialBins=4;
+// innerRadius=2;
+// outerRadius=0.2;
+// iterations=300;
+// ndummies = 25;
+// defaultCost = 0.2;
+// rpTps =0 ;
+// dist=distanceExtractor(a,b,typeOfMethod,nAngularBins,nRadialBins,innerRadius,outerRadius,iterations,ndummies,dC,rpTps);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela
+
+
+
+	srcMat1 = mattolist(srcImg1);
+	srcMat2 = mattolist(srcImg2);
+
+	[lhs, rhs] = argn(0)
+
+	select rhs
+		case 3 then	// Hausdorff
+			dist = raw_distanceExtractor(srcMat1, srcMat2, typeOfMethod)
+	
+		case 8 then	// Shape Context
+			dist = raw_distanceExtractor(srcMat1, srcMat2, typeOfMethod, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+	end
+	
+
+endfunction
diff --git a/macros/fillConvexPoly.sci b/macros/fillConvexPoly.sci
new file mode 100644
index 0000000..9a0f08e
--- /dev/null
+++ b/macros/fillConvexPoly.sci
@@ -0,0 +1,50 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Abhilasha Sancheti & Sukul Bagai
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [out] = fillConvexPoly(img, pstData, npts, r_value, g_value, b_value, linetype, shift)
+// This function fills a convex polygon. 
+//
+// Calling Sequence
+// [out] = fillConvexPoly(img, pstData, npts, r_value, g_value, b_value, linetype, shift)
+// 
+// Parameters
+// img : The input source image. 
+// pstData : The vector of polygon vertices.
+// npts : The number of polygon vertices.
+// r_value : The red value of RGB color for the polygon. 
+// g_value : The green value of RGB color for the polygon.
+// b_value : The blue value of RGB color for the polygon. 
+// linetype : This is the type of the polygon boundaries. It has only 3 valid types: 4, 8 and 16(CV_AA). Passing any other value as lineType is not legal.
+// shift : This is the number of fractional bits in the vertex coordinates. 
+//
+// Description
+// The function fillConvexPoly draws a filled convex polygon. It can fill not only convex polygons but any monotonic polygon without self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) twice at the most (though, its top-most and/or the bottom edge could be horizontal).
+//
+// Examples
+// // a simple example
+// a = imread("/images/lena.jpeg");
+// b = [ 0 10; 10 0; -10 0 ]; 
+// c = fillConvexPoly(a, b, 3, 1, 1, 1, 8, 0);
+//
+// Authors
+// Abhilasha Sancheti
+// Sukul Bagai        		
+	image = mattolist(img);
+
+	a = raw_fillConvexPoly(image, pstData, npts, r_value, g_value, b_value, linetype, shift)
+
+	d = size(a);
+
+	for i=1:d
+		out(:,:,i) = a(i);
+	end
+
+endfunction
diff --git a/macros/gabor.sci b/macros/gabor.sci
new file mode 100644
index 0000000..69e35c0
--- /dev/null
+++ b/macros/gabor.sci
@@ -0,0 +1,40 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Samiran Roy 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImg] = gabor(wavelength,orientation)
+// This function creates a Gabor filter.
+//
+// Calling Sequence
+// [outputImg] = gabor(wavelength,orientation)
+// 
+// Parameters
+// wavelength : It is the wavelength of sinusoid, specified as a numeric scalar or vector, in pixels/cycle.
+// orientation : It is the orientation of filter in degrees, specified as a numeric scalar in the range [0 180], where the orientation is defined as the normal direction to the sinusoidal plane wave.
+// outputImg : The Gabor filter.
+//
+// Description
+// It creates a Gabor filter with the specified wavelength (in pixels/cycle) and orientation (in degrees). If you specify wavelength or orientation as vectors, gabor returns an array of gabor objects, called a filter bank, that contain all the unique combinations of wavelength and orientation. For example, if wavelength is a vector of length 2 and orientation is a vector of length 3, then the output array is a vector of length 6. 
+//
+// Examples
+// // Create an array of Gabor filters.
+// wavelength = 20;
+// orientation = 45;
+// a = gabor(wavelength, orientation);
+//
+// Authors
+// Samiran Roy	
+	outputList = raw_gabor(wavelength,orientation);
+
+	for i=1:size(outputList)
+        	outputImg(:,:,i)=outputList(i)
+    	end
+
+endfunction
diff --git a/macros/gaussianBlur.sci b/macros/gaussianBlur.sci
new file mode 100644
index 0000000..3a6c0a2
--- /dev/null
+++ b/macros/gaussianBlur.sci
@@ -0,0 +1,43 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sukul Bagai 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImg]= gaussianBlur(inputImage,ksize_height,ksize_width,sigmaX,sigmaY)
+// This function blurs the input image using a Gaussian filter.
+//
+// Calling Sequence
+// outputImg = gaussianblur(inputImage,ksize_height,ksize_width,sigmaX,sigmaY)
+//
+// Parameters
+// inputImage : The input source image. 
+// ksize_height : It is the gaussian kernel height. It must be positive and odd.
+// ksize_width : It is the gaussian kernel width. It must be positive and odd.
+// sigmaX : It is the gaussian kernel standard deviation in X direction.
+// sigmaY : It is the gaussian kernel standard deviation in Y direction.
+// outputImg : The output filtered image is of the same size and type as the input image.
+//
+// Description
+// The function convolves the source image with the specified Gaussian kernel.
+//
+// Examples
+// inputImage = imread('/images/lena.jpg');
+// outputImg = gaussianBlur(inputImage,5,5,1,1);
+//	
+// Authors
+// Sukul Bagai	
+	inputList=mattolist(inputImage);
+    	
+	outputList=raw_gaussianBlur(inputList,ksize_height,ksize_width,sigmaX,sigmaY);
+    
+	for i=1:size(outputList)
+       		outputImg(:,:,i)=outputList(i)
+   	end
+
+endfunction
diff --git a/macros/histogramCostExtractor.sci b/macros/histogramCostExtractor.sci
new file mode 100644
index 0000000..37b81fa
--- /dev/null
+++ b/macros/histogramCostExtractor.sci
@@ -0,0 +1,75 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik & Shubham Lohakare
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [costMat] = histogramCostExtractor(srcImg1, srcImg2, typeOfMethod, hessianThreshold, varargin)
+// This function computes the cost matrix.
+//
+// Calling Sequence
+// [ costMatrix ] = histogramCostExtractor(srcImg1, srcImg2, typeOfMethod=3, hessianThreshold); // Norm based cost 
+// [ costMatrix ] = histogramcostExtractor(srcImg1, srcImg2, typeOfMethod=1, hessianThreshold, nDummies, defaultCost); // Chi as well as EMDL1 based cost extraction
+// [ costMatrix ] = histogramCostExtractor(srcImg1, srcImg2, typeOfMethod=2, hessianThreshold, nDummies, defaultCost); // EMDL1 based cost extraction
+//
+// Parameters
+// srcImg1 : It is the first input image. 
+// srcImg2 : It is the second input image.
+// typeOfMethod : It is used as a flag to pick a certain type of transformation. Use value '1' for 'Chi based cost ectraction', '2' for 'EMDL1 based cost extraction' and '3' for 'Norm based cost extraction'. It is of double type.
+// hessianThreshold : It is the threshold value for Hessian keypoint detector in SURF(Speeded-Up Robust Features). It is of double type.
+// rpTPS : It is used to set the regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. It is of double type.
+// costMatrix : It is the cost matrix. 
+//
+// Description
+// This function is used to calculate the histogram based cost matrix of two images, the user gets to choose and apply the type of transformation she/he wishes to perform.
+//
+// Examples
+// // Chi based cost extraction
+// a= imread("/images/n.jpeg");
+// b= imread("/images/n1.jpeg");
+// typeOfMethod=1;
+// hessianThreshold=5000;
+// nDummies=25;
+// defaultCost=0.2;
+// c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold,nDummies,defaultCost);
+//
+// Examples
+// // EMDL1
+// a = imread("/images/n.jpeg");
+// b = imread("/images/n1.jpeg");
+// typeOfMethod=2;
+// hessianThreshold=5000;
+// nDummies=25;
+// defaultCost=0.2;
+// c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold,nDummies,defaultCost);
+//
+// Examples
+// Norm based cost extraction
+// a = imread("/images/n.jpeg");
+// b= imread("/images/n1.jpeg");
+// typeOfMethod=3;
+// hessianThreshold=5000;
+// c=histogramCostExtractor(a,b,typeOfMethod,hessianThreshold);
+//
+// Authors
+// Ashish Mantosh Barik, NIT Rouekela
+// Shubham Lohakare, NITK Surathkal
+
+	srcMat1 = mattolist(srcImg1)
+	srcMat2 = mattolist(srcImg2)	
+
+	[lhs, rhs] = argn(0)
+
+	select rhs
+		case 4 then
+			costMat = raw_histogramCostExtractor(srcMat1, srcMat2, typeOfMethod, hessianThreshold)
+		case 6 then
+			costMat = raw_histogramCostExtractor(srcMat1, srcMat2, typeOfMethod, hessianThreshold, varargin(1), varargin(2))
+	end
+
+endfunction
diff --git a/macros/imGaborFilt.sci b/macros/imGaborFilt.sci
new file mode 100644
index 0000000..546d075
--- /dev/null
+++ b/macros/imGaborFilt.sci
@@ -0,0 +1,45 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Samiran Roy 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function new_image = imGaborFilt(image, wavelength, orientation)
+// The function applies Gabor filter or set of filters to 2-D image.
+//
+// Calling Sequence
+// [new_image] = imGaborFilt(image, wavelength, orientation)
+// 
+// Parameters
+// image : The input grayscale image.
+// wavelength : It is the wavelength of the sinusoidal carrier, specified as a numeric scalar in the range [2,Inf), in pixels/cycle.
+// orientation : Orientation value of filter in degrees, specified as a numeric scalar in the range [0 360], where the orientation is defined as the normal direction to the sinusoidal plane wave.
+//
+// Description
+// It computes the magnitude and phase response of a Gabor filter for the input grayscale image. 
+//
+// Examples
+// // apply Single Gabor Filter to Input Image
+// a = imread("/images/lena.jpeg", 0);
+// wavelength = 4;
+// orientation = 90;
+// b = imGaborFilt(a, wavelength, orientation)
+//
+// Authors
+// Samiran Roy 		
+	image_list = mattolist(image)
+	
+	out = raw_imGaborFilt(image_list, wavelength, orientation)
+	
+	sz = size(out)
+	
+	for i=1:sz
+		new_image(:, :, i) = out(i)
+	end
+
+endfunction
diff --git a/macros/lab2rgb.sci b/macros/lab2rgb.sci
new file mode 100644
index 0000000..c69e986
--- /dev/null
+++ b/macros/lab2rgb.sci
@@ -0,0 +1,88 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias, Ashish Manatosh Barik     
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = lab2rgb(pstData)
+// This function converts CIE 1976 L*a*b* to RGB.
+//
+// Calling Sequence
+// [output] = lab2rgb(pstData)
+// 
+// Parameters
+// pstData : The color values to convert, specified as a list of values.
+// output : The converted color values, returned as an array of the same shape as the input. 
+//
+// Description
+// Convert CIE 1976 L*a*b* to RGB.
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(70, 5, 10); 
+// b = lab2rgb(a);
+// 
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(71, 50, 10); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(7.3, 5.53, 10); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(70, 5, 10.6656); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(70, 5.45, 10.45); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(7.343, 5.34, 10); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(70, 500, 1012); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(701.2, 5, 10); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(70, 5.545, 1.0); 
+// b = lab2rgb(a);
+//
+// Examples
+// // Convert a color value in L*a*b* color space to the Adobe RGB (1998) color space. 
+// a = list(23, 51, 18); 
+// b = lab2rgb(a);
+//
+// Authors
+// Tess Zacharias
+// Ashish Manatosh Barik		
+	out = raw_lab2rgb(pstData)
+	
+	channels = size(out)
+
+	for i = 1:channels
+		output(:, :, i) = (out(i))
+	end
+	
+	output = double(output)
+	
+endfunction
diff --git a/macros/lab2uint8.sci b/macros/lab2uint8.sci
new file mode 100644
index 0000000..3f6c650
--- /dev/null
+++ b/macros/lab2uint8.sci
@@ -0,0 +1,86 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = lab2uint8(pstData)
+// This function converts L*a*b* data to uint8.
+//
+// Calling Sequence
+// [output] = lab2uint8(pstData)
+// 
+// Parameters
+// pstData : It is a list of color values.
+// output : The converted uint8 value. lab8 has the same size as lab.
+//
+// Description
+// Converts L*a*b* data to uint8.
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(70, 5, 10); 
+// b = lab2rgb(a); 
+// 
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(71, 5, 10); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(0, 5, 10); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(89, 50, 10); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(70, 5, 10.78); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(7, 5, 89); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(70.344, 5.34, 10); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(0, 0, 10); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(70.89, 5.11, 10.33); 
+// b = lab2rgb(a); 
+//
+// Examples
+// // to convert L*a*b* color values from double to uint8.
+// a = list(10, 5, 10); 
+// b = lab2rgb(a); 
+//
+// Authors
+// Tess Zacharias	
+	
+	out = raw_lab2uint8(pstData);
+
+	channels = size(out)
+
+	for i = 1:channels
+		output(:, :, i) = (out(i))
+	end
+	
+endfunction
diff --git a/macros/makeHDR.sci b/macros/makeHDR.sci
new file mode 100644
index 0000000..0c1d2bc
--- /dev/null
+++ b/macros/makeHDR.sci
@@ -0,0 +1,248 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outHDR, outLDR] = makeHDR(typeOfMethod, num, varargin)
+// This function is used to create HDR image.
+//
+// Calling Sequence
+// [out1, out2] = makeHDR(typeOfMethod=1, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, max_iter, threshold) // Robertson merging
+// [out1, out2] = makeHDR(typeOfMethod=2, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, samples, lambda, random) // Debevec merging
+// [out1, out2] = makeHDR(typeOfMethod=3, num=3, srcMat_1, srcMat_2, srcMat_3, ex_1, ex_2, ex_3, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+// [out1, out2] = makeHDR(typeOfMethod=1, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, max_iter, threshold) // Robertson merging
+// [out1, out2] = makeHDR(typeOfMethod=2, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, samples, lambda, random) // Debevec merging
+// [out1, out2] = makeHDR(typeOfMethod=3, num=4, srcMat_1, srcMat_2, srcMat_3, srcMat_4, ex_1, ex_2, ex_3, ex_4, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+// [out1, out2] = makeHDR(typeOfMethod=1, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, max_iter, threshold) // Robertson merging
+// [out1, out2] = makeHDR(typeOfMethod=2, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, samples, lambda, random) // Debevec merging
+// [out1, out2] = makeHDR(typeOfMethod=3, num=5, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, ex_1, ex_2, ex_3, ex_4, ex_5, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+// [out1, out2] = makeHDR(typeOfMethod=1, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, max_iter, threshold) // Robertson merging
+// [out1, out2] = makeHDR(typeOfMethod=2, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, samples, lambda, random) // Debevec merging
+// [out1, out2] = makeHDR(typeOfMethod=3, num=6, srcMat_1, srcMat_2, srcMat_3, srcMat_4, srcMat_5, srcMat_6, ex_1, ex_2, ex_3, ex_4, ex_5, ex_6, contrast_weight, saturation_weight, exposure_weight) // Mertens merging
+//
+// Parameters 
+// typeOfMethod : Use '1' for 'Robertson', '2' for 'Debevec', or '3' for 'Mertens'.
+// num : It is the number of images being fed as input. It is of Double type.
+// srcMat_i : It is the hypermat of input source image.
+// ex_i : It is the exposure value of the corresponding image_i. It is of double type.
+// max_iter : (Robertson) maximal number of Gauss-Seidel solver iterations. It is of Double type.
+// threshold : (Robertson) target difference between results of two successive steps of the minimization. It is of Double type.
+// samples : (Debevec) number of pixel locations to use. It is of Double type.
+// lambda : (Debevec) smoothness term weight. Greater values produce smoother results, but can alter the response. It is of Double type.
+// random : (Debevec) if true sample pixel locations are chosen at random, otherwise they form a rectangular grid. It is of Boolean type.
+// contrast_weight : (Mertens) contrast measure weight. It is of Double type.
+// saturation_weight : (Mertens) saturation measure weight. It is of Double type.
+// exposure_weight : (Mertens) well-exposedness measure weight. It is of Double type.
+// out1 : HDR image 
+// out2 : LDR image    
+//
+// Description
+// This function takes a set of images of the same scene in different exposures which have been aligned accordingly and outputs the HDR image.
+//
+// Examples
+// // input of 3 images(min), using Robertson merging technique
+// a = imread("/images/t1.jpeg");
+// b = imread("/images/t2.jpeg");
+// c = imread("/images/t3.jpeg");
+// num = 3;
+// typeOfMethod = 1;
+// ex1 = 15;
+// ex2 = 2.5;
+// ex3 = 0.25;
+// maxIter = 30;
+// thres = 0.01;
+//[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, ex1, ex2, ex3, maxIter, thres);
+//
+// Examples
+// // Use of Debevec merging technique
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// d = imread("/images/m4.jpeg");
+// e = imread("/images/m5.jpeg");
+// f = imread("/images/m6.jpeg");
+// num = 6;
+// typeOfMethod = 2;
+// ex1 = 0.0167;
+// ex2 = 0.034;
+// ex3 = 0.067;
+// ex4 = 0.125;
+// ex5 = 0.25;
+// ex6 = 0.5;
+// samples = 70;
+// lambda = 10.0;
+// random = %f; 
+// [hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, samples, lambda, random);
+// 
+// Examples
+// // use of Robertson merging technique
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// d = imread("/images/m4.jpeg");
+// e = imread("/images/m5.jpeg");
+// f = imread("/images/m6.jpeg");
+// num = 6;
+// typeOfMethod = 1;
+// ex1 = 0.0167;
+// ex2 = 0.034;
+// ex3 = 0.067;
+// ex4 = 0.125;
+// ex5 = 0.25;
+// ex6 = 0.5;
+// maxIter = 30;
+// thres = 0.01;
+// [hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, maxIter, thres); 
+//
+// Examples
+// // alternative to creating an HDR image, resulting image is of average exposure. Faster compared to rendering a HDR image.
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = imread("/images/m3.jpeg");
+// d = imread("/images/m4.jpeg");
+// e = imread("/images/m5.jpeg");
+// f = imread("/images/m6.jpeg");
+// num = 6;
+// typeOfMethod = 3;
+// ex1 = 0.0167;
+// ex2 = 0.034;
+// ex3 = 0.067;
+// ex4 = 0.125;
+// ex5 = 0.25;
+// ex6 = 0.5;
+// contrastWeight = 1.0;
+// saturationWeight = 1.0;
+//exposureWeight = 0.0; 
+//[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, e, f, ex1, ex2, ex3, ex4, ex5, ex6, contrastWeight, saturationWeight, exposureWeight);
+//
+// Examples
+// a = imread("/images/i1.jpeg");
+// b = imread("/images/i2.jpeg");
+// c = imread("/images/i3.jpeg");
+// d = imread("/images/i4.jpeg");
+// num = 4;
+// typeOfMethod = 2;
+// ex1 = 0.034;
+// ex2 = 0.008;
+// ex3 = 0.0034;
+// ex4 = 0.00073;
+// samples = 70;
+// lambda = 10.0;
+// random = %f; 
+//[hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, samples, lambda, random);
+//
+// Examples
+// a = imread("/images/i1.jpeg");
+// b = imread("/images/i2.jpeg");
+// c = imread("/images/i3.jpeg");
+// d = imread("/images/i4.jpeg");
+// num = 4;
+// typeOfMethod = 1;
+// ex1 = 0.034;
+// ex2 = 0.008;
+// ex3 = 0.0034;
+// ex4 = 0.00073;
+// maxIter = 30;
+// thres = 0.01;
+// [hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, maxIter, thres);
+//
+// Examples
+// a = imread("/images/i1.jpeg");
+// b = imread("/images/i2.jpeg");
+// c = imread("/images/i3.jpeg");
+// d = imread("/images/i4.jpeg");
+// num = 4;
+// typeOfMethod = 3;
+// ex1 = 0.034;
+// ex2 = 0.008;
+// ex3 = 0.0034;
+// ex4 = 0.00073;
+// maxIter = 30;
+// contrastWeight = 1.0;
+// saturationWeight = 1.0;
+//exposureWeight = 0.0; 
+// [hdr, ldr] = makeHDR(typeOfMethod, num, a, b, c, d, ex1, ex2, ex3, ex4, contrastWeight, saturationWeight, exposureWeight);
+//
+// Authors 
+// Ashish Manatosh Barik, NIT Rourkela
+//
+	[lhs, rhs] = argn(0)
+
+	select rhs
+		case 10 then
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8))
+
+		case 11 then
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9))
+
+		case 12 then
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10))
+
+		case 13 then
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11))
+		
+		case 14 then 
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+			
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12))
+
+		case 15 then 
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+			
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12), varargin(13))
+
+		case 16 then 
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+			
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12), varargin(13), varargin(14))
+		
+		case 17 then 
+			for i = 1:num
+				varargin(i) = mattolist(varargin(i))
+			end
+			
+			[out1, out2] = raw_makeHDR(typeOfMethod, num, varargin(1), varargin(2), varargin(3), varargin(4), varargin(5), varargin(6), varargin(7), varargin(8), varargin(9), varargin(10), varargin(11), varargin(12), varargin(13), varargin(14), varargin(15))
+
+	end
+		
+
+	channels1 = size(out1)
+	channels2 = size(out2)
+
+	for i = 1:channels1	
+		outHDR(:, :, i) = out1(i)
+	end
+
+	for i = 1:channels2	
+		outLDR(:, :, i) = out2(i)
+	end
+
+endfunction
diff --git a/macros/ntsc2rgb.sci b/macros/ntsc2rgb.sci
new file mode 100644
index 0000000..2df465d
--- /dev/null
+++ b/macros/ntsc2rgb.sci
@@ -0,0 +1,76 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = ntsc2rgb(pstData)
+// This function converts NTSC values to RGB color space.
+//
+// Calling Sequence
+// [output] = ntsc2rgb(pstData)
+// 
+// Parameters
+// pstData : It is a list of the NTSC luminance (Y) and chrominance (I and Q) color components.
+// output :  It is a list that contains the red, green, and blue values equivalent to those colors.
+//
+// Description
+// Converts NTSC values to RGB color space.
+//
+// Examples
+// // Convert the grayscale image back to RGB color space.
+// a = imread("/images/b1.jpeg",0)
+// b = ntsc2rgb(a);
+// 
+// Examples
+// // Convert the grayscale image back to RGB color space.
+// a = imread("/images/b2.jpeg",0)
+// b = ntsc2rgb(a);
+//
+// Examples
+// // Convert the grayscale image back to RGB color space.
+// a = imread("/images/graf1.jpeg",0)
+// b = ntsc2rgb(a);
+//
+// Examples
+// // Convert the grayscale image back to RGB color space.
+// a = imread("/images/graf2.jpeg",0)
+// b = ntsc2rgb(a);
+//
+// Examples
+// // input RGB image
+// a = imread("/images/b2.jpeg")
+// b = ntsc2rgb(a);
+//
+// Examples
+// // input RGB image
+// a = imread("/images/graf1.jpeg")
+// b = ntsc2rgb(a);
+//
+// Examples
+// // input RGB image
+// a = imread("/images/garf2.jpeg")
+// b = ntsc2rgb(a);
+//
+// Examples
+// // Convert the grayscale image back to RGB color space.
+// a = imread("/images/lena.jpeg",0)
+// b = ntsc2rgb(a);
+//
+// Authors
+// Tess Zacharias
+
+	out = raw_ntsc2rgb(pstData)
+
+	channels = size(out)
+
+	for i= 1:channels
+		output(:, :, i) = out(i)
+	end
+
+endfunction
diff --git a/macros/pcwrite.sci b/macros/pcwrite.sci
new file mode 100644
index 0000000..258eb35
--- /dev/null
+++ b/macros/pcwrite.sci
@@ -0,0 +1,57 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [] = pcwrite(pointCloud, filename, varargin)
+// This function is used to write 3-D point cloud to PLY or PCD file.
+//
+// Calling Sequence
+// [] = pcwrite(pointCloud, filename)
+// [] = pcwrite(pointCloud, filename, fileFormat, fileType)
+// 
+// Parameters
+// pointCloud : Object for storing point cloud, specified as a pointCloud object.
+// filename : File name, specified as a character vector, specify the file name with an extension incase of two input argument.(default encoding is ASCII)
+// fileFormat : The input file type must be a PLY or PCD format file.(choose between ".ply" or ".pcd")
+// fileType : Choose from the following encoding, PLY - 'ascii', 'binary' and PCD - 'ascii', 'binary', or 'compressed'.
+//
+// Description
+// Writes the point cloud object, ptCloud, to the PLY or PCD file specified by the input.
+// 
+// Examples
+// // Write 3-D Point Cloud to PLY File
+// ptCloud = pcread('teapot.ply');
+// pcshow(ptCloud);
+// pcwrite(ptCloud,'teapotOut','ply','binary');
+//
+// Examples
+// // Write 3-D Point Cloud to PCD File
+// ptCloud = pcread('teapot.ply');
+// pcshow(ptCloud);
+// pcwrite(ptCloud,'teapotOut','pcd','binary');
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela	
+	if(strcmp(pointCloud.dataType,'PointCloud')~=0) then
+		error(msprintf("function expects a PointCloud"))
+	end
+typeof(pointCloud.Width)
+	[lhs, rhs] = argn(0)
+
+	select rhs
+		
+		case 2 then			
+			raw_pcwrite(pointCloud.Width, pointCloud.Height, pointCloud.is_dense, pointCloud.Location, pointCloud.Count, pointCloud.Color, pointCloud.XLimits, pointCloud.YLimits, pointCloud.ZLimits, filename)
+		case 4 then
+			raw_pcwrite(pointCloud.Width, pointCloud.Height, pointCloud.is_dense, pointCloud.Location, pointCloud.Count, pointCloud.Color, pointCloud.XLimits, pointCloud.YLimits, pointCloud.ZLimits, filename, varargin(1), varargin(2))
+			
+	end
+
+endfunction
diff --git a/macros/rgb2lab.sci b/macros/rgb2lab.sci
new file mode 100644
index 0000000..7f331a1
--- /dev/null
+++ b/macros/rgb2lab.sci
@@ -0,0 +1,80 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Sridhar Reddy, Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = rgb2lab(inputImage)
+// This function converts RGB to CIE 1976 L*a*b*.
+//
+// Calling Sequence
+// [output] = rgb2lab(inputImage)
+// 
+// Parameters
+// inputImage : It is a list of color values to convert.
+// output : The converted color values, returned as a list.
+//
+// Description
+// Converts RGB to CIE 1976 L*a*b*.
+//
+// Examples
+// // to convert the RGB white value to L*a*b.
+// rgb2lab([1 1 1])
+// 
+// Examples
+// // to convert the RGB white value to L*a*b.
+// rgb2lab([.2 .3 .4])
+//
+// Examples
+// // Read RGB image to convert
+// a = imread("../images/b1.jpeg");
+// b = rgb2lab(a);
+//
+// Examples
+// // Read RGB image to convert
+// a = imread("../images/b2.jpeg");
+// b = rgb2lab(a);
+//
+// Examples
+// // to convert the RGB white value to L*a*b.
+// rgb2lab([23 23 22])
+//
+// Examples
+// // Read RGB image to convert
+// a = imread("../images/lena.jpeg");
+// b = rgb2lab(a);
+//
+// Examples
+// // to convert the RGB white value to L*a*b.
+// rgb2lab([34.2 43.3 343.4])
+//
+// Examples
+// // Read RGB image to convert
+// a = imread("../images/graf1.jpeg");
+// b = rgb2lab(a);
+//
+// Examples
+// // Read RGB image to convert
+// a = imread("../images/graf2.jpeg");
+// b = rgb2lab(a);
+//
+// Examples
+// // Read RGB image to convert which doesnt exit
+// a = imread("../images/b.jpeg");
+// b = rgb2lab(a);
+//
+// Authors
+// Sridhar Reddy
+// Ashish Manatosh Barik	
+	inputList = mattolist(inputImage);
+
+    	output = raw_rgb2lab(inputList);
+
+
+endfunction
+
diff --git a/macros/ssim.sci b/macros/ssim.sci
new file mode 100644
index 0000000..1e12738
--- /dev/null
+++ b/macros/ssim.sci
@@ -0,0 +1,39 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Dhruti Shah
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [ssim_val] = ssim(srcImg, reference)
+// This function is used to compute the Structural Similarity Index (SSIM) for measuring image quality. 
+//
+// Calling Sequence
+// [ssim_val] = ssim(srcImg, reference)
+// 
+// Parameters
+// srcImg : The input image whose quality is to be measured. Must be the same size and class as reference.
+// reference : Reference image against which quality if measured.
+// ssim_val : Structural Similarity (SSIM) Index.
+//
+// Description
+// Computes the Structural Similarity Index (SSIM) value.
+//
+// Examples
+// // a simple example
+// a = imread("/images/m1.jpeg");
+// b = imread("/images/m2.jpeg");
+// c = ssim(a,b);
+//
+// Authors
+// Dhruti Shah          
+	srcMat1 = mattolist(srcImg)
+	srcMat2 = mattolist(reference)
+
+	ssim_val = raw_ssim(srcMat1, srcMat2)
+	 
+endfunction
diff --git a/macros/wiener2.sci b/macros/wiener2.sci
new file mode 100644
index 0000000..65c1c07
--- /dev/null
+++ b/macros/wiener2.sci
@@ -0,0 +1,46 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Riddhish Bhalodia
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [outputImg] = wiener2(inputImage,filtsize,sigma)
+// This function is used for 2-D adaptive noise-removal filtering. 
+//
+// Calling Sequence
+// [outputImg] = wiener2(inputImage,filtsize,sigma)
+// 
+// Parameters
+// inputImage : The input image, grayscale only.
+// filtsize : The filter size.
+// sigma : The additive noise (Gaussian white noise) power is assumed to be noise. if sigma = 0 then the variance is estimated from data
+// outputImg : The output image, is of the same size and class as the input image
+//
+// Description
+// It lowpass-filters a grayscale image that has been degraded by constant power additive noise. 
+//
+// Examples
+// // a simple example
+// a = imread("/images/m1.jpeg");
+// filtsize = 5;
+// sigma = 0;
+// c = ssim(a,b);
+//
+// Authors
+// Riddhish Bhalodia         	
+	inputList = mattolist(inputImage);
+
+	outputList = raw_wiener2(inputList,filtsize,sigma);
+    
+	for i=1:size(outputList)
+	        
+		outputImg(:,:,i)=outputList(i)
+
+	end
+
+endfunction
diff --git a/macros/xyz2double.sci b/macros/xyz2double.sci
new file mode 100644
index 0000000..f05f949
--- /dev/null
+++ b/macros/xyz2double.sci
@@ -0,0 +1,89 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = xyz2double(pstData)
+// This function converts XYZ color values to double.
+//
+// Calling Sequence
+// [output] = xyz2double(pstData)
+// 
+// Parameters
+// pstData : list of uint16 or double array that must be real and nonsparse.
+// output : list of converted values.
+//
+// Description
+// Converts an M-by-3 or M-by-N-by-3 array of pstData color values to double. output has the same size as XYZ.
+//
+// Examples
+// // check for boundary level values
+// a = uint16([100 32768 65535]);
+// b = xyz2double(c);
+// 
+// Examples
+// // check for boundary level values
+// a = uint16([100 32768 65536]);
+// b = xyz2double(a);
+//
+// Examples
+// // check for lower values
+// a = uint16([1 3 5]);
+// b = xyz2double(a);
+//
+// Examples
+// // error - inpput should be M by 3 or M by N by 3
+// a = uint16([100 32768]);
+// b = xyz2double(a);
+//
+// Examples
+// // error - inpput should be M by 3 or M by N by 3
+// a = uint16([100 32 67 56]);
+// b = xyz2double(a);
+//
+// Examples
+// // float value input
+// a = uint16([0.0031 1 2]);
+// b = xyz2double(a);
+//
+// Examples
+// // error - inpput should be M by 3 or M by N by 3
+// a = uint16([100 32 678]);
+// b = xyz2double(a);
+//
+// Examples
+// // error - inpput should be M by 3 or M by N by 3
+// a = uint16([100 32768 3244]);
+// b = xyz2double(a);
+//
+// Examples
+// // float value input
+// a = uint16([0.0031 1.56 2.454]);
+// b = xyz2double(a);
+//
+// Examples
+// // error - inpput is double, no conversion takes place.
+// a = double([9 1 2]);
+// b = xyz2double(a);
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela	
+	pstList = mattolist(pstData)	
+
+	out = raw_xyz2double(pstList);
+
+	channels = size(out)
+
+	for i = 1:channels
+		output(:, :, i) = (out(i))
+	end
+
+	output = double(output)
+
+endfunction
diff --git a/macros/xyz2lab.sci b/macros/xyz2lab.sci
new file mode 100644
index 0000000..1a13072
--- /dev/null
+++ b/macros/xyz2lab.sci
@@ -0,0 +1,81 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Ashish Manatosh Barik, Priyanka Hiranandani
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = xyz2lab(vartype)
+// This function converts CIE 1931 XYZ to CIE 1976 L*a*b*.
+//
+// Calling Sequence
+// [output] = xyz2lab(vartype)
+// 
+// Parameters
+// varType : list of color values to convert.
+// output : list of converted color values.
+//
+// Description
+// Convert CIE 1931 XYZ to CIE 1976 L*a*b*.
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.25, 0.40, 0.10)
+// xyz2lab(a)
+// 
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.29, 0.23, 0.11)
+// xyz2lab(a))
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.29, 34, 0.10)
+// xyz2lab(a)
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.25, 0.56, 0.18)
+// xyz2lab(a)
+//
+// Examples
+// // error - inpput ahould be M by 3 or M by N by 3
+// a = uint16([100 32 67 56]);
+// b = xyz2double(a);
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(89.25, 89.40, 0.10)
+// xyz2lab(a)
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(78, 89, 11)
+// xyz2lab(a)
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.25, 0.40, 90.67)
+// xyz2lab(a)
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(0.76, 0.67, 9.10)
+// xyz2lab(a)
+//
+// Examples
+// // Convert an XYZ color value to L*a*b*
+// a = list(78.25, 34.40, 0.10)
+// xyz2lab(a))
+//
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela	
+// Priyanka Hiranandani, NIT Surat 	
+	output = raw_xyz2lab(vartype)
+		
+endfunction
+
diff --git a/macros/xyz2rgb.sci b/macros/xyz2rgb.sci
new file mode 100644
index 0000000..1042f6e
--- /dev/null
+++ b/macros/xyz2rgb.sci
@@ -0,0 +1,81 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias, Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = xyz2rgb(data)
+// This function converts CIE 1931 XYZ to RGB.
+//
+// Calling Sequence
+// [output] = xyz2rgb(data)
+// 
+// Parameters
+// data : list of color values to convert.
+// output : list of converted color values.
+//
+// Description
+// Converts CIE 1931 XYZ to RGB.
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(0.25, 0.40, 0.10);
+// xyz2rgb(a)
+// 
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(3.25, 5.40, 12.10);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(2, 5, 4);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(0.65, 0.43, 0.19);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(89.25, 23, 0.6710);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(0.2534, 0.4340, 0.143);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(67.25, 34.40, 44.10);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(34.25, 56.40, 223.189);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(0.1, 0.1, 0.1);
+// xyz2rgb(a)
+//
+// Examples
+// // Convert a color value in the XYZ color space to the sRGB color space.
+// a = list(78.25, 34.40, 23.10);
+// xyz2rgb(a)
+//
+// Authors
+// Tess Zacharias
+// Ashish Manatosh Barik	
+
+	output = raw_xyz2rgb(data);
+
+endfunction
diff --git a/macros/xyz2uint16.sci b/macros/xyz2uint16.sci
new file mode 100644
index 0000000..6fe7dca
--- /dev/null
+++ b/macros/xyz2uint16.sci
@@ -0,0 +1,80 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Author: Tess Zacharias, Ashish Manatosh Barik 
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+//
+function [output] = xyz2uint16(pstData)
+// This function converts XYZ color values to uint16.
+//
+// Calling Sequence
+// [output] = xyz2uint16(pstData)
+// 
+// Parameters
+// pstData : list of uint16 or double array that must be real and nonsparse
+// output : list of puint8.
+//
+// Description
+// Converts an M-by-3 or M-by-N-by-3 array of XYZ color values to uint16. output has the same size as pstData.
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(0.1, 0.5, 1.0)
+// xyz2uint16(a)
+// 
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(0.14, 0.35, 1.20)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(45.1, 22.5, 45.0)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(200, 334, 2112)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(56.1, 0.5, 1.0)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(0.1, 8378.5, 1.0)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(878.1, 32.5, 1.0)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(0.12323, 0.53434, 1.878)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(44, 55, 1.0)
+// xyz2uint16(a)
+//
+// Examples
+// // Create a double vector specifying a color in XYZ colorspace.
+// a = list(0.134, 55.5, 1.121)
+// xyz2uint16(a)
+//
+// Authors
+// Tess Zacharias
+// Ashish Manatosh Barik 
+	output = raw_xyz2uint16(pstData)
+
+endfunction
diff --git a/sci_gateway/PCL_pcwrite.cpp b/sci_gateway/PCL_pcwrite.cpp
new file mode 100644
index 0000000..60a9e54
--- /dev/null
+++ b/sci_gateway/PCL_pcwrite.cpp
@@ -0,0 +1,502 @@
+#include<iostream>
+#include<pcl/io/pcd_io.h>
+#include<pcl/io/ply_io.h>
+#include<pcl/point_types.h>
+#include<string>
+
+using namespace std;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+
+	int PCL_pcwrite(char *fname, unsigned long fname_len)
+	{
+		// Error management variable
+		SciErr sciErr;
+
+		// variables required to read argument #1
+		int *piAddr1 = NULL;
+		int intErr1 = 0;
+		double width = 0;
+
+		// variables required to read argument #2
+		int *piAddr2 = NULL;
+		int intErr2 = 0;
+		double height = 0;
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		int dense = false;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		int rows1 = 0, cols1 = 0;
+		double* location = NULL;
+
+		// variables required to read argument #5
+		int *piAddr5 = NULL;
+		int intErr5 = 0;
+		double count = 0;
+		
+		// variables required to read argument #6
+		int *piAddr6 = NULL;
+		int intErr6 = 0;
+		int rows2 = 0, cols2 = 0;
+		double* rgb = NULL;
+
+		// variables required to read argument #7
+		int *piAddr7 = NULL;
+		int intErr7 = 0;
+		int rows3 = 0, cols3 = 0;
+		double* xlimit = NULL;
+
+		// variables required to read argument #8
+		int *piAddr8 = NULL;
+		int intErr8 = 0;
+		int rows4 = 0, cols4 = 0;
+		double* ylimit = NULL;
+
+		// variables required to read argument #9
+		int *piAddr9 = NULL;
+		int intErr9 = 0;
+		int rows5 = 0, cols5 = 0;
+		double* zlimit = NULL;
+
+		// variables required to read argument #10
+		int *piAddr10 = NULL;
+		int intErr10 = 0;
+		int rows6 = 0, cols6 = 0;
+		int *pilen1 = NULL;
+		char **filename = NULL;
+
+		// variables required to read argument #11
+		int *piAddr11 = NULL;
+		int intErr11 = 0;
+		int rows7 = 0, cols7 = 0;
+		int *pilen2 = NULL;
+		char **fileFormat = NULL;
+
+		// variables required to read argument #12
+		int *piAddr12 = NULL;
+		int intErr12 = 0;
+		int rows8 = 0, cols8 = 0;
+		int *pilen3 = NULL;
+		char **fileType = NULL;
+
+		int s;
+		
+		int n= *getNbInputArgument(pvApiCtx);
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments) 
+		CheckInputArgument(pvApiCtx, 10, 12);
+//		CheckOutputArgument(pvApiCtx, 0, 0);
+	
+		
+		// to get the argument #1
+		sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr1 = getScalarDouble(pvApiCtx, piAddr1, &width);
+		if(intErr1)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 1);
+			return -1;
+		}
+
+		// to get the argument #2
+		sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr2 = getScalarDouble(pvApiCtx, piAddr2, &height);
+		if(intErr2)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+		}
+
+		// to get the argument #3
+		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr3 = getScalarBoolean(pvApiCtx, piAddr3, &dense);
+		if(intErr3)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+
+		// to get the argument #4
+                sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+                if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		/* Check that the first input argument is a real matrix (and not complex) */
+                if( !isDoubleType(pvApiCtx, piAddr4) ||  isVarComplex(pvApiCtx, piAddr4) )
+                {
+                        Scierror(999, "point cloud should consist of real values.");
+                        return 0;
+                }
+		sciErr = getMatrixOfDouble(pvApiCtx, piAddr4, &rows1, &cols1, &location);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                if(!(rows1==(width*height) && cols1==3))
+                {
+                    	Scierror(999, "Size error in point-cloud points");
+                }
+
+		// to get the argument #5
+		sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr5 = getScalarDouble(pvApiCtx, piAddr5, &count);
+		if(intErr5)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 5);
+			return -1;
+		}
+\
+		// to get the argument #6
+                sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr6);
+                if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		sciErr = getMatrixOfDouble(pvApiCtx, piAddr6, &rows2, &cols2, &rgb);
+                if(sciErr.iErr)
+                {
+                        Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 6);
+			return -1;
+                }
+
+		// to get the argument #7
+                sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddr7);
+                if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		sciErr = getMatrixOfDouble(pvApiCtx, piAddr7, &rows3, &cols3, &xlimit);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+		// to get the argument #8
+                sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddr8);
+                if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		sciErr = getMatrixOfDouble(pvApiCtx, piAddr8, &rows4, &cols4, &ylimit);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+		// to get the argument #9
+                sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddr9);
+                if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		sciErr = getMatrixOfDouble(pvApiCtx, piAddr9, &rows5, &cols5, &zlimit);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+		// to get the argument #10
+		sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddr10);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		// Check for Argument type
+		if( !isStringType(pvApiCtx, piAddr10))
+		{
+			Scierror(999, "%s: Wrong type of argument #%d. A string is expected.\n");
+			return 0;
+		}
+		// Matrix of Stings
+		sciErr = getMatrixOfString(pvApiCtx, piAddr10, &rows6, &cols6, NULL, NULL);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		pilen1 = (int*)malloc(sizeof(int) * rows6 * cols6);
+		// second call to retrieve the length of the string
+		sciErr = getMatrixOfString(pvApiCtx, piAddr10, &rows6, &cols6, pilen1, NULL);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		filename = (char**)malloc(sizeof(char*) * rows6 * cols6);
+		filename[0] = (char*)malloc(sizeof(char) * (*pilen1 + 1));
+		// third call to retrieve data
+		sciErr = getMatrixOfString(pvApiCtx, piAddr10, &rows6, &cols6, pilen1, filename);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+
+		string name(filename[0]);
+
+		if(n == 10)
+		{
+
+			// creating PointCloud object
+			pcl::PointCloud<pcl::PointXYZRGB> cloud;
+
+			cloud.width    = width;
+	  		cloud.height   = height;
+	  		cloud.is_dense = dense;
+	  		cloud.points.resize (cloud.width * cloud.height);
+
+			// size of filename string
+			s=name.length();
+
+			// checking if the filename suggests .ply or .pcd format
+			if(name.substr(s-3,s-1)=="ply")
+			{
+		                    sciprint("%d\n",*getNbInputArgument(pvApiCtx));
+				for(size_t i = 0; i < cloud.points.size (); ++i)
+	  			{
+	    				cloud.points[i].x = location[i];
+	    				cloud.points[i].y = location[i + (int)width*(int)height ];
+	    				cloud.points[i].z = location[i + 2*(int)width*(int)height];
+
+
+					cloud.points[i].r = rgb[i];
+	    				cloud.points[i].g = rgb[i + (int)width*(int)height ];
+	    				cloud.points[i].b = rgb[i + 2*(int)width*(int)height];
+	  			}
+	
+				// creates ASCII encoded .ply file as default
+				pcl::io::savePLYFileASCII(name, cloud);
+				
+			}
+			else if(name.substr(s-3,s-1)=="pcd")
+			{
+			
+				for(size_t i = 0; i < cloud.points.size (); ++i)
+	  			{
+	    				cloud.points[i].x = location[i];
+	    				cloud.points[i].y = location[i + (int)width*(int)height ];
+	    				cloud.points[i].z = location[i + 2*(int)width*(int)height];
+
+					cloud.points[i].r = rgb[i];
+	    				cloud.points[i].g = rgb[i + (int)width*(int)height ];
+	    				cloud.points[i].b = rgb[i + 2*(int)width*(int)height];
+	  			}
+	
+				// creates ASCII encoded .pcd file as default
+				pcl::io::savePCDFileASCII(name, cloud);
+				
+			}
+			else
+			{
+				Scierror(999, "wrong value argument #4 passed.");
+				return 0;
+			}	
+			
+		}
+		else if(n == 12)
+		{
+			// to get the argument #11
+			sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr11);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			// Check for Argument type
+			if( !isStringType(pvApiCtx, piAddr11))
+			{
+				Scierror(999, "%s: Wrong type of argument #%d. A string is expected.\n");
+				return 0;
+			}
+			// Matrix of Stings
+			sciErr = getMatrixOfString(pvApiCtx, piAddr11, &rows7, &cols7, NULL, NULL);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			pilen2 = (int*)malloc(sizeof(int) * rows7 * cols7);
+			// second call to retrieve the length of the string
+			sciErr = getMatrixOfString(pvApiCtx, piAddr11, &rows7, &cols7, pilen2, NULL);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			fileFormat = (char**)malloc(sizeof(char*) * rows7 * cols7);
+			fileFormat[0] = (char*)malloc(sizeof(char) * (*pilen2 + 1));	
+			// third call to retrieve data
+			sciErr = getMatrixOfString(pvApiCtx, piAddr11, &rows7, &cols7, pilen2, fileFormat);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				free(pilen2);
+				free(fileFormat);
+					return 0;
+			}
+	
+			// to get the argument #12
+			sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddr12);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			// Check for Argument type
+			if( !isStringType(pvApiCtx, piAddr12))
+			{
+				Scierror(999, "%s: Wrong type of argument #%d. A string is expected.\n");
+				return 0;
+			}
+			// Matrix of Stings
+			sciErr = getMatrixOfString(pvApiCtx, piAddr12, &rows8, &cols8, NULL, NULL);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			pilen3 = (int*)malloc(sizeof(int) * rows8 * cols8);
+			// second call to retrieve the length of the string
+			sciErr = getMatrixOfString(pvApiCtx, piAddr12, &rows8, &cols8, pilen3, NULL);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			fileType = (char**)malloc(sizeof(char*) * rows8 * cols8);
+			fileType[0] = (char*)malloc(sizeof(char) * (*pilen3 + 1));	
+			// third call to retrieve data
+			sciErr = getMatrixOfString(pvApiCtx, piAddr12, &rows8, &cols8, pilen3, fileType);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				free(pilen3);
+				free(fileType);
+				return 0;
+			}
+
+			// creating PointCloud object
+			pcl::PointCloud<pcl::PointXYZRGB> cloud;
+
+			cloud.width    = width;
+	  		cloud.height   = height;
+	  		cloud.is_dense = dense;
+	  		cloud.points.resize (cloud.width * cloud.height);
+
+			// concatenating 
+			strcat(filename[0], ".");
+			strcat(filename[0], fileFormat[0]);
+
+			if(strcmp(fileFormat[0],"ply") == 0)
+			{
+		
+				for(size_t i = 0; i < cloud.points.size (); ++i)
+	  			{
+	    				cloud.points[i].x = location[i];
+	    				cloud.points[i].y = location[i + (int)width*(int)height ];
+	    				cloud.points[i].z = location[i + 2*(int)width*(int)height];
+
+					cloud.points[i].r = rgb[i];
+	    				cloud.points[i].g = rgb[i + (int)width*(int)height ];
+	    				cloud.points[i].b = rgb[i + 2*(int)width*(int)height];
+					
+	  			}
+	
+				if(strcmp(fileType[0],"ASCII") == 0)
+				{
+					pcl::io::savePLYFileASCII(filename[0], cloud);
+				}
+				else if(strcmp(fileType[0],"Binary") == 0)
+				{
+					pcl::io::savePLYFileBinary(filename[0], cloud);
+				}
+				else
+				{
+					Scierror(999, "wrong value argument #4 passed.");
+					return 0;
+				}
+			}
+			else if(strcmp(fileFormat[0],"pcd") == 0)
+			{
+			
+				for(size_t i = 0; i < cloud.points.size (); ++i)
+	  			{
+	    				cloud.points[i].x = location[i];
+	    				cloud.points[i].y = location[i + (int)width*(int)height ];
+	    				cloud.points[i].z = location[i + 2*(int)width*(int)height];
+
+					cloud.points[i].r = rgb[i];
+	    				cloud.points[i].g = rgb[i + (int)width*(int)height ];
+	    				cloud.points[i].b = rgb[i + 2*(int)width*(int)height];
+	  			}
+	
+				if(strcmp(fileType[0],"ASCII") == 0)
+				{
+					pcl::io::savePCDFileASCII(filename[0], cloud);
+				}
+				else if(strcmp(fileType[0],"Binary") == 0)
+				{
+					pcl::io::savePCDFileBinary(filename[0], cloud);
+				}
+				else if(strcmp(fileType[0],"Compressed") == 0)
+				{
+					pcl::io::savePCDFileBinaryCompressed(filename[0], cloud);
+				}
+				else
+				{
+					Scierror(999, "wrong value argument #4 passed.");
+					return 0;
+				}	
+			}
+			else
+			{
+				Scierror(999, "wrong value argument #3 passed.");
+				return 0;
+			}	
+			
+		}
+			
+		
+	}
+}
diff --git a/sci_gateway/opencv_align.cpp b/sci_gateway/opencv_align.cpp
new file mode 100644
index 0000000..51f98a3
--- /dev/null
+++ b/sci_gateway/opencv_align.cpp
@@ -0,0 +1,392 @@
+/*
+This is the .cpp gateway file for the 'align' scilab function.
+
+OpenCV classes : 
+1. Ptr<AlignMTB> cv::createAlignMTB (int max_bits=6, int exclude_range=4, bool cut=true)
+   // Creates AlignMTB object. 
+
+It includes the following OpenCV functions, belonging to the Photo module of OpenCV 3.0.0 : 
+1. void process (InputArrayOfArrays src, std::vector< Mat > &dst)
+   // Aligns images.
+
+*/
+
+#include<numeric>
+#include"opencv2/core/core.hpp"
+#include"opencv2/highgui/highgui.hpp"
+#include"opencv2/opencv.hpp"
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/imgproc/imgproc.hpp"
+#include"opencv2/core/utility.hpp"
+#include<string>
+#include<iostream>
+#include<cstdlib>
+#include "opencv2/photo.hpp"
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_align(char* fname, unsigned long fname_len)
+	{
+		// Error management variable
+		SciErr sciErr;
+
+		Mat img1, img2, img3, img4, img5, img6;
+
+		// retrieving images 
+		retrieveImage(img1, 5);
+		retrieveImage(img2, 6);
+		retrieveImage(img3, 7);
+		
+		// variables required to read argument #1
+		int *piAddr1 = NULL;
+		int intErr1 = 0;
+		double maxBits = 0;
+
+		// variables required to read argument #2
+		int *piAddr2 = NULL;
+		int intErr2 = 0;
+		double excludeRange = 0;
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		int cut = true;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		double num = 0;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments) 
+		CheckInputArgument(pvApiCtx, 7, 10);
+		CheckOutputArgument(pvApiCtx, 3, 5);
+
+		// to get the argument #1
+		sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr1 = getScalarDouble(pvApiCtx, piAddr1, &maxBits);
+		if(intErr1)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 1);
+			return -1;
+		}
+
+		// to get the argument #2
+		sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr2 = getScalarDouble(pvApiCtx, piAddr2, &excludeRange);
+		if(intErr2)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+		}
+
+		// to get the argument #3
+		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr3 = getScalarBoolean(pvApiCtx, piAddr3, &cut);
+		if(intErr3)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+
+		// to get the argument #4
+		sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr4 = getScalarDouble(pvApiCtx, piAddr4, &num);
+		if(intErr4)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+		}
+
+		vector<Mat> images;
+		// output vector of aligned images
+		vector<Mat> dst;
+		
+		
+		try
+		{
+			// OpenCV functionalities
+
+			// converting the input images to 8-bit and 1 channel images
+			img1.convertTo(img1, CV_8U);
+			img2.convertTo(img2, CV_8U);
+			img3.convertTo(img3, CV_8U);
+
+			// creating the AlignMTB object
+			Ptr<AlignMTB> model = createAlignMTB (maxBits, excludeRange, cut);
+
+			if(num == 3)
+			{
+				// pushing the images into vector<Mat>
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+
+				// aligning images
+				model->process(images, dst);
+
+				// to return the output1 image
+				string tempstring1 = type2str(dst[0].type());
+				char *checker1;
+				checker1 = (char *)malloc(tempstring1.size() + 1);
+				memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+				returnImage(checker1, dst[0], 1);
+				free(checker1);
+				AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+	
+				// to return the output2 image
+				string tempstring2 = type2str(dst[1].type());
+				char *checker2;
+				checker2 = (char *)malloc(tempstring2.size() + 1);
+				memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+				returnImage(checker2, dst[1], 2);
+				free(checker2);
+				AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				// to return the output3 image
+				string tempstring3 = type2str(dst[2].type());
+				char *checker3;
+				checker3 = (char *)malloc(tempstring2.size() + 1);
+				memcpy(checker3, tempstring2.c_str(), tempstring2.size() + 1);
+				returnImage(checker3, dst[2], 3);
+				free(checker3);
+				AssignOutputVariable(pvApiCtx, 3) = nbInputArgument(pvApiCtx) + 3;
+				
+			}
+			else if(num == 4)
+			{
+				retrieveImage(img4, 8);
+
+				img4.convertTo(img4, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+
+				model->process(images, dst);
+
+				// to return the output1 image
+				string tempstring1 = type2str(dst[0].type());
+				char *checker1;
+				checker1 = (char *)malloc(tempstring1.size() + 1);
+				memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+				returnImage(checker1, dst[0], 1);
+				free(checker1);
+				AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+	
+				// to return the output2 image
+				string tempstring2 = type2str(dst[1].type());
+				char *checker2;
+				checker2 = (char *)malloc(tempstring2.size() + 1);
+				memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+				returnImage(checker2, dst[1], 2);
+				free(checker2);
+				AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				// to return the output3 image
+				string tempstring3 = type2str(dst[2].type());
+				char *checker3;
+				checker3 = (char *)malloc(tempstring3.size() + 1);
+				memcpy(checker3, tempstring3.c_str(), tempstring3.size() + 1);
+				returnImage(checker3, dst[2], 3);
+				free(checker3);
+				AssignOutputVariable(pvApiCtx, 3) = nbInputArgument(pvApiCtx) + 3;
+
+				// to return the output4 image
+				string tempstring4 = type2str(dst[3].type());
+				char *checker4;
+				checker4 = (char *)malloc(tempstring4.size() + 1);
+				memcpy(checker4, tempstring4.c_str(), tempstring4.size() + 1);
+				returnImage(checker4, dst[3], 4);
+				free(checker4);
+				AssignOutputVariable(pvApiCtx, 4) = nbInputArgument(pvApiCtx) + 4;
+
+
+
+			}
+			else if(num == 5)
+			{
+				retrieveImage(img4, 8);
+				retrieveImage(img5, 9);
+
+				img4.convertTo(img4, CV_8U);
+				img5.convertTo(img5, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+				images.push_back(img5);
+
+				model->process(images, dst);
+
+				// to return the output1 image
+				string tempstring1 = type2str(dst[0].type());
+				char *checker1;
+				checker1 = (char *)malloc(tempstring1.size() + 1);
+				memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+				returnImage(checker1, dst[0], 1);
+				free(checker1);
+				AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+	
+				// to return the output2 image
+				string tempstring2 = type2str(dst[1].type());
+				char *checker2;
+				checker2 = (char *)malloc(tempstring2.size() + 1);
+				memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+				returnImage(checker2, dst[1], 2);
+				free(checker2);
+				AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				// to return the output3 image
+				string tempstring3 = type2str(dst[2].type());
+				char *checker3;
+				checker3 = (char *)malloc(tempstring3.size() + 1);
+				memcpy(checker3, tempstring3.c_str(), tempstring3.size() + 1);
+				returnImage(checker3, dst[2], 3);
+				free(checker3);
+				AssignOutputVariable(pvApiCtx, 3) = nbInputArgument(pvApiCtx) + 3;
+
+				// to return the output4 image
+				string tempstring4 = type2str(dst[3].type());
+				char *checker4;
+				checker4 = (char *)malloc(tempstring4.size() + 1);
+				memcpy(checker4, tempstring4.c_str(), tempstring4.size() + 1);
+				returnImage(checker4, dst[3], 4);
+				free(checker4);
+				AssignOutputVariable(pvApiCtx, 4) = nbInputArgument(pvApiCtx) + 4;
+
+				// to return the output5 image
+				string tempstring5 = type2str(dst[4].type());
+				char *checker5;
+				checker5 = (char *)malloc(tempstring5.size() + 1);
+				memcpy(checker5, tempstring5.c_str(), tempstring5.size() + 1);
+				returnImage(checker5, dst[4], 5);
+				free(checker5);
+				AssignOutputVariable(pvApiCtx, 5) = nbInputArgument(pvApiCtx) + 5;
+
+
+			}
+			else if(num == 6)
+			{
+				retrieveImage(img4, 8);
+				retrieveImage(img5, 9);
+				retrieveImage(img6, 10);
+
+				img4.convertTo(img4, CV_8U);
+				img5.convertTo(img5, CV_8U);	
+				img6.convertTo(img6, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+				images.push_back(img5);
+				images.push_back(img6);
+
+				model->process(images, dst);
+
+				// to return the output1 image
+				string tempstring1 = type2str(dst[0].type());
+				char *checker1;
+				checker1 = (char *)malloc(tempstring1.size() + 1);
+				memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+				returnImage(checker1, dst[0], 1);
+				free(checker1);
+				AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+	
+				// to return the output2 image
+				string tempstring2 = type2str(dst[1].type());
+				char *checker2;
+				checker2 = (char *)malloc(tempstring2.size() + 1);
+				memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+				returnImage(checker2, dst[1], 2);
+				free(checker2);
+				AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				// to return the output3 image
+				string tempstring3 = type2str(dst[2].type());
+				char *checker3;
+				checker3 = (char *)malloc(tempstring3.size() + 1);
+				memcpy(checker3, tempstring3.c_str(), tempstring3.size() + 1);
+				returnImage(checker3, dst[2], 3);
+				free(checker3);
+				AssignOutputVariable(pvApiCtx, 3) = nbInputArgument(pvApiCtx) + 3;
+
+				// to return the output4 image
+				string tempstring4 = type2str(dst[3].type());
+				char *checker4;
+				checker4 = (char *)malloc(tempstring4.size() + 1);
+				memcpy(checker4, tempstring4.c_str(), tempstring4.size() + 1);
+				returnImage(checker4, dst[3], 4);
+				free(checker4);
+				AssignOutputVariable(pvApiCtx, 4) = nbInputArgument(pvApiCtx) + 4;
+
+				// to return the output5 image
+				string tempstring5 = type2str(dst[4].type());
+				char *checker5;
+				checker5 = (char *)malloc(tempstring5.size() + 1);
+				memcpy(checker5, tempstring5.c_str(), tempstring5.size() + 1);
+				returnImage(checker5, dst[4], 5);
+				free(checker5);
+				AssignOutputVariable(pvApiCtx, 5) = nbInputArgument(pvApiCtx) + 5;
+
+				// to return the output5 image
+				string tempstring6 = type2str(dst[5].type());
+				char *checker6;
+				checker6 = (char *)malloc(tempstring6.size() + 1);
+				memcpy(checker6, tempstring6.c_str(), tempstring6.size() + 1);
+				returnImage(checker6, dst[5], 6);
+				free(checker6);
+				AssignOutputVariable(pvApiCtx, 6) = nbInputArgument(pvApiCtx) + 6;
+
+
+
+			}
+			else
+			{
+				Scierror(999, "Wrong argument #4, Number of input images. \n", 1);
+			}
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}		
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
diff --git a/sci_gateway/opencv_applyTransformer.cpp b/sci_gateway/opencv_applyTransformer.cpp
new file mode 100644
index 0000000..a12e032
--- /dev/null
+++ b/sci_gateway/opencv_applyTransformer.cpp
@@ -0,0 +1,233 @@
+/*
+This is the .cpp gateway file for the 'applyTransformer' scilab function.
+
+OpenCV classes : 
+1. Ptr< AffineTransformer > cv::createAffineTransformer (bool fullAffine)
+2. Ptr< ThinPlateSplineShapeTransformer > cv::createThinPlateSplineShapeTransformer (double regularizationParameter=0) 
+
+It includes the following OpenCV functions, belonging to the Shape Distance and Matching module of OpenCV 3.0.0 : 
+1. estimateTransformation (InputArray transformingShape, InputArray targetShape, std::vector< DMatch > &matches)
+   Estimate the transformation parameters of the current transformer algorithm, based on point matches.
+2. warpImage (InputArray transformingImage, OutputArray output, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar &borderValue=Scalar()) 
+   Apply a transformation, given a pre-estimated transformation parameters, to an Image.
+
+*/
+
+#include<numeric>
+#include"opencv2/core/core.hpp"
+#include"opencv2/highgui/highgui.hpp"
+#include"opencv2/opencv.hpp"
+#include"opencv2/shape/shape_transformer.hpp"
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/imgproc/imgproc.hpp"
+#include"opencv2/features2d/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/core/utility.hpp"
+#include<string>
+#include<iostream>
+#include<cstdlib>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_applyTransformer(char *fname, unsigned long fname_len)
+	{
+		// Error management variable
+		SciErr sciErr;
+		int i;
+
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		double typeOfMethod = 0;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		double hessianThreshold = 0;
+
+		// variables required to read argument #5
+		int *piAddr5 = NULL;
+		int intErr5 = 0;
+		double rpTPS = 0;
+
+		// variables required to read argument #6
+		int *piAddr6 = NULL;
+		int intErr6 = 0;
+		int sfAffine = false;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments) 
+		CheckInputArgument(pvApiCtx, 6, 6);
+		CheckOutputArgument(pvApiCtx, 1, 1);
+
+		Mat img1, img2;
+
+		// retrieving the input images
+		int a = retrieveImage(img1, 1);
+		if(a == 0)
+		{
+			sciprint("Error while retrieving the image1.");
+			return 0;
+		}
+		int b = retrieveImage(img2, 2);
+		if(b == 0)
+		{
+			sciprint("Error while retrieving the image2.");
+		}
+			
+
+		// to get the argument #3
+		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr3 = getScalarDouble(pvApiCtx, piAddr3, &typeOfMethod);
+		if(intErr3)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+
+		// to get the argument #4
+		sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr4 = getScalarDouble(pvApiCtx, piAddr4, &hessianThreshold);
+		if(intErr4)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+		}
+
+		// to get the argument #5
+		sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr5 = getScalarDouble(pvApiCtx, piAddr5, &rpTPS);
+		if(intErr5)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 5);
+			return -1;
+		}
+
+		// to get the argument #6
+		sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr6);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr6 = getScalarBoolean(pvApiCtx, piAddr6, &sfAffine);
+		if(intErr6)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 6);
+			return -1;
+		} 
+
+		
+		Mat img_matches;
+		Mat image1, image2;
+	
+		try{
+
+			// OpenCV functionalities 
+
+			// converting the input images to 8-bit and 1 channel images
+			img1.convertTo(img1, CV_8U);
+			cvtColor(img1, image1, CV_BGR2GRAY);
+
+			img2.convertTo(img2, CV_8U);
+			cvtColor(img2, image2, CV_BGR2GRAY);
+
+			// detecting keypoints & computing descriptors
+   	 		Ptr<SURF> surf = SURF::create(hessianThreshold);
+    		
+			vector<KeyPoint> keypoints1, keypoints2;
+    			Mat descriptors1, descriptors2;
+    
+			surf->detectAndCompute(image1, Mat(), keypoints1, descriptors1);
+    			surf->detectAndCompute(image2, Mat(), keypoints2, descriptors2);
+
+			// matching descriptors
+    			BFMatcher matcher(surf->defaultNorm());
+    			vector<DMatch> matches;
+    			matcher.match(descriptors1, descriptors2, matches);
+		
+			// extract points
+    			vector<Point2f> pts1, pts2;
+    			for (size_t ii=0; ii<keypoints1.size(); ii++)
+        			pts1.push_back( keypoints1[ii].pt );
+    			for (size_t ii=0; ii<keypoints2.size(); ii++)
+        			pts2.push_back( keypoints2[ii].pt );
+
+		
+			// apply shape transformation
+			if(typeOfMethod == 1)
+			{
+				// Affine transformation
+
+				Ptr<AffineTransformer> model = createAffineTransformer(sfAffine);
+
+				model->estimateTransformation(pts1, pts2, matches);
+				model->warpImage(image2, image2);
+			}
+			else if(typeOfMethod == 2)
+			{
+				// TPS shape transformation
+			
+				Ptr<ThinPlateSplineShapeTransformer> model = createThinPlateSplineShapeTransformer(rpTPS);
+
+                		model->estimateTransformation(pts1, pts2, matches);
+				model->warpImage(image2, image2);
+			}
+			else
+			{
+				// incorrect input parameter of type-of-method
+
+				Scierror(999, "Wrong input for Argument #3. Use '1' for 'Affine' and '2' for 'TPS' \n");
+				return 0;
+			}
+
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}		
+
+
+		// to return the output transformed image
+		string tempstring1 = type2str(image2.type());
+		char *checker1;
+		checker1 = (char *)malloc(tempstring1.size() + 1);
+		memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+		returnImage(checker1, image2, 1);
+		free(checker1);
+		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
+	
diff --git a/sci_gateway/opencv_bwLookUp.cpp b/sci_gateway/opencv_bwLookUp.cpp
new file mode 100644
index 0000000..d1ab524
--- /dev/null
+++ b/sci_gateway/opencv_bwLookUp.cpp
@@ -0,0 +1,187 @@
+/*
+ * bwlookup
+ *
+ * 2*2 and 3*3 non linear filtering of a binary image based on a lookup table -
+ *lut which is taken as input from the user
+ *
+ */
+
+// Created by Samiran Roy, mail: samiranroy@cse.iitb.ac.in
+// An implementation of bwlookup
+// Usage:
+// bwlookup(I,lut)
+
+// I is the input binary grayscale image. If the image is not binary, it is
+// converted to one.
+// lut is a 1*16 double vector [2*2 filtering], or a [1*512] double vector [3*3
+// filtering]
+// The indexing method used is the same as Matlab bwlookup:
+// http://in.mathworks.com/help/images/ref/bwlookup.html
+
+// Known Changes from Matlab:
+/*
+ * 1) None, as of now
+ */
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+extern "C" 
+{
+	#include "api_scilab.h"
+	#include "Scierror.h"
+	#include "BOOL.h"
+	#include <localization.h>
+	#include "sciprint.h"
+	#include "../common.h"
+	
+	int opencv_bwLookUp(char* fname, unsigned long fname_len) 
+	{
+  		SciErr sciErr;
+  		int intErr = 0;
+
+  		int* piAddr = NULL;
+
+  		// checking input argument
+  		CheckInputArgument(pvApiCtx, 2, 2);
+  		CheckOutputArgument(pvApiCtx, 1, 1);
+
+  		Mat image;
+  		retrieveImage(image, 1);
+
+  		if (image.channels() > 1) 
+		{
+    			Scierror(999, "The image must be grayscale.");
+    			return -1;
+  		}
+
+  		double* lut;
+  		int iRows = 0, iCols = 0;
+
+  		sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return -1;
+  		}
+  		sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols, &lut);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return -1;
+  		}
+		// Error Checking
+  		if (!((iCols == 16) || (iCols == 512))) 
+		{
+    			Scierror(999, "Expected LUT (argument 2) to have 16 or 512 elements.\n");
+   			return -1;
+  		}
+  		if (iRows != 1) 
+		{
+    			Scierror(999, "Expected input number 2, LUT, to be a vector.\n");
+    			return -1;
+  		}
+
+  		if (image.channels() != 1) 
+		{
+    			Scierror(999, "Expected input number 1, A, to be two-dimensional.\n");
+    			return -1;
+  		}
+
+  		// temporary copy of image to perform computation
+  		// converting the image to a binary image
+  		Mat tempimg = Mat::zeros(image.size(), CV_8U);
+
+  		for (int i = 0; i < image.rows; i++) 
+		{
+    			for (int j = 0; j < image.cols; j++) 
+			{
+      				if (image.at<double>(i, j) != 0) 
+					tempimg.at<uchar>(i, j) = 1;
+    			}
+  		}
+
+  		// pad the temporary copy of the image with zeroes to handle border cases
+  		copyMakeBorder(tempimg, tempimg, 1, 1, 1, 1, BORDER_CONSTANT, 0);
+
+  		// output images
+  		Mat new_image = Mat::zeros(image.size(), CV_32F);
+
+  		// temporary variables
+  		int ii, jj;
+  		int index;
+
+		try
+		{
+
+  			// 2*2 filtering
+  			if (iCols == 16) 
+			{
+    				for (int i = 0; i < image.rows; i++) 
+				{
+      					for (int j = 0; j < image.cols; j++) 
+					{
+        					ii = i + 1;
+        					jj = j + 1;
+
+        					index = tempimg.at<uchar>(ii, jj) * 1 + tempimg.at<uchar>(ii, jj + 1) * 2 + tempimg.at<uchar>(ii + 1, jj) * 4 + tempimg.at<uchar>(ii + 1, jj + 1) * 8;
+
+        					new_image.at<float>(i, j) = lut[ 0, index ];
+      					}
+    				}
+	  		}	
+
+  			// 3*3 filtering
+  			if (iCols == 512) 
+			{
+    				for (int i = 0; i < image.rows; i++) 
+				{
+      					for (int j = 0; j < image.cols; j++) 
+					{
+					        ii = i + 1;
+					        jj = j + 1;
+	
+					        index = tempimg.at<uchar>(ii - 1, jj - 1) * 1 +
+					                tempimg.at<uchar>(ii - 1, jj) * 2 +
+					                tempimg.at<uchar>(ii - 1, jj + 1) * 4 +
+					                tempimg.at<uchar>(ii, jj - 1) * 8 +
+					                tempimg.at<uchar>(ii, jj) * 16 +
+					                tempimg.at<uchar>(ii, jj + 1) * 32 +
+					                tempimg.at<uchar>(ii + 1, jj - 1) * 64 + 						                tempimg.at<uchar>(ii + 1, jj) * 128 +
+					                tempimg.at<uchar>(ii + 1, jj + 1) * 256;
+	
+					        new_image.at<float>(i, j) = lut[ 0, index ];
+				      }
+				 }
+	  		}
+		
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		} 
+		
+		// to return the output image
+  		int temp = nbInputArgument(pvApiCtx) + 1;
+  		string tempstring = type2str(new_image.type());
+  		char* checker;
+  		checker = (char*)malloc(tempstring.size() + 1);
+  		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+ 	 	returnImage(checker, new_image, 1);
+  		free(checker);
+
+  		// Assigning the list as the Output Variable
+  		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+  		// Returning the Output Variables as arguments to the Scilab environment
+  		ReturnArguments(pvApiCtx);
+  		return 0;
+	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_contourArea.cpp b/sci_gateway/opencv_contourArea.cpp
new file mode 100644
index 0000000..90254ba
--- /dev/null
+++ b/sci_gateway/opencv_contourArea.cpp
@@ -0,0 +1,112 @@
+/* ==================================================================== */
+/* Author :Priyanka Hiranandani NIT Surat, Ashish Manatosh Barik NIT Rourkela        */
+/* ==================================================================== */
+/* Syntax : return_area=contourarea(InputArray contour, bool oriented); */
+/* ==================================================================== */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include <sciprint.h>
+//#include<bits/stdc++.h>
+
+using namespace cv;
+using namespace std;
+	extern "C"
+  	{
+  		#include "api_scilab.h"
+  		#include "Scierror.h"
+  		#include "BOOL.h"
+  		#include <localization.h>
+  
+		int opencv_contourArea(char *fname, unsigned long fname_len)
+    		{
+    			// Error management variable
+        		SciErr sciErr;
+    
+			// variables required to read argument #1
+			int iRows		= 0;
+			int iCols		= 0;
+			int* piAddr1		= NULL;
+			double *pstData	        = NULL;
+        		int error;
+        
+			// variables required to read argument #2
+			int *piAddr2 = NULL;
+			int intErr2 = 0;
+			int orientation = false;
+	
+         		//checking input argument 
+        		CheckInputArgument(pvApiCtx,2,2);
+         		//checking output argument
+        		CheckOutputArgument(pvApiCtx, 1, 1);
+         		//for first argument 
+         		
+			// get Address of first input  
+        		sciErr =getVarAddressFromPosition(pvApiCtx,1,&piAddr1);
+          		//check for any error
+             		if(sciErr.iErr)   
+               		{
+               			printError(&sciErr, 0);
+               			return 0;
+               		}      
+           		//retrieve input array
+          		//SciErr getMatrixOfDouble(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, double** _pdblReal)
+        		sciErr = getMatrixOfDouble(pvApiCtx, piAddr1, &iRows, &iCols,&pstData);
+             		if(sciErr.iErr)
+               		{
+              			printError(&sciErr, 0);
+               			return 0;
+               		}
+        		int k=0;
+        		vector<Point> contours;
+        		for(int i=0;i<iCols;i++)
+               		{   
+               			contours.push_back(Point2f(pstData[i],pstData[i+1])) ;   
+               			i++;
+               		}
+    			
+			// to get the argument #2
+			sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+			if(sciErr.iErr)
+			{
+				printError(&sciErr, 0);
+				return 0;
+			}
+			intErr2 = getScalarBoolean(pvApiCtx, piAddr2, &orientation);
+			if(intErr2)
+			{
+				Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+				return -1;
+			} 
+
+			double res;
+	
+			try
+			{
+				res = contourArea(contours, orientation);
+
+			}
+			catch(Exception& e)
+			{
+				const char* err=e.what();
+				Scierror(999, "%s", err);
+			}			
+
+        		error=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+1,res);
+         		if(error!=0)
+         		{
+           			Scierror(999, "error occurred");
+           			return -1;    
+         		}  
+
+    ////////// Return the output arguments to the Scilab engine //////////
+
+        		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+        		ReturnArguments(pvApiCtx);
+
+        		return 0;     
+		}
+	}
diff --git a/sci_gateway/opencv_copyMakeBorder.cpp b/sci_gateway/opencv_copyMakeBorder.cpp
new file mode 100644
index 0000000..914c69b
--- /dev/null
+++ b/sci_gateway/opencv_copyMakeBorder.cpp
@@ -0,0 +1,201 @@
+/********************************************************
+    Author: Ashish Manatosh Barik, Shubheksha Jalan
+*********************************************************
+  void copyMakeBorder(InputArray image, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )
+********************************************************/
+// for BORDER_CONSTANT, enter a 4 element array as Scalar. For any other border type, pass 0.
+
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include <sciprint.h>
+  	#include "../common.h"
+  
+  	int opencv_copyMakeBorder(char *fname, unsigned long fname_len)
+  	{
+
+    		SciErr sciErr;
+    		int intErr=0;
+    		int iRows=0,iCols=0;
+    		int *piLen = NULL;
+    		int *piAddr = NULL;
+    		int *piAddrNew = NULL;
+    		int *piAddr2  = NULL;
+    		int *piAddr3  = NULL;
+    		int *piAddr4  = NULL;
+    		int *piAddr5  = NULL;
+    		int *piAddr6 = NULL;
+    		int *piAddr7 = NULL;
+    		int i,j,k;
+    		char **borderType;
+    		double top, bottom, right, left;
+    		double *value = NULL;
+     
+		//checking input argument
+    		CheckInputArgument(pvApiCtx, 6, 7);
+    		CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+    		Mat image;
+    		retrieveImage(image,1);
+
+    		//for top
+    		sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr2, &top);
+     		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+    		}   
+
+    		//for bottom
+    		sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr3, &bottom);
+    		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+    		}   
+
+     		//for left
+    		sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr4, &left);
+    		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+    		}   
+
+     		//for bottom
+    		sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr5, &right);
+    		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 5);
+			return -1;
+    		}
+
+
+      		sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr6);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Now, we will retrieve the string from the input parameter. For this, we will require 3 calls
+    		//first call to retrieve dimensions
+    		sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, NULL, NULL);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		piLen = (int*)malloc(sizeof(int) * iRows * iCols);
+    		//second call to retrieve length of each string
+    		sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, piLen, NULL);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		borderType = (char**)malloc(sizeof(char*) * iRows * iCols);
+    		for(i = 0 ; i < iRows * iCols ; i++)
+        		borderType[i] = (char*)malloc(sizeof(char) * (piLen[i] + 1));//+ 1 for null termination
+    		//third call to retrieve data
+    		sciErr = getMatrixOfString(pvApiCtx, piAddr6, &iRows, &iCols, piLen, borderType);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+    		//for array of Scalar object
+     		sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddr7);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+       	 		return 0;
+    		}
+    		sciErr = getMatrixOfDouble(pvApiCtx, piAddr7, &iRows, &iCols ,&value);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}   
+
+    		Mat new_image(Size(image.cols+left+right, image.rows+top+bottom), image.type()); 
+   
+     		try
+		{
+
+    			if(strcmp(borderType[0], "BORDER_CONSTANT") == 0  && iCols == 4 )
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_CONSTANT,  Scalar(value[0], value[1], value[2], value[3]));
+    			else if(strcmp(borderType[0], "BORDER_CONSTANT") == 0 && iCols == 3)
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_CONSTANT, Scalar(value[0], value[1], value[2]));
+    			else if(strcmp(borderType[0], "BORDER_DEFAULT") == 0)
+         	 		copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_DEFAULT);
+    			else if(strcmp(borderType[0], "BORDER_REPLICATE") == 0)
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REPLICATE);
+    			else if(strcmp(borderType[0], "BORDER_REFLECT") == 0)
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REFLECT);
+    			else if(strcmp(borderType[0], "BORDER_REFLECT_101") == 0)
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_REFLECT_101);
+    			else if(strcmp(borderType[0], "BORDER_WRAP") == 0)
+          			copyMakeBorder(image, new_image, top, bottom, left, right, BORDER_WRAP);
+		
+			free(borderType);
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+		string tempstring = type2str(new_image.type());
+   		char *checker;
+    		checker = (char *)malloc(tempstring.size() + 1);
+    		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+    		returnImage(checker,new_image,1);
+    		free(checker);
+
+    		//Assigning the list as the Output Variable
+    		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    		//Returning the Output Variables as arguments to the Scilab environment
+    		ReturnArguments(pvApiCtx);
+    		return 0;
+
+  	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_detectBRIEFDescriptors.cpp b/sci_gateway/opencv_detectBRIEFDescriptors.cpp
new file mode 100644
index 0000000..4fcd43d
--- /dev/null
+++ b/sci_gateway/opencv_detectBRIEFDescriptors.cpp
@@ -0,0 +1,312 @@
+// Authors 
+// Ashish Manatosh Barik, Shubham Lohakare
+//
+#include<iostream>
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/highgui.hpp"
+#include"opencv2/imgproc.hpp"
+#include"opencv2/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/xfeatures2d/nonfree.hpp"
+#include<opencv2/core/utility.hpp>
+#include"opencv2/core/core.hpp"
+#include<string>
+#include<vector>
+#include<stdio.h>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_detectBRIEFDescriptors(char* fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 1, 8);
+		CheckOutputArgument(pvApiCtx, 1, 5);
+
+		// input image
+		Mat img;
+
+		// to retrieve the input image from the hypermat that is passed in the scilab function
+		retrieveImage(img, 1);
+
+		// variables required to read varDouble #1
+		int *piAddrVar1 = NULL;
+		int intErrVar1 = 0;
+		double varDouble1 = 0;
+
+		// variables required to read varDouble #2
+		int *piAddrVar2 = NULL;
+		int intErrVar2 = 0;
+		double varDouble2 = 0;
+
+		// variables required to read varDouble #3
+		int *piAddrVar3 = NULL;
+		int intErrVar3 = 0;
+		double varDouble3 = 0;
+
+		// variables required to read varDouble #4
+		int *piAddrVar4 = NULL;
+		int intErrVar4 = 0;
+		double varDouble4 = 0;
+
+		// variables required to read varDouble #5
+		int *piAddrVar5 = NULL;
+		int intErrVar5 = 0;
+		double varDouble5 = 0;
+
+		// variables required to read varDouble #6
+		int *piAddrVar6 = NULL;
+		int intErrVar6 = 0;
+		double varDouble6 = 0;
+
+		// variables required to read varBool #1
+		int *piAddrVar7 = NULL;
+		int intErrVar7 = 0;
+		int varBool1 = true;
+
+		// to get the number of input argument passed in the scilab function		
+		int n = *getNbInputArgument(pvApiCtx);
+
+		// keypoints of the input image
+		vector<KeyPoint> keypoints;
+
+		// image used after converting to grayscale image
+		Mat image;
+		// descriptors of the input image
+		Mat descriptors;
+
+		// matrix used to output the descriptors extracted from the input image
+		double *featureVector = NULL;  
+        	int feature_rows=0;
+        	int feature_cols=0;
+		double numBits = 0;
+        	double numFeatures = 0;
+
+		// matrix used to output the keypoints extracted from the input image
+		double *LocationData = NULL;
+
+		try
+		{
+			// OpenCV functionalities 
+
+			// converting the input images to 8-bit and 1 channel images
+			img.convertTo(img, CV_8U);
+			cvtColor(img, image, CV_BGR2GRAY);
+
+			if(n == 1)
+			{
+				// using default OpenCV function values
+				
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create();
+
+				star->detect(image, keypoints);
+
+				// object
+				Ptr<BriefDescriptorExtractor> model = cv::xfeatures2d::BriefDescriptorExtractor::create();
+
+				// computing descriptors
+				model->compute(image, keypoints, descriptors);
+	
+			}
+			else if(n == 8)
+			{
+				// to get varDouble #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrVar1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar1 = getScalarDouble(pvApiCtx, piAddrVar1, &varDouble1);
+				if(intErrVar1)
+				{
+					return intErrVar1;
+				}
+
+				// to get varDouble #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrVar2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar2 = getScalarDouble(pvApiCtx, piAddrVar2, &varDouble2);
+				if(intErrVar2)
+				{
+					return intErrVar2;
+				}
+
+				// to get varDouble #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrVar3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar3 = getScalarDouble(pvApiCtx, piAddrVar3, &varDouble3);
+				if(intErrVar3)
+				{
+					return intErrVar3;
+				}
+
+				// to get varDouble #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrVar4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar4 = getScalarDouble(pvApiCtx, piAddrVar4, &varDouble4);
+				if(intErrVar4)
+				{
+					return intErrVar4;
+				}
+
+				// to get varDouble #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrVar5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar5 = getScalarDouble(pvApiCtx, piAddrVar5, &varDouble5);
+				if(intErrVar5)
+				{
+					return intErrVar5;
+				}
+
+				// to get varDouble #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrVar6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar6 = getScalarDouble(pvApiCtx, piAddrVar6, &varDouble6);
+				if(intErrVar6)
+				{
+					return intErrVar6;
+				}
+
+				// to get varBool #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrVar7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar7 = getScalarBoolean(pvApiCtx, piAddrVar7, &varBool1);
+				if(intErrVar7)
+				{
+					return intErrVar7;
+				}
+
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create(varDouble1, varDouble2, varDouble3, varDouble4, varDouble5);
+
+				star->detect(image, keypoints);
+				
+				// object
+				Ptr<BriefDescriptorExtractor> model = cv::xfeatures2d::BriefDescriptorExtractor::create(varDouble6, varBool1);
+
+				//computing descriptors
+				model->compute(image, keypoints, descriptors);	
+				
+			}
+			else
+			{
+				Scierror(999, "wrong value argument #2 passed.");
+				return 0;
+			}				
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+		// to pass the computed desciptors as output in the form of a matrix
+		numBits = descriptors.size[1];
+            	numFeatures = descriptors.size[0];
+		featureVector = (double*)malloc(sizeof(double)*descriptors.size[0]*descriptors.size[1]);
+	        for( int i=0; i<descriptors.size[0]; i++)
+		{
+                	for( int j=0; j<descriptors.size[1]; j++)
+                	{
+                    		*(featureVector + j*descriptors.size[0] + i) = int( descriptors.at<uchar>(i,j));
+                	}
+		}
+                feature_rows = descriptors.size[0];
+                feature_cols = descriptors.size[1];    
+
+		// to pass the detected keypoints as output in the form of a matrix
+		int size = keypoints.size();
+		LocationData = (double *)malloc(sizeof(double) * size * 2);
+   		for(int i = 0; i < size; i++)
+    		{
+        		LocationData[i] = keypoints[i].pt.x;
+        		LocationData[i + size] = keypoints[i].pt.y;
+    		}
+
+		// descriptor
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, feature_rows, feature_cols, featureVector);
+        	if(sciErr.iErr)
+	        {
+        	    printError(&sciErr, 0);
+        	    return 0;
+        	}
+
+		// descriptor bits
+    		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 1, 1, &numBits);
+        	if(sciErr.iErr)
+        	{
+            		printError(&sciErr, 0);
+            		return 0;
+        	}
+
+		// number of descriptors
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 3, 1, 1, &numFeatures);
+	        if(sciErr.iErr)
+	        {
+	            printError(&sciErr, 0);
+	            return 0;
+	        } 
+    
+		// keypoints
+	        sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 4, size, 2, LocationData);
+	        if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+		// number of keypoints
+		createScalarInteger32(pvApiCtx,nbInputArgument(pvApiCtx) + 5, size);
+
+		// to return output to scilab 
+	        for(int i=1;i<=5;i++)
+	        {
+ 			AssignOutputVariable(pvApiCtx, i) = nbInputArgument(pvApiCtx) + i;   	
+    		}
+
+		// to commit the new variables to the Scilab engine	
+    		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+    
+}
diff --git a/sci_gateway/opencv_detectDAISYDescriptors.cpp b/sci_gateway/opencv_detectDAISYDescriptors.cpp
new file mode 100644
index 0000000..d8f49e1
--- /dev/null
+++ b/sci_gateway/opencv_detectDAISYDescriptors.cpp
@@ -0,0 +1,618 @@
+// Authors 
+// Ashish Manatosh Barik, Shubham Lohakare
+//
+#include<iostream>
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/highgui.hpp"
+#include"opencv2/imgproc.hpp"
+#include"opencv2/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/xfeatures2d/nonfree.hpp"
+#include<opencv2/core/utility.hpp>
+#include"opencv2/core/core.hpp"
+#include<string>
+#include<vector>
+#include<stdio.h>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_detectDAISYDescriptors(char* fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 1, 14);
+		CheckOutputArgument(pvApiCtx, 1, 5);
+
+		// input image
+		Mat img;
+
+		// to retrieve the input image from the hypermat that is passed in the scilab function
+		retrieveImage(img, 1);
+
+		// variables required to read varDouble #1
+		int *piAddrVar1 = NULL;
+		int intErrVar1 = 0;
+		double varDouble1 = 0;
+
+		// variables required to read varDouble #2
+		int *piAddrVar2 = NULL;
+		int intErrVar2 = 0;
+		double varDouble2 = 0;
+
+		// variables required to read varDouble #3
+		int *piAddrVar3 = NULL;
+		int intErrVar3 = 0;
+		double varDouble3 = 0;
+
+		// variables required to read varDouble #4
+		int *piAddrVar4 = NULL;
+		int intErrVar4 = 0;
+		double varDouble4 = 0;
+		
+		// variables required to read varDouble #5
+		int *piAddrVar5 = NULL;
+		int intErrVar5 = 0;
+		double varDouble5 = 0;
+
+		// variables required to read varDouble #6
+		int *piAddrVar6 = NULL;
+		int intErrVar6 = 0;
+		double varDouble6 = 0;
+
+		// variables required to read varDouble #7
+		int *piAddrVar7 = NULL;
+		int intErrVar7 = 0;
+		double varDouble7 = 0;
+
+		// variables required to read varDouble #8
+		int *piAddrVar8 = NULL;
+		int intErrVar8 = 0;
+		double varDouble8 = 0;
+
+		// variables required to read varDouble #9
+		int *piAddrVar9 = NULL;
+		int intErrVar9 = 0;
+		double varDouble9 = 0;
+
+		// variables required to read varDouble #10
+		int *piAddrVar10 = NULL;
+		int intErrVar10 = 0;
+		double varDouble10 = 0;
+
+		// variable required to read varMatrix #1
+		int *piAddrVar11 = NULL;
+		int intErrVar11 = 0;
+		int r = 0, c = 0;
+		double *hMat;
+
+		// variables required to read varBool #1
+		int *piAddrVar12 = NULL;
+		int intErrVar12 = 0;
+		int varBool1 = true;	
+
+		// variables required to read varBool #2
+		int *piAddrVar13 = NULL;
+		int intErrVar13 = 0;
+		int varBool2 = false;
+
+		// to get the number of input argument passed in the scilab function		
+		int n = *getNbInputArgument(pvApiCtx);
+
+		// keypoints of the input image
+		vector<KeyPoint> keypoints;
+
+		// image used after converting to grayscale image
+		Mat image;
+		// descriptors of the input image
+		Mat descriptors;
+
+		// matrix used to output the descriptors extracted from the input image
+		double *featureVector = NULL;  
+        	int feature_rows=0;
+        	int feature_cols=0;
+		double numBits = 0;
+        	double numFeatures = 0;
+
+		// matrix used to output the keypoints extracted from the input image
+		double *LocationData = NULL;
+
+		try
+		{
+			// OpenCV functionalities 
+
+			// converting the input images to 8-bit and 1 channel images
+			img.convertTo(img, CV_8U);
+			cvtColor(img, image, CV_BGR2GRAY);
+
+
+			if(n == 1)
+			{
+				// using default OpenCV function values
+				
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create();
+
+				star->detect(image, keypoints);
+
+				// object
+				Ptr<DAISY> model = cv::xfeatures2d::DAISY::create();//using default value for H
+
+				// computing descriptors
+                    		model->compute(image, keypoints, descriptors);
+
+			}
+			else if(n == 13)
+			{
+				// to get varDouble #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrVar1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar1 = getScalarDouble(pvApiCtx, piAddrVar1, &varDouble1);
+				if(intErrVar1)
+				{
+					return intErrVar1;
+				}
+
+				// to get varDouble #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrVar2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar2 = getScalarDouble(pvApiCtx, piAddrVar2, &varDouble2);
+				if(intErrVar2)
+				{
+					return intErrVar2;
+				}
+
+				// to get varDouble #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrVar3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar3 = getScalarDouble(pvApiCtx, piAddrVar3, &varDouble3);
+				if(intErrVar3)
+				{
+					return intErrVar3;
+				}
+
+				// to get varDouble #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrVar4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar4 = getScalarDouble(pvApiCtx, piAddrVar4, &varDouble4);
+				if(intErrVar4)
+				{
+					return intErrVar4;
+				}
+
+				// to get varDouble #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrVar5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar5 = getScalarDouble(pvApiCtx, piAddrVar5, &varDouble5);
+				if(intErrVar5)
+				{
+					return intErrVar5;
+				}
+
+				// to get varDouble #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrVar6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar6 = getScalarDouble(pvApiCtx, piAddrVar6, &varDouble6);
+				if(intErrVar6)
+				{
+					return intErrVar6;
+				}
+
+				// to get varDouble #7
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrVar7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar7 = getScalarDouble(pvApiCtx, piAddrVar7, &varDouble7);
+				if(intErrVar7)
+				{
+					return intErrVar7;
+				}
+
+	
+				// to get varDouble #8
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrVar8);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar8 = getScalarDouble(pvApiCtx, piAddrVar8, &varDouble8);
+				if(intErrVar8)
+				{
+					return intErrVar8;
+				}
+
+				// to get varDouble #9
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrVar9);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar9 = getScalarDouble(pvApiCtx, piAddrVar9, &varDouble9);
+				if(intErrVar9)
+				{
+					return intErrVar9;
+				}
+
+
+				// to get varDouble #10
+				sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrVar10);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar10 = getScalarDouble(pvApiCtx, piAddrVar10, &varDouble10);
+				if(intErrVar10)
+				{
+					return intErrVar10;
+				}
+				
+				// to get varBool #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrVar12);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar12 = getScalarBoolean(pvApiCtx, piAddrVar12, &varBool1);
+				if(intErrVar12)
+				{
+					return intErrVar12;
+				}
+
+				// to get varBool #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrVar13);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar13 = getScalarBoolean(pvApiCtx, piAddrVar13, &varBool2);
+				if(intErrVar13)
+				{
+					return intErrVar13;
+				}
+
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create(varDouble1, varDouble2, varDouble3, varDouble4, varDouble5);
+
+				star->detect(image, keypoints);
+	
+				
+				// object
+				Ptr<DAISY> model = cv::xfeatures2d::DAISY::create((float)varDouble6, varDouble7, varDouble8, varDouble9, varDouble10, Mat(), varBool1, varBool2); //using user given value for H
+
+				// computing descriptors
+                    		model->compute(image, keypoints, descriptors);
+				
+			}
+			else if(n == 14)
+			{
+				// to get varDouble #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrVar1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar1 = getScalarDouble(pvApiCtx, piAddrVar1, &varDouble1);
+				if(intErrVar1)
+				{
+					return intErrVar1;
+				}
+
+				// to get varDouble #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrVar2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar2 = getScalarDouble(pvApiCtx, piAddrVar2, &varDouble2);
+				if(intErrVar2)
+				{
+					return intErrVar2;
+				}
+
+				// to get varDouble #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrVar3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar3 = getScalarDouble(pvApiCtx, piAddrVar3, &varDouble3);
+				if(intErrVar3)
+				{
+					return intErrVar3;
+				}
+
+				// to get varDouble #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrVar4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar4 = getScalarDouble(pvApiCtx, piAddrVar4, &varDouble4);
+				if(intErrVar4)
+				{
+					return intErrVar4;
+				}
+
+				// to get varDouble #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrVar5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar5 = getScalarDouble(pvApiCtx, piAddrVar5, &varDouble5);
+				if(intErrVar5)
+				{
+					return intErrVar5;
+				}
+
+				// to get varDouble #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrVar6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar6 = getScalarDouble(pvApiCtx, piAddrVar6, &varDouble6);
+				if(intErrVar6)
+				{
+					return intErrVar6;
+				}
+
+				// to get varDouble #7
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrVar7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar7 = getScalarDouble(pvApiCtx, piAddrVar7, &varDouble7);
+				if(intErrVar7)
+				{
+					return intErrVar7;
+				}
+
+	
+				// to get varDouble #8
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrVar8);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar8 = getScalarDouble(pvApiCtx, piAddrVar8, &varDouble8);
+				if(intErrVar8)
+				{
+					return intErrVar8;
+				}
+
+				// to get varDouble #9
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrVar9);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar9 = getScalarDouble(pvApiCtx, piAddrVar9, &varDouble9);
+				if(intErrVar9)
+				{
+					return intErrVar9;
+				}
+
+
+				// to get varDouble #10
+				sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrVar10);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar10 = getScalarDouble(pvApiCtx, piAddrVar10, &varDouble10);
+				if(intErrVar10)
+				{
+					return intErrVar10;
+				}
+
+				// reading homographic matrix
+				/* get Address of inputs */
+                      		sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrVar11);
+                        	if (sciErr.iErr)
+                       		{
+                           		printError(&sciErr, 0);
+                            		return 0;
+                        	}
+                    		/* Check that the first input argument is a real matrix (and not complex) */
+                    		if( !isDoubleType(pvApiCtx, piAddrVar11) ||  isVarComplex(pvApiCtx, piAddrVar11) )
+                    		{
+                        		Scierror(999, " Wrong type for input argument #%d: A real matrix expected.\n", fname, 16);
+                        		return 0;
+                    		}
+                    		/* get matrix */
+                    		sciErr = getMatrixOfDouble(pvApiCtx, piAddrVar11, &r, &c, &hMat);
+                    		if (sciErr.iErr)
+                   		{
+                        		printError(&sciErr, 0);
+                       			return 0;
+                    		}
+                    		if(!(r==3 && c==3))
+                    		{
+                   			Scierror(999, " Wrong size for input argument #%d: A 3x3 real matrix expected.\n", fname, 16);
+                    		}
+                    		/*declare vector*/
+                    		vector<double> Homography (r*c);
+                   
+                    		for(int i = 0; i < r; i++) 
+                    		{
+                       			for(int j = 0; j < c; j++) 
+                       			{
+                           			Homography.at(i*c + j) = hMat[i + j*r];
+                           
+                       			} 
+                    		}      
+				
+				// to get varBool #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrVar12);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar12 = getScalarBoolean(pvApiCtx, piAddrVar12, &varBool1);
+				if(intErrVar12)
+				{
+					return intErrVar12;
+				}
+
+				// to get varBool #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrVar13);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar13 = getScalarBoolean(pvApiCtx, piAddrVar13, &varBool2);
+				if(intErrVar13)
+				{
+					return intErrVar13;
+				}
+
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create(varDouble1, varDouble2, varDouble3, varDouble4, varDouble5);
+
+				star->detect(image, keypoints);
+
+				
+				// object
+				Ptr<DAISY> model = cv::xfeatures2d::DAISY::create((float)varDouble6, varDouble7, varDouble8, varDouble9, varDouble10, Homography , varBool1, varBool2); //using user given value for H
+
+				// computing descriptors
+                    		model->compute(image, keypoints, descriptors);
+
+				
+			}				
+				
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+	
+		// to pass the computed desciptors as output in the form of a matrix
+		numBits = descriptors.size[1];
+            	numFeatures = descriptors.size[0];
+		featureVector = (double*)malloc(sizeof(double)*descriptors.size[0]*descriptors.size[1]);
+	        for( int i=0; i<descriptors.size[0]; i++)
+		{
+                	for( int j=0; j<descriptors.size[1]; j++)
+                	{
+                    		*(featureVector + j*descriptors.size[0] + i) = int( descriptors.at<uchar>(i,j));
+                	}
+		}
+                feature_rows = descriptors.size[0];
+                feature_cols = descriptors.size[1];    
+
+		// to pass the detected keypoints as output in the form of a matrix
+		int size = keypoints.size();
+		LocationData = (double *)malloc(sizeof(double) * size * 2);
+   		for(int i = 0; i < size; i++)
+    		{
+        		LocationData[i] = keypoints[i].pt.x;
+        		LocationData[i + size] = keypoints[i].pt.y;
+    		}
+
+		// descriptor
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, feature_rows, feature_cols, featureVector);
+        	if(sciErr.iErr)
+	        {
+        	    printError(&sciErr, 0);
+        	    return 0;
+        	}
+
+		// descriptor bits
+    		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 1, 1, &numBits);
+        	if(sciErr.iErr)
+        	{
+            		printError(&sciErr, 0);
+            		return 0;
+        	}
+
+		// number of descriptors
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 3, 1, 1, &numFeatures);
+	        if(sciErr.iErr)
+	        {
+	            printError(&sciErr, 0);
+	            return 0;
+	        } 
+
+		// keypoints    
+	        sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 4, size, 2, LocationData);
+	        if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+		// number of keypoints
+		createScalarInteger32(pvApiCtx,nbInputArgument(pvApiCtx) + 5, size);
+
+		// to return output to scilab 		
+	        for(int i=1;i<=5;i++)
+	        {
+ 			AssignOutputVariable(pvApiCtx, i) = nbInputArgument(pvApiCtx) + i;   	
+    		}
+
+		// to commit the new variables to the Scilab engine	
+    		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+    
+}
diff --git a/sci_gateway/opencv_detectLATCHDescriptors.cpp b/sci_gateway/opencv_detectLATCHDescriptors.cpp
new file mode 100644
index 0000000..9f01c84
--- /dev/null
+++ b/sci_gateway/opencv_detectLATCHDescriptors.cpp
@@ -0,0 +1,333 @@
+// Authors 
+// Ashish Manatosh Barik, Shubham Lohakare
+//
+#include<iostream>
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/highgui.hpp"
+#include"opencv2/imgproc.hpp"
+#include"opencv2/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/xfeatures2d/nonfree.hpp"
+#include<opencv2/core/utility.hpp>
+#include"opencv2/core/core.hpp"
+#include<string>
+#include<vector>
+#include<stdio.h>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_detectLATCHDescriptors(char* fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 1, 9);
+		CheckOutputArgument(pvApiCtx, 1, 5);
+
+		// input image
+		Mat img;
+
+		// to retrieve the input image from the hypermat that is passed in the scilab function
+		retrieveImage(img, 1);
+
+		// variables required to read varDouble #1
+		int *piAddrVar1 = NULL;
+		int intErrVar1 = 0;
+		double varDouble1 = 0;
+
+		// variables required to read varDouble #2
+		int *piAddrVar2 = NULL;
+		int intErrVar2 = 0;
+		double varDouble2 = 0;
+
+		// variables required to read varDouble #3
+		int *piAddrVar3 = NULL;
+		int intErrVar3 = 0;
+		double varDouble3 = 0;
+
+		// variables required to read varDouble #4
+		int *piAddrVar4 = NULL;
+		int intErrVar4 = 0;
+		double varDouble4 = 0;
+
+		// variables required to read varDouble #5
+		int *piAddrVar5 = NULL;
+		int intErrVar5 = 0;
+		double varDouble5 = 0;
+
+		// variables required to read varDouble #6
+		int *piAddrVar6 = NULL;
+		int intErrVar6 = 0;
+		double varDouble6 = 0;
+
+		// variables required to read varDouble #7
+		int *piAddrVar7 = NULL;
+		int intErrVar7 = 0;
+		double varDouble7 = 0;
+
+
+		// variables required to read varBool #1
+		int *piAddrVar8 = NULL;
+		int intErrVar8 = 0;
+		int varBool1 = true;
+
+		// to get the number of input argument passed in the scilab function			
+		int n = *getNbInputArgument(pvApiCtx);
+
+		// keypoints of the input image
+		vector<KeyPoint> keypoints;
+
+		// image used after converting to grayscale image
+		Mat image;
+		// descriptors of the input image
+		Mat descriptors;
+
+		// matrix used to output the descriptors extracted from the input image
+		double *featureVector = NULL;  
+        	int feature_rows=0;
+        	int feature_cols=0;
+		double numBits = 0;
+        	double numFeatures = 0;
+
+		// matrix used to output the keypoints extracted from the input image
+		double *LocationData = NULL;
+
+		try
+		{
+			// OpenCV functionalities 
+
+			// converting the input images to 8-bit and 1 channel images
+			img.convertTo(img, CV_8U);
+			cvtColor(img, image, CV_BGR2GRAY);
+
+			if(n == 1)
+			{				
+				// using default OpenCV function values
+		
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create();
+
+				star->detect(image, keypoints);
+
+				// object
+				Ptr<LATCH> model = cv::xfeatures2d::LATCH::create();
+ 	
+				// computing descriptors
+				model->compute(image, keypoints, descriptors);
+	
+			}
+			else if(n == 9)
+			{
+				// to get varDouble #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrVar1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar1 = getScalarDouble(pvApiCtx, piAddrVar1, &varDouble1);
+				if(intErrVar1)
+				{
+					return intErrVar1;
+				}
+
+				// to get varDouble #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrVar2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar2 = getScalarDouble(pvApiCtx, piAddrVar2, &varDouble2);
+				if(intErrVar2)
+				{
+					return intErrVar2;
+				}
+
+				// to get varDouble #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrVar3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar3 = getScalarDouble(pvApiCtx, piAddrVar3, &varDouble3);
+				if(intErrVar3)
+				{
+					return intErrVar3;
+				}
+
+				// to get varDouble #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrVar4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar4 = getScalarDouble(pvApiCtx, piAddrVar4, &varDouble4);
+				if(intErrVar4)
+				{
+					return intErrVar4;
+				}
+
+				// to get varDouble #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrVar5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar5 = getScalarDouble(pvApiCtx, piAddrVar5, &varDouble5);
+				if(intErrVar5)
+				{
+					return intErrVar5;
+				}
+
+				// to get varDouble #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrVar6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar6 = getScalarDouble(pvApiCtx, piAddrVar6, &varDouble6);
+				if(intErrVar6)
+				{
+					return intErrVar6;
+				}
+
+				// to get varBool #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrVar7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar7 = getScalarBoolean(pvApiCtx, piAddrVar7, &varBool1);
+				if(intErrVar7)
+				{
+					return intErrVar7;
+				}
+
+
+				// to get varDouble #7
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrVar7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar7 = getScalarDouble(pvApiCtx, piAddrVar7, &varDouble7);
+				if(intErrVar7)
+				{
+					return intErrVar7;
+				}
+
+
+				Ptr<StarDetector> star = cv::xfeatures2d::StarDetector::create(varDouble1, varDouble2, varDouble3, varDouble4, varDouble5);
+
+				star->detect(image, keypoints);
+				
+				// object
+				Ptr<LATCH> model = cv::xfeatures2d::LATCH::create(varDouble6, varBool1, varDouble7);
+
+				//computing descriptors
+				model->compute(image, keypoints, descriptors);	
+				
+			}
+			else
+			{
+				Scierror(999, "wrong value argument #2 passed.");
+				return 0;
+			}				
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+		// to pass the computed desciptors as output in the form of a matrix	
+		numBits = descriptors.size[1];
+            	numFeatures = descriptors.size[0];
+		featureVector = (double*)malloc(sizeof(double)*descriptors.size[0]*descriptors.size[1]);
+	        for( int i=0; i<descriptors.size[0]; i++)
+		{
+                	for( int j=0; j<descriptors.size[1]; j++)
+                	{
+                    		*(featureVector + j*descriptors.size[0] + i) = int( descriptors.at<uchar>(i,j));
+                	}
+		}
+                feature_rows = descriptors.size[0];
+                feature_cols = descriptors.size[1];    
+
+		// to pass the detected keypoints as output in the form of a matrix
+		int size = keypoints.size();
+		LocationData = (double *)malloc(sizeof(double) * size * 2);
+   		for(int i = 0; i < size; i++)
+    		{
+        		LocationData[i] = keypoints[i].pt.x;
+        		LocationData[i + size] = keypoints[i].pt.y;
+    		}
+
+		// descriptor
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, feature_rows, feature_cols, featureVector);
+        	if(sciErr.iErr)
+	        {
+        	    printError(&sciErr, 0);
+        	    return 0;
+        	}
+
+		// descriptor bits
+    		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 1, 1, &numBits);
+        	if(sciErr.iErr)
+        	{
+            		printError(&sciErr, 0);
+            		return 0;
+        	}
+
+		// number of descriptors
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 3, 1, 1, &numFeatures);
+	        if(sciErr.iErr)
+	        {
+	            printError(&sciErr, 0);
+	            return 0;
+	        } 
+    
+		// keypoints
+	        sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 4, size, 2, LocationData);
+	        if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+		// number of keypoints
+		createScalarInteger32(pvApiCtx,nbInputArgument(pvApiCtx) + 5, size);
+
+		// to return output to scilab 		
+	        for(int i=1;i<=5;i++)
+	        {
+ 			AssignOutputVariable(pvApiCtx, i) = nbInputArgument(pvApiCtx) + i;   	
+    		}
+
+		// to commit the new variables to the Scilab engine	
+    		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+    
+}
diff --git a/sci_gateway/opencv_detectSIFTFeatures.cpp b/sci_gateway/opencv_detectSIFTFeatures.cpp
new file mode 100644
index 0000000..ea7a39d
--- /dev/null
+++ b/sci_gateway/opencv_detectSIFTFeatures.cpp
@@ -0,0 +1,265 @@
+// Authors 
+// Ashish Manatosh Barik, Shubham Lohakare
+//
+#include<iostream>
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/highgui.hpp"
+#include"opencv2/imgproc.hpp"
+#include"opencv2/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/xfeatures2d/nonfree.hpp"
+#include<opencv2/core/utility.hpp>
+#include"opencv2/core/core.hpp"
+#include<string>
+#include<vector>
+#include<stdio.h>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_detectSIFTFeatures(char* fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 1, 6);
+		CheckOutputArgument(pvApiCtx, 1, 5);
+
+		// input image
+		Mat img;
+
+		// to retrieve the input image from the hypermat that is passed in the scilab function
+		retrieveImage(img, 1);
+		
+		// variables required to read varDouble #1
+		int *piAddrVar1 = NULL;
+		int intErrVar1 = 0;
+		double varDouble1 = 0;
+
+		// variables required to read varDouble #2
+		int *piAddrVar2 = NULL;
+		int intErrVar2 = 0;
+		double varDouble2 = 0;
+
+		// variables required to read varDouble #3
+		int *piAddrVar3 = NULL;
+		int intErrVar3 = 0;
+		double varDouble3 = 0;
+
+		// variables required to read varDouble #4
+		int *piAddrVar4 = NULL;
+		int intErrVar4 = 0;
+		double varDouble4 = 0;
+
+		// variables required to read varDouble #5
+		int *piAddrVar5 = NULL;
+		int intErrVar5 = 0;
+		double varDouble5 = 0;
+
+		// to get the number of input argument passed in the scilab function
+		int n = *getNbInputArgument(pvApiCtx);
+
+		// image used after converting to grayscale image
+		Mat image;
+		// keypoints of the input image
+		vector<KeyPoint> keypoints;
+		// descriptors of the input image
+		Mat descriptors;
+
+		// matrix used to output the keypoints extracted from the input image
+		double *LocationData = NULL;
+
+		// matrix used to output the descriptors extracted from the input image
+		double *featureVector = NULL;  
+        	int feature_rows=0;
+        	int feature_cols=0;
+		double numBits = 0;
+        	double numFeatures = 0;
+
+		try
+		{
+			// OpenCV functionalities 
+
+			// converting the input images to 8-bit and 1 channel images
+			img.convertTo(img, CV_8U);
+			cvtColor(img, image, CV_BGR2GRAY);
+
+			if(n == 1)
+			{
+				// using default OpenCV function values
+
+				// SIFT object
+				Ptr<SIFT> model = cv::xfeatures2d::SIFT::create();	
+
+				// detecting keypoints and computing descriptors for the respective images
+				model->detectAndCompute(image, Mat(), keypoints, descriptors, false);
+	
+			}
+			else if(n == 6)
+			{
+				// user passed values for OpenCV functions				
+
+				// to get varDouble #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrVar1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar1 = getScalarDouble(pvApiCtx, piAddrVar1, &varDouble1);
+				if(intErrVar1)
+				{
+					return intErrVar1;
+				}
+
+				// to get varDouble #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrVar2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar2 = getScalarDouble(pvApiCtx, piAddrVar2, &varDouble2);
+				if(intErrVar2)
+				{
+					return intErrVar2;
+				}
+
+				// to get varDouble #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrVar3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar3 = getScalarDouble(pvApiCtx, piAddrVar3, &varDouble3);
+				if(intErrVar3)
+				{
+					return intErrVar3;
+				}
+				
+				// to get varDouble #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrVar4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar4 = getScalarDouble(pvApiCtx, piAddrVar4, &varDouble4);
+				if(intErrVar4)
+				{
+					return intErrVar4;
+				}
+
+				// to get varDouble #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrVar5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrVar5 = getScalarDouble(pvApiCtx, piAddrVar5, &varDouble5);
+				if(intErrVar5)
+				{
+					return intErrVar5;
+				}
+
+				// SIFT object
+				Ptr<SIFT> model = cv::xfeatures2d::SIFT::create(varDouble1, varDouble2, varDouble3, varDouble4, varDouble5);	
+
+				// detecting keypoints and computing descriptors for the respective images
+				model->detectAndCompute(image, Mat(), keypoints, descriptors, false);
+
+			}				
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+		// to pass the computed desciptors as output in the form of a matrix
+		numBits = descriptors.size[1];
+            	numFeatures = descriptors.size[0];
+		featureVector = (double*)malloc(sizeof(double)*descriptors.size[0]*descriptors.size[1]);
+	        for( int i=0; i<descriptors.size[0]; i++)
+		{
+                	for( int j=0; j<descriptors.size[1]; j++)
+                	{
+                    		*(featureVector + j*descriptors.size[0] + i) = int( descriptors.at<uchar>(i,j));
+                	}
+		}
+                feature_rows = descriptors.size[0];
+                feature_cols = descriptors.size[1];    
+
+		// to pass the detected keypoints as output in the form of a matrix
+		int size = keypoints.size();
+		LocationData = (double *)malloc(sizeof(double) * size * 2);
+   		for(int i = 0; i < size; i++)
+    		{
+        		LocationData[i] = keypoints[i].pt.x;
+        		LocationData[i + size] = keypoints[i].pt.y;
+    		}
+
+		// descriptor
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, feature_rows, feature_cols, featureVector);
+        	if(sciErr.iErr)
+	        {
+        	    printError(&sciErr, 0);
+        	    return 0;
+        	}
+
+		// descriptor bits
+    		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 1, 1, &numBits);
+        	if(sciErr.iErr)
+        	{
+            		printError(&sciErr, 0);
+            		return 0;
+        	}
+
+		// number of descriptors
+		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 3, 1, 1, &numFeatures);
+	        if(sciErr.iErr)
+	        {
+	            printError(&sciErr, 0);
+	            return 0;
+	        } 
+    
+		// keypoints
+	        sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 4, size, 2, LocationData);
+	        if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+		// number of keypoints
+		createScalarInteger32(pvApiCtx,nbInputArgument(pvApiCtx) + 5, size);
+
+		// to return output to scilab 
+	        for(int i=1;i<=5;i++)
+	        {
+ 			AssignOutputVariable(pvApiCtx, i) = nbInputArgument(pvApiCtx) + i;   	
+    		}
+
+		// to commit the new variables to the Scilab engine	
+    		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+    
+}
+    
diff --git a/sci_gateway/opencv_distanceExtractor.cpp b/sci_gateway/opencv_distanceExtractor.cpp
new file mode 100644
index 0000000..ca01afe
--- /dev/null
+++ b/sci_gateway/opencv_distanceExtractor.cpp
@@ -0,0 +1,337 @@
+/*
+This is the .cpp gateway file for the 'distanceExtractor' scilab function. Overloads two types of distance extractors :
+OpenCV classes:
+1. Ptr< ShapeContextDistanceExtractor > cv::createShapeContextDistanceExtractor (int nAngularBins=12, int nRadialBins=4, float innerRadius=0.2f, float outerRadius=2, int iterations=3, const Ptr< HistogramCostExtractor > &comparer=createChiHistogramCostExtractor(), const Ptr< ShapeTransformer > &transformer=createThinPlateSplineShapeTransformer())
+2. Ptr< ThinPlateSplineShapeTransformer > cv::createThinPlateSplineShapeTransformer (double regularizationParameter=0)
+
+It includes the following OpenCV functions, belonging to the Shape Distance and Matching module of OpenCV 3.0.0 : 
+1. computeDistance (InputArray contour1, InputArray contour2)
+   Compute the shape distance between two shapes defined by its contours.
+*/
+
+#include<iostream>
+#include<string>
+#include<algorithm>
+#include<cstdlib>
+#include<numeric>
+#include"opencv2/opencv.hpp"
+#include"opencv2/shape/shape_distance.hpp"
+#include"opencv2/shape/shape_transformer.hpp"
+#include"opencv2/shape/shape_transformer.hpp"
+#include"opencv2/shape/hist_cost.hpp"
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	static vector<Point> sampleContour(const Mat& image, int n=300)
+	{
+		vector<vector<Point> > _contours;
+		vector<Point> all_points;
+		findContours(image, _contours, RETR_LIST, CHAIN_APPROX_NONE);
+		for(size_t i=0; i< _contours.size(); i++)
+		{
+			for(size_t j=0;j<_contours[i].size();j++)
+			{
+				all_points.push_back(_contours[i][j]);
+			}
+		}
+
+		// if too little points, replicate them
+		int dummy = 0;
+		for(int add=(int)all_points.size();add<n;add++)
+		{
+			// adding dummy values
+			all_points.push_back(all_points[dummy++]);
+		}
+	
+		// sample uniformly
+		random_shuffle(all_points.begin(), all_points.end());
+		vector<Point> sampled;
+		for(int i=0;i<n;i++)
+		{
+			sampled.push_back(all_points[i]);
+		}
+	
+		return sampled;
+	}	
+
+	int opencv_distanceExtractor(char *fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+		int i;
+
+
+		int intErr;
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		double typeOfMethod = 0;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		double nAngularBins = 0;
+
+		// variables required to read argument #5
+		int *piAddr5 = NULL;
+		int intErr5 = 0;
+		double innerRadius = 0;
+
+		// variables required to read argument #6
+		int *piAddr6 = NULL;
+		int intErr6 = 0;
+		double nRadialBins = 0;		
+
+		// variables required to read argument #7
+		int *piAddr7 = NULL;
+		int intErr7 = 0;
+		double outerRadius = 0;
+
+		// variables required to read argument #8
+		int *piAddr8 = NULL;
+		int intErr8 = 0;
+		double iterations = 0;
+
+		// variables required to read argument #9
+		int *piAddr9 = NULL;
+		int intErr9 = 0;
+		double nDummies = 0;
+
+		// variables required to read argument #10
+		int *piAddr10 = NULL;
+		int intErr10 = 0;
+		double dC = 0;
+
+		// variables required to read argument #11
+		int *piAddr11 = NULL;
+		int intErr11 = 0;
+		double rpTps = 0;
+
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 3, 8);
+		CheckOutputArgument(pvApiCtx, 1, 1);
+
+		Mat img1, img2;
+
+		int a = retrieveImage(img1, 1);
+		if(a == 0)
+		{
+			sciprint("Error while retrieving the image1.");
+			return 0;
+		}
+		int b = retrieveImage(img2, 2);
+		if(b == 0)
+		{
+			sciprint("Error while retrieving the image2.");
+		}
+		
+		// to get argument #3
+		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr3 = getScalarDouble(pvApiCtx, piAddr3, &typeOfMethod);
+		if(intErr3)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+	
+		// returned value
+		double dist;
+
+		Size sz2Sh(300, 300);
+
+		Mat image1, image2;
+    		
+
+
+		try
+		{
+			img1.convertTo(img1, CV_8U);
+			cvtColor(img1, image1, CV_BGR2GRAY);
+
+			img2.convertTo(img2, CV_8U);
+			cvtColor(img2, image2, CV_BGR2GRAY);
+	
+        	        vector<Point> c1 = sampleContour(image1);
+        	        vector<Point> c2 = sampleContour(image2);
+
+			// OpenCV functionalitites
+
+			// apply Shape Distant Extractor
+			if(typeOfMethod == 1)
+			{
+				// Shape Context Distant Extractor
+
+
+				// to get the argument #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr4 = getScalarDouble(pvApiCtx, piAddr4, &nAngularBins);
+				if(intErr4)
+				{
+					return intErr4;
+				}
+
+				// to get the argument #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr5 = getScalarDouble(pvApiCtx, piAddr5, &innerRadius);
+				if(intErr5)
+				{
+					return intErr5;
+				}
+			
+
+				// to get the argument #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr6 = getScalarDouble(pvApiCtx, piAddr6, &nRadialBins);
+				if(intErr6)
+				{
+					return intErr6;
+				} 
+	
+				// to get the argument #7
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddr7);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr7 = getScalarDouble(pvApiCtx, piAddr7, &outerRadius);
+				if(intErr7)
+				{
+					return intErr7;
+				}
+	
+				// to get the argument #8
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddr8);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr8 = getScalarDouble(pvApiCtx, piAddr8, &iterations);
+				if(intErr8)
+				{
+					return intErr8;
+				}
+
+				// to get the argument #9
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddr9);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr9 = getScalarDouble(pvApiCtx, piAddr9, &nDummies);
+				if(intErr9)
+				{
+					return intErr9;
+				} 
+	
+				// to get the argument #10
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddr10);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr10 = getScalarDouble(pvApiCtx, piAddr10, &dC);
+				if(intErr10)
+				{
+					return intErr10;
+				}
+	
+				// to get the argument #11
+				sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr11);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr11 = getScalarDouble(pvApiCtx, piAddr11, &rpTps);
+				if(intErr11)
+				{
+					return intErr11;
+				}
+		
+				
+				const Ptr<HistogramCostExtractor>& comparer = createChiHistogramCostExtractor(nDummies, dC);
+				// Smart pointer to a ShapeTransformer, an algorithm that defines the aligning transformation. 
+				const Ptr<ShapeTransformer>& transformer = createThinPlateSplineShapeTransformer(rpTps);	
+
+
+				Ptr<ShapeContextDistanceExtractor> model = createShapeContextDistanceExtractor(nAngularBins, nRadialBins, innerRadius, outerRadius, iterations, comparer, transformer );
+
+
+				dist = model->computeDistance(c1, c2);
+			}
+			else if(typeOfMethod == 2)
+			{
+				// Hausdorff Distant Extractor
+
+				Ptr<HausdorffDistanceExtractor> model = createHausdorffDistanceExtractor();
+
+				dist = model->computeDistance(c1, c2);
+			
+				cout<<dist<<endl;
+			}
+			else
+			{
+				// incorrect input parameter of type-of-method
+				
+				Scierror(999, "Wrong input for Argument #3. Use '1' for 'Shape Context Distance Extractor' and '2' for 'Hausdorff Distance Extractor' \n");
+				
+				return 0;
+			}
+		}	
+		catch(Exception& e)
+		{
+			const char* err = e.what();
+			Scierror(999, "%s", err);
+		}
+
+		intErr = createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, dist);
+		if(intErr)
+		{
+			return intErr;
+		}
+
+		// returning output variable to scilab		
+		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
diff --git a/sci_gateway/opencv_fillConvexPoly.cpp b/sci_gateway/opencv_fillConvexPoly.cpp
new file mode 100644
index 0000000..dd45aff
--- /dev/null
+++ b/sci_gateway/opencv_fillConvexPoly.cpp
@@ -0,0 +1,193 @@
+/*************************************************
+Authors : Abhilasha Sancheti & Sukul Bagai
+**************************************************
+ sample inputs : b=fillconvexpoly(a,points,4,0,0,0,8,0);       (points: [0 0;0 100;100 0; 100 100])
+ fillConvexpoly( image , points , r_value , g_value , b_value , linrtype,shift);
+*************************************************/
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include <sciprint.h>
+  	#include "../common.h"
+  
+  	int opencv_fillConvexPoly(char *fname, unsigned long fname_len)
+  	{
+
+    		SciErr sciErr;
+    		int intErr = 0;
+    		int iRows=0,iCols=0;
+    		int *piAddr = NULL;
+    		int *piAddrNew = NULL;
+    		int *piAddr2  = NULL;
+    		int *piAddr3  = NULL;
+    		int *piAddr4  = NULL;
+    		int *piAddr5  = NULL;
+    		int *piAddr6  = NULL;
+    		int *piAddr7  = NULL;
+    		int *piAddr8  = NULL;
+    		int i,j,k ;
+    		double *pstData = NULL;
+    		double npts ,r_value,g_value ,b_value ,linetype=8 ,shift=0;
+   
+
+    		//checking input argument
+    		CheckInputArgument(pvApiCtx, 8, 8);
+    		CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+    
+		//retreive the value of clockwise parameter 
+    		Mat image;
+    		retrieveImage(image,1);
+    
+		sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return -1;
+    		}
+    		sciErr = getMatrixOfDouble(pvApiCtx, piAddr2, &iRows, &iCols, &pstData);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return -1;
+    		} 
+		///// store values in a contour    
+    		Point *pts = (Point *)malloc(iRows * 2 * sizeof(double));
+    		for( i = 0 ; i < iRows ; i++)
+    		{
+          		pts[i].x = *(pstData + i);
+          		pts[i].y = *(pstData + 1*iRows + i);
+    		}
+   
+  		/// to retrieve the number of points         
+     		sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr3, &npts);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+    		} 
+       
+		//// to retreive the value of r_value
+        	sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr4, &r_value);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+    		} 
+ 
+		/// to retreive the value of g_value
+        	sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+    		if(sciErr.iErr)
+    		{
+       	 		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr5, &g_value);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 5);
+			return -1;
+    		} 
+  
+  		/// to retreive the value of b_value
+        	sciErr = getVarAddressFromPosition(pvApiCtx,6,&piAddr6);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+     		intErr = getScalarDouble(pvApiCtx, piAddr6, &b_value);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 6);
+			return -1;
+    		} 
+  
+		/// to retreive the value of linetype
+        	sciErr = getVarAddressFromPosition(pvApiCtx,7,&piAddr7);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr7, &linetype);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 7);
+			return -1;
+    		} 
+
+		/// to retreive the value of shift
+        	sciErr = getVarAddressFromPosition(pvApiCtx,8,&piAddr8);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr8, &shift);
+    		if(intErr)
+    		{
+       			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 8);
+			return -1;
+    		} 
+    
+   
+		try
+		{
+			// OpenCV Functionalities
+
+	 		// call the fillconvexpoly function of opencv
+    			fillConvexPoly(image,pts,npts,Scalar(r_value,g_value,b_value),linetype,shift);
+		
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		} 
+   
+     		//temp variable was not needed, hence has been discarded
+    		string tempstring = type2str(image.type());
+    		char *checker;
+    		checker = (char *)malloc(tempstring.size() + 1);
+    		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+    		returnImage(checker,image,1); //here, remove the temp as a parameter as it is not needed, and instead add 1 as the third parameter. 1 denotes that the first output       argument will be this variable
+    		free(checker); //free memory taken up by checker
+
+ 
+    		//Assigning the list as the Output Variable
+    		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    
+		//Returning the Output Variables as arguments to the Scilab environment
+    		ReturnArguments(pvApiCtx); 
+    
+		return 0;
+
+ 	}
+
+}
diff --git a/sci_gateway/opencv_gabor.cpp b/sci_gateway/opencv_gabor.cpp
new file mode 100644
index 0000000..ae6df1c
--- /dev/null
+++ b/sci_gateway/opencv_gabor.cpp
@@ -0,0 +1,129 @@
+/*
+ * gabor
+ *
+ * gabor in scilab
+ *
+ */
+
+// Created by Samiran Roy, mail: samiranroy@cse.iitb.ac.in
+// An implementation of gabor method of matlab
+// Usage:
+// gabor(wavelength,orientation) - Generates a gabor kernel with the given wavelength and orientation
+// wavelength: pixels/cycle of the sinusoidal carrier, must be >=2
+// orientation: orientation of the filter in degrees, must be between [0,360]
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+extern "C" 
+{
+	#include "api_scilab.h"
+	#include "Scierror.h"
+	#include "BOOL.h"
+	#include <localization.h>
+	#include "sciprint.h"
+	#include "../common.h"
+
+	int opencv_gabor(char *fname, unsigned long fname_len) 
+	{
+		SciErr sciErr;
+	  	int intErr = 0;
+  		int iRows = 0, iCols = 0;
+  		int *piAddr = NULL;
+  		int *piAddr1 = NULL;
+  		int *piAddr2 = NULL;
+
+  		int error;
+
+  		double wavelength;
+  		double orientation;
+
+  		// Get the number of input arguments
+  		int inputarg = *getNbInputArgument(pvApiCtx);
+
+  		// String holding the second argument
+  		int iRet = 0;
+  		char *pstData = NULL;
+
+  		// Checking input argument
+  		CheckInputArgument(pvApiCtx, 2, 2);
+  		CheckOutputArgument(pvApiCtx, 1, 1);
+
+  		// Geting the wavelength
+  		sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1);
+  		if (sciErr.iErr) 
+		{
+		    	printError(&sciErr, 0);
+    			return 0;
+  		}
+  		intErr = getScalarDouble(pvApiCtx, piAddr1, &wavelength);
+  		if (sciErr.iErr) 
+		{
+    			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 1);
+			return -1;
+  		}
+  		if (wavelength < 2) 
+		{
+    			Scierror(999, "Wavelength must be >=2");
+    			return -1;
+  		}
+  
+		// Getting the orientation
+  		sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return 0;
+  		}
+  		intErr = getScalarDouble(pvApiCtx, piAddr2, &orientation);
+  		if (sciErr.iErr) 
+		{
+    			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+  		}
+  		if ((orientation < 0) || (orientation > 360)) 
+		{
+    			Scierror(999, "Orientation must be in the range [0,360]");
+    			return -1;
+  		}
+
+  		double sigma = (1 / CV_PI) * sqrt(log(2) / 2) * 3 *
+                wavelength;  // calculating sigma following matlab convention
+
+  		orientation = (orientation / 360) * 2 * CV_PI;  // Converting degree to radian
+  		int K_size = 33 + 16 * (wavelength - 2);  //  size of kernel following matlab convention
+
+		Mat new_image;
+
+		try
+		{
+  			new_image = getGaborKernel(cv::Size(K_size, K_size), sigma, orientation, wavelength, 0.5, 0);
+ 		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+  		int temp = nbInputArgument(pvApiCtx) + 1;
+  		string tempstring = type2str(new_image.type());
+  		char *checker;
+  		checker = (char *)malloc(tempstring.size() + 1);
+  		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+  		returnImage(checker, new_image, 1);
+  		free(checker);
+
+  		// Assigning the list as the Output Variable
+  		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+  		// Returning the Output Variables as arguments to the Scilab environment
+  		ReturnArguments(pvApiCtx);
+  		return 0;
+	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_gaussianBlur.cpp b/sci_gateway/opencv_gaussianBlur.cpp
new file mode 100644
index 0000000..f5ae62c
--- /dev/null
+++ b/sci_gateway/opencv_gaussianBlur.cpp
@@ -0,0 +1,149 @@
+/***************************************************
+Author : Sukul Bagai
+****************************************************
+Usage : return_image = gaussianblur(input_image,ksize_height,ksize_width,sigmaX,sigmaY);
+***************************************************/
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+using namespace cv;
+using namespace std;
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include <sciprint.h>
+  	#include "../common.h"
+  
+  	int opencv_gaussianBlur(char *fname, unsigned long fname_len)
+  	{
+
+    		SciErr sciErr;
+    		int intErr = 0;
+    		int iRows=0,iCols=0;
+    		int *piAddr2  = NULL;
+    		int *piAddr3  = NULL;
+    		int *piAddr4  = NULL;
+    		int *piAddr5  = NULL;
+    		int i,j,k;
+    		double ksize_width,ksize_height,sigmaX,sigmaY;
+
+    		//checking input argument
+    		CheckInputArgument(pvApiCtx, 5, 5);
+    		CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+    		Mat image;
+    		retrieveImage(image,1);
+
+    		//for value of ksize_height
+    		sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+   	 	if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+       	 		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr2, &ksize_height);
+    		if(intErr)
+		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+		}
+    		//for value of ksize_width
+    		sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr3, &ksize_width);
+    		if(intErr)
+		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+    		//for value of sigmaX
+    		sciErr = getVarAddressFromPosition(pvApiCtx,4,&piAddr4);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr4, &sigmaX);
+    		if(intErr)
+		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+		}
+    		//for value of sigmaY
+    		sciErr = getVarAddressFromPosition(pvApiCtx,5,&piAddr5);
+    		if (sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr5, &sigmaY);
+    		if(intErr)
+		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 5);
+			return -1;
+		}
+    		//applying checks to input parameters, and assigning default values in case of error
+    		Mat new_image(image.rows,image.cols,CV_8UC3);
+    		if(ksize_height<0)
+    		{
+        		Scierror(999, "Positive Value Required for Height. 1 value was used instead");
+        		ksize_height=1;
+    		}
+    		if(ksize_width<0)
+    		{
+        		Scierror(999, "Positive Value Required for Width. 1 value was used instead");
+        		ksize_width=1;
+    		}
+    		if((int)ksize_height%2==0)
+    		{
+        		ksize_height+=1;
+        		Scierror(999, "Odd Value Required for Height. %f value was used instead",&ksize_height);
+    		}
+    		if((int)ksize_width%2==0)
+    		{
+        		ksize_width+=1;
+        		Scierror(999, "Odd Value Required for Width. %f value was used instead",&ksize_width);
+    		}
+
+		try
+		{
+    			//temporary size variable, to use in function
+    			Size sz(ksize_height,ksize_width);		
+
+    			//void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT )
+    			GaussianBlur(image,new_image,sz,sigmaX,sigmaY);
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+
+    		//returning image
+    		string tempstring = type2str(new_image.type());
+    		char *checker;
+    		checker = (char *)malloc(tempstring.size() + 1);
+    		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+    		returnImage(checker,new_image,1);
+    		free(checker);
+
+    		//Assigning the list as the Output Variable
+    		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    		//Returning the Output Variables as arguments to the Scilab environment
+    		ReturnArguments(pvApiCtx);
+    
+		return 0;
+
+  	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_histogramCostExtractor.cpp b/sci_gateway/opencv_histogramCostExtractor.cpp
new file mode 100644
index 0000000..1ec3e56
--- /dev/null
+++ b/sci_gateway/opencv_histogramCostExtractor.cpp
@@ -0,0 +1,240 @@
+/*
+This is the .cpp gateway file for the 'applyTransformer' scilab function.
+
+OpenCV classes :
+1. Ptr< HistogramCostExtractor > cv::createChiHistogramCostExtractor (int nDummies=25, float defaultCost=0.2f)
+2  Ptr< HistogramCostExtractor > cv::createEMDL1HistogramCostExtractor (int nDummies=25, float defaultCost=0.2f)
+3. Ptr< HistogramCostExtractor > cv::createNormHistogramCostExtractor (int flag=DIST_L2, int nDummies=25, float defaultCost=0.2f)
+
+It includes the following OpenCV functions, belonging to the Shape Distance and Matching module of OpenCV 3.0.0 : 
+1. void buildCostMatrix (InputArray descriptors1, InputArray descriptors2, OutputArray costMatrix)
+
+
+*/
+
+#include<numeric>
+#include"opencv2/core/core.hpp"
+#include"opencv2/highgui/highgui.hpp"
+#include"opencv2/opencv.hpp"
+#include"opencv2/shape.hpp"
+#include"opencv2/imgcodecs.hpp"
+#include"opencv2/imgproc/imgproc.hpp"
+#include"opencv2/features2d/features2d.hpp"
+#include"opencv2/xfeatures2d.hpp"
+#include"opencv2/core/utility.hpp"
+#include<string>
+#include<iostream>
+#include<cstdlib>
+
+using namespace cv;
+using namespace std;
+using namespace cv::xfeatures2d;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_histogramCostExtractor(char *fname, unsigned long fname_len)
+	{
+		// Error management variable
+		SciErr sciErr;
+		int i;
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		double typeOfMethod = 0;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		double nDummies = 0;
+
+		// variables required to read argument #5
+		int *piAddr5 = NULL;
+		int intErr5 = 0;
+		double defaultCost = 0;
+
+		// variables required to read argument #6
+		int *piAddr6 = NULL;
+		int intErr6 = 0;
+		double hessianThreshold = 0;
+
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments) 
+		CheckInputArgument(pvApiCtx, 4, 6);
+		CheckOutputArgument(pvApiCtx, 1, 1);
+		
+		Mat img1, img2;
+
+		int a = retrieveImage(img1, 1);
+		if(a == 0)
+		{
+			sciprint("Error while retrieving the image1.");
+			return 0;
+		}
+		int b = retrieveImage(img2, 2);
+		if(b == 0)
+		{
+			sciprint("Error while retrieving the image2.");
+		}
+
+
+		// to get argument #3
+		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr3 = getScalarDouble(pvApiCtx, piAddr3, &typeOfMethod);
+		if(intErr3)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+		}
+
+		// to get argument #4
+		sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddr6);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr6 = getScalarDouble(pvApiCtx, piAddr6, &hessianThreshold);
+		if(intErr6)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 4);
+			return -1;
+		}
+
+
+		// output costMatrix
+		Mat costMatrix;
+		Mat image1, image2;
+
+		try
+		{
+			// OpenCV functionalitites
+			
+			img1.convertTo(img1, CV_8U);
+			cvtColor(img1, image1, CV_BGR2GRAY);
+
+			img2.convertTo(img2, CV_8U);
+			cvtColor(img2, image2, CV_BGR2GRAY);
+
+			// detecting keypoints & computing descriptors
+        		Ptr<SURF> surf = SURF::create(hessianThreshold);
+        		vector<KeyPoint> keypoints1, keypoints2;
+        		Mat descriptors1, descriptors2;
+        		surf->detectAndCompute(image1, Mat(), keypoints1, descriptors1);
+        		surf->detectAndCompute(image2, Mat(), keypoints2, descriptors2);
+
+			if(typeOfMethod == 1)
+			{
+				
+				// to get the argument #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr4 = getScalarDouble(pvApiCtx, piAddr4, &nDummies);
+				if(intErr4)
+				{
+					return intErr4;
+				}
+		
+				// to get the argument #5
+					sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr5 = getScalarDouble(pvApiCtx, piAddr5, &defaultCost);
+				if(intErr5)
+				{
+					return intErr5;
+				}
+				
+				// Chi Histogram Cost Extractor
+        			Ptr<HistogramCostExtractor> model = createChiHistogramCostExtractor(nDummies, defaultCost);
+
+        			model->buildCostMatrix(descriptors1, descriptors2, costMatrix);
+			}
+			else if(typeOfMethod == 2)
+			{
+				
+				// to get the argument #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddr4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr4 = getScalarDouble(pvApiCtx, piAddr4, &nDummies);
+				if(intErr4)
+				{
+					return intErr4;
+				}
+
+				// to get the argument #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddr5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErr5 = getScalarDouble(pvApiCtx, piAddr5, &defaultCost);
+				if(intErr5)
+				{
+					return intErr5;
+				}
+
+				// EMDL1 Histogram Cost Extractor
+				Ptr<HistogramCostExtractor> model = createEMDL1HistogramCostExtractor(nDummies, defaultCost);
+
+				model->buildCostMatrix(descriptors1, descriptors2, costMatrix);
+			}
+			else if(typeOfMethod == 3)
+			{
+				// Norm Histogram Cost Extractor
+				Ptr<HistogramCostExtractor> model =  createNormHistogramCostExtractor();
+
+				model->buildCostMatrix(descriptors1, descriptors2, costMatrix);
+			}	
+			else
+			{
+				Scierror(999,"Wrong input for Argument #3. Use '1' for 'Chi', '2' for 'EMDL1', and '3' for 'Norm'.\n", 1);
+			}
+		
+		}catch(Exception& e)
+		{
+			const char* err = e.what();
+			Scierror(999, "%s", err);
+		} 
+
+		// to return the output transformed image
+		string tempstring1 = type2str(costMatrix.type());
+		char *checker1;
+		checker1 = (char *)malloc(tempstring1.size() + 1);
+		memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+		returnImage(checker1, costMatrix, 1);
+		free(checker1);		
+
+//		sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, costMatrix.rows, costMatrix.cols, costMatrix);
+			
+		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
diff --git a/sci_gateway/opencv_imGaborFilt.cpp b/sci_gateway/opencv_imGaborFilt.cpp
new file mode 100644
index 0000000..77d2193
--- /dev/null
+++ b/sci_gateway/opencv_imGaborFilt.cpp
@@ -0,0 +1,171 @@
+/*
+ * imgaborfilt
+ *
+ * imgaborfilt in scilab
+ *
+ */
+
+// Created by Samiran Roy, mail: samiranroy@cse.iitb.ac.in
+// An implementation of imgaborfilt in scilab
+// Usage:
+// imgaborfilt(I,wavelength,orientation) : Perform gabor filtering on a grayscale image with given wavelength and orientation 
+// imboxfilt(I,method)
+// method : 'upright' (default)
+// method : 'rotated' The area sums are calulated over a rectangle, which is
+// rotated 45 degrees
+// Known Changes from Matlab:
+/*
+ * 1) None, as of now
+ */
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+using namespace cv;
+using namespace std;
+extern "C" 
+{
+	#include "api_scilab.h"
+	#include "Scierror.h"
+	#include "BOOL.h"
+	#include <localization.h>	
+	#include "sciprint.h"
+	#include "../common.h"
+
+	int opencv_imGaborFilt(char *fname, unsigned long fname_len) 
+	{
+  
+		SciErr sciErr;
+  		int intErr = 0;
+  		int iRows = 0, iCols = 0;
+  		int *piAddr = NULL;
+  		int *piAddr1 = NULL;
+  		int *piAddr2 = NULL;
+  		int *piAddr3 = NULL;
+
+  		int error;
+
+  		double wavelength;
+  		double orientation;
+
+  		int borderType = BORDER_REPLICATE;
+
+  		// Parameters for convolution - Leave these alone
+
+  		/* **********************************************************************************
+   		*/
+
+  		Point anchor;
+  		double delta;
+  		int ddepth;
+
+  		anchor = Point(-1, -1);  // The center is unchanged
+  		delta = 0;               // No value is added to output
+  		ddepth = -1;  // The dimentions of input and output images are the same
+
+  		/* **********************************************************************************
+   		*/
+
+  		// Get the number of input arguments
+  		int inputarg = *getNbInputArgument(pvApiCtx);
+
+  		// String holding the second argument
+  		int iRet = 0;
+  		char *pstData = NULL;
+
+  		// Checking input argument
+  		CheckInputArgument(pvApiCtx, 3, 3);
+  		CheckOutputArgument(pvApiCtx, 1, 1);
+
+  		// Get input image
+
+  		Mat image;
+  		retrieveImage(image, 1);
+
+  		if (image.channels() > 1) 
+		{
+    			sciprint("The image must be grayscale.");
+    			return 0;
+  		}
+
+  		// Getting the wavelength
+  		sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return 0;
+  		}
+		intErr = getScalarDouble(pvApiCtx, piAddr2, &wavelength);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return intErr;
+  		}	
+  		if (wavelength < 2) 
+		{
+    			sciprint("Wavelength must be >=2");
+    			return 0;
+  		}
+
+  		// Getting the orientation
+  		sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return 0;
+  		}
+  		intErr = getScalarDouble(pvApiCtx, piAddr3, &orientation);
+  		if (sciErr.iErr) 
+		{
+    			printError(&sciErr, 0);
+    			return intErr;
+  		}
+		if ((orientation < 0) || (orientation > 360)) 
+		{
+    			sciprint("Orientation must be in the range [0,360]");
+    			return 0;
+  		}
+
+  		double sigma = (1 / CV_PI) * sqrt(log(2) / 2) * 3 *
+                wavelength;  // calculating sigma following matlab convention
+
+  		orientation = (orientation / 360) * 2 * CV_PI;  // Converting degree to radian
+  		int K_size = 33 + 16 * (wavelength - 2);  //  size of kernel following matlab convention
+
+  		Mat kernel = getGaborKernel(cv::Size(K_size, K_size), sigma, orientation, wavelength, 0.5, 0);
+
+  		Mat floatimage;
+		Mat dst;
+  		Mat new_image;
+
+		try
+		{
+  			image.convertTo(floatimage, CV_32F);  // Converting image to float type
+  		
+	  		filter2D(floatimage, new_image, CV_32F, kernel);  // Performing convolution
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+  
+		int temp = nbInputArgument(pvApiCtx) + 1;
+  		string tempstring = type2str(new_image.type());
+  		char *checker;
+  		checker = (char *)malloc(tempstring.size() + 1);
+  		memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+  		returnImage(checker, new_image, 1);
+  		free(checker);
+
+  		// Assigning the list as the Output Variable
+  		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+  		// Returning the Output Variables as arguments to the Scilab environment
+  		ReturnArguments(pvApiCtx);
+  
+		return 0;
+	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_lab2rgb.cpp b/sci_gateway/opencv_lab2rgb.cpp
new file mode 100644
index 0000000..0857cc9
--- /dev/null
+++ b/sci_gateway/opencv_lab2rgb.cpp
@@ -0,0 +1,341 @@
+/* ==================================================================== */
+/* Author :Tess Zacharias, Ashish Manatosh Barik                        */
+/* ==================================================================== */
+/* overloaded function                                                  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a)  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a,String1 Name,String2 value)  */
+/* ==================================================================== */
+/* ==================================================================== */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+ 	#include "../common.h"
+  	#define REF_X .95047; // Observer= 2°, Illuminant= D65
+	#define REF_Y 1.00000;
+	#define REF_Z 1.08883;
+
+	struct Color
+	{
+    		float R,G,B,X,Y,Z,L,a,b;
+	};
+
+	Color lab2rgb1(float L, float a, float b)
+	{
+        
+     		float y = (L + 16) / 116;
+     		float x = a / 500 + y;
+     		float z = y - b / 200;
+     		
+		if( pow( y , 3 ) > 0.008856 )
+      		{
+             		y = pow( y , 3 );
+      		}
+     		else 
+      		{ 
+             		y = ( y - 16 / 116 ) / 7.787;
+      		}
+
+     		if( pow( x , 3 ) > 0.008856 )
+         	{
+             		x = pow( x , 3 );
+         	}
+     		else
+         	{ 
+            		x = ( x - 16 / 116 ) / 7.787;
+         	}
+     
+		if( pow( z , 3 ) > 0.008856 )
+         	{
+            		z = pow( z , 3 );
+         	}
+     		else 
+         	{
+           		z = ( z - 16 / 116 ) / 7.787;
+         	}
+     
+		float X= x *REF_X;
+     		float Y= y *REF_Y;
+     		float Z = z *REF_Z;
+     
+     		float R1=3.240479*X-1.537150*Y -0.498535 *Z;
+     		float G1=-0.969256*X+1.875992 *Y+0.041556* Z;
+     		float B1=0.055648*X-0.204043*Y +1.057311*Z;
+     
+		if( R1 > 0.0031308 )
+			R1 =  1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+     		else
+			R1 = 12.92 * R1;
+     		if( G1 > 0.0031308 )
+			G1 =  1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+     		else
+			G1 = 12.92 * G1;
+     		if( B1 > 0.0031308 )
+        		B1 =  1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+     		else
+			B1 = 12.92 * B1;
+          
+           
+   	 	Color rgb;
+    		rgb.R= R1;
+    		rgb.G= G1;
+    		rgb.B= B1;
+    
+		return rgb;
+
+	} 
+ 
+	Color lab2rgb2(float L, float a, float b,char *s)
+	{
+    		double REF_X1;
+    		double REF_Y1;
+    		double REF_Z1;
+    
+		if(!strcmp(s,"a"))
+    		{
+          		REF_X1=1.0985; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.3558;
+    		}
+    		else if(!strcmp(s,"c"))
+    		{
+             		REF_X1=0.9807; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=1.1822;
+    		}
+    		else if(!strcmp(s,"d50"))
+    		{
+           		REF_X1=0.9642; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.8251;
+    		}
+     		else if(!strcmp(s,"d65"))
+    		{
+            		REF_X1=0.9504;
+          		REF_Y1= 1.0000;
+          		REF_Z1= 1.0888;
+    		}
+    		else if(!strcmp(s,"icc"))
+    		{
+           		REF_X1=0.962; 
+          		REF_Y1=1.000;
+          		REF_Z1= 0.8249;
+    		}
+     		else if(!strcmp(s,"e"))
+    		{
+          		REF_X1=1.000;  
+         	 	REF_Y1=1.000;
+          		REF_Z1=1.000;
+    		}
+     
+     		float y = (L + 16) / 116;
+     		float x = a / 500 + y;
+     		float z = y - b / 200;
+     
+		if( pow( y , 3 ) > 0.008856 )
+      		{
+             		y = pow( y , 3 );
+      		}
+     		else 
+      		{ 
+             		y = ( y - 16 / 116 ) / 7.787;
+      		}
+     		
+		if( pow( x , 3 ) > 0.008856 )
+         	{
+             		x = pow( x , 3 );
+         	}
+     		else
+         	{ 
+            		x = ( x - 16 / 116 ) / 7.787;
+         	}
+     		if( pow( z , 3 ) > 0.008856 )
+         	{
+            		z = pow( z , 3 );
+         	}
+     		else 
+         	{
+           		z = ( z - 16 / 116 ) / 7.787;
+         	}
+     
+		float X= x *REF_X;
+     		float Y= y *REF_Y;
+     		float Z = z *REF_Z;
+     
+		X = X/100.f; //R 0..1
+    	 	Y= Y/100.f; //G 0..1
+     		Z= Z/100.f; //B 0..1
+     
+		float R1=3.240479*X-1.537150*Y -0.498535 *Z;
+     		float G1=-0.969256*X+1.875992 *Y+0.041556* Z;
+     		float B1=0.055648*X-0.204043*Y +1.057311*Z;
+     
+		if( R1 > 0.0031308 )
+			R1 =  1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+     		else
+			R1 = 12.92 * R1;
+     		if( G1 > 0.0031308 )
+			G1 =  1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+     		else
+			G1 = 12.92 * G1;
+     		if( B1 > 0.0031308 )
+        		B1 =  1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+     		else
+			B1 = 12.92 * B1;
+          
+           
+    		Color rgb;
+    		rgb.R= R1*100;
+    		rgb.G= G1*100;
+    		rgb.B= B1*100;
+    
+		return rgb;
+
+	}  
+  
+	int opencv_lab2rgb(char *fname, unsigned long fname_len)
+    	{
+   
+		// Error management variable
+        	SciErr sciErr;
+    		//variable info
+		int iRows		= 0;
+		int iCols		= 0;
+        	int piRows		= 0;
+		int piCols		= 0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	double *value=NULL;
+        	int* piLen		= NULL;
+        	char **val;
+        	int i,j;
+        	int error;
+        	Color out;
+        	double check;
+        	Mat img,dst;
+        	float L,a,b;
+        	int *piAddrNew = NULL;                      
+         	//checking output argument
+          	CheckOutputArgument(pvApiCtx,1,1);
+         	//checking if number of input arguments are 3
+        
+         	int k=0;
+        	// SciErr getMatrixOfDoubleInList(void* _pvCtx, int* _piParent, int _iItemPos, int* _piRows, int* _piCols, double** _pdblReal)
+                double *pstDataR = NULL;
+                double *pstDataG = NULL;
+                double *pstDataB = NULL; 
+                    
+		sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+                if(sciErr.iErr)   
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the R values   
+                sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the G values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the B values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+	        int m=0;
+	        double *r1,*g1,*b1;
+         
+		r1=(double *)malloc(sizeof(double)*iRows*iCols);
+         	g1=(double *)malloc(sizeof(double)*iRows*iCols);
+         	b1=(double *)malloc(sizeof(double)*iRows*iCols);
+
+		try
+		{
+  	              	for(int i=0;i<iRows;i++)
+                      	{
+                		for(int j=0;j<iCols;j++)
+                                {
+                                	L= (pstDataR[k]);
+                                        a= (pstDataG[k]);
+                                        b= (pstDataB[k++]);
+                                          
+					out=lab2rgb1(L,a,b);
+                                                   
+                                        r1[m]=(out.R);
+                                        g1[m]=(out.G);
+                                        b1[m++]=(out.B);  
+                                 }
+                        }
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+                     
+    
+		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+		//Adding the R value matrix to the list
+        	sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r1);
+    		free(r1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the G value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g1);
+    		free(g1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the B value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b1);
+    		free(b1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+              
+             	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ 	           
+		ReturnArguments(pvApiCtx);            
+            
+		return 0;                
+	}
+}
diff --git a/sci_gateway/opencv_lab2uint8.cpp b/sci_gateway/opencv_lab2uint8.cpp
new file mode 100644
index 0000000..c0b9d4a
--- /dev/null
+++ b/sci_gateway/opencv_lab2uint8.cpp
@@ -0,0 +1,177 @@
+/*Function-lab2uint8 
+Author  :Tess Zacharias                                              */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+
+using namespace cv;
+using namespace std;
+  
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+
+	struct Color
+	{
+    		float R,G,B,X,Y,Z,L,a,b;
+	};
+
+	Color lab2uint8(float L, float a, float b)
+	{
+		float R1=round(((255*L)/100));
+  		float G1=round(a+128);
+  		float B1=round(b+128);
+  
+		Color rgb;
+  		rgb.R= R1;
+  		rgb.G = G1;
+  		rgb.B = B1;
+  
+		return rgb;
+
+	} 
+
+ 	int opencv_lab2uint8(char *fname, unsigned long fname_len)
+    	{
+    		// Error management variable
+        	SciErr sciErr;
+    		//variable info
+		int iRows		= 0;
+		int iCols		= 0;
+        	int piRows		= 0;
+		int piCols		= 0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	double *value=NULL;
+        	int* piLen		= NULL;
+        	char **val;
+        	int i,j;
+        	int error;
+        	Color out;
+        	double check;
+        	Mat img,dst;
+        	float L,a,b;
+        	int *piAddrNew = NULL;                      
+         
+		//checking output argument
+          	CheckOutputArgument(pvApiCtx,1,1);
+         	//checking if number of input arguments are 3
+        
+         	int k=0;
+        
+                double *pstDataR = NULL;
+                double *pstDataG = NULL;
+                double *pstDataB = NULL; 
+                    
+		sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+                if(sciErr.iErr)   
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the R values   
+                sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the G values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the B values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+         	int m=0;
+         	double *r1,*g1,*b1;
+         
+		r1=(double *)malloc(sizeof(double)*iRows*iCols);
+         	g1=(double *)malloc(sizeof(double)*iRows*iCols);
+         	b1=(double *)malloc(sizeof(double)*iRows*iCols);
+
+		try
+		{                               
+			for(int i=0;i<iRows;i++)
+                        {
+                        	for(int j=0;j<iCols;j++)
+                                {
+                                	L= (pstDataR[k]);
+                                       	a= (pstDataG[k]);
+                                        b= (pstDataB[k++]);
+                                          
+					out=lab2uint8(L,a,b);
+
+                                        r1[m]=(out.R);
+                                        g1[m]=(out.G);
+                                        b1[m++]=(out.B);  
+                                }
+			}
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+                     
+    
+		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+
+    		//Adding the R value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r1);
+    		free(r1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the G value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g1);
+    		free(g1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the B value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b1);
+    		free(b1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+              
+             	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+            
+		ReturnArguments(pvApiCtx);            
+            
+		return 0;                
+	}
+} 
+
+ 
diff --git a/sci_gateway/opencv_makeHDR.cpp b/sci_gateway/opencv_makeHDR.cpp
new file mode 100644
index 0000000..c0390c5
--- /dev/null
+++ b/sci_gateway/opencv_makeHDR.cpp
@@ -0,0 +1,1418 @@
+/*
+This is the .cpp gateway file for the 'align' scilab function.
+
+OpenCV classes : 
+1. Ptr< CalibrateDebevec > cv::createCalibrateDebevec (int samples=70, float lambda=10.0f, bool random=false)
+2. Ptr< CalibrateRobertson > cv::createCalibrateRobertson (int max_iter=30, float threshold=0.01f)
+3. Ptr< MergeDebevec > 	cv::createMergeDebevec ()
+4. Ptr< MergeMertens > 	cv::createMergeMertens (float contrast_weight=1.0f, float saturation_weight=1.0f, float exposure_weight=0.0f)
+5. Ptr< MergeRobertson > cv::createMergeRobertson ()
+6. Ptr< Tonemap > cv::createTonemap (float gamma=1.0f)
+
+It includes the following OpenCV functions, belonging to the Photo module of OpenCV 3.0.0 : 
+1. void process (InputArrayOfArrays src, OutputArray dst, InputArray times)
+2. void process (InputArrayOfArrays src, OutputArray dst, InputArray times, InputArray response)
+3. void process (InputArrayOfArrays src, OutputArray dst)
+
+*/
+
+#include<iostream>
+#include<string>
+#include<cstdlib>
+#include<numeric>
+#include"opencv2/opencv.hpp"
+#include"opencv2/core.hpp"
+#include"opencv2/highgui.hpp"
+#include"opencv2/imgproc.hpp"
+#include"opencv2/photo.hpp"
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include"api_scilab.h"
+	#include"Scierror.h"
+	#include"BOOL.h"
+	#include<localization.h>
+	#include"sciprint.h"
+	#include"../common.h"
+
+	int opencv_makeHDR(char* fname, unsigned long fname_len)
+	{
+
+		// error management variable
+		SciErr sciErr;
+
+		// Checking number of input and output arguments (enviromnet variable, min arguments, max arguments)
+		CheckInputArgument(pvApiCtx, 10, 17);
+		CheckOutputArgument(pvApiCtx, 2, 2);
+
+		// variables required to read argument #1
+		int *piAddr1 = NULL;
+		int intErr1 = 0;
+		double typeOfMethod = 0;
+		
+		// variables required to read argument #2
+		int *piAddr2 = NULL;
+		int intErr2 = 0;
+		double num = 0;
+
+		// variables required to read exposure #1
+		int *piAddrExp1 = NULL;
+		int intErrExp1 = 0;
+		double ex1 = 0;
+
+		// variables required to read exposure #2
+		int *piAddrExp2 = NULL;
+		int intErrExp2 = 0;
+		double ex2 = 0;
+
+		// variables required to read exposure #3
+		int *piAddrExp3 = NULL;
+		int intErrExp3 = 0;
+		double ex3 = 0;
+
+		// variables required to read exposure #4
+		int *piAddrExp4 = NULL;
+		int intErrExp4 = 0;
+		double ex4 = 0;
+
+		// variables required to read exposure #5
+		int *piAddrExp5 = NULL;
+		int intErrExp5 = 0;
+		double ex5 = 0;
+
+		// variables required to read exposure #6
+		int *piAddrExp6 = NULL;
+		int intErrExp6 = 0;
+		double ex6 = 0;
+
+		// variables required to read argument #3
+		int *piAddr3 = NULL;
+		int intErr3 = 0;
+		double var1 = 0;
+
+		// variables required to read argument #4
+		int *piAddr4 = NULL;
+		int intErr4 = 0;
+		double var2 = 0;
+
+		// variables required to read argument #5
+		int *piAddr5 = NULL;
+		int intErr5 = 0;
+		double var3 = 0;
+
+		// variables required to read argument #6
+		int *piAddr6 = NULL;
+		int intErr6 = 0;
+		int var4 = false;
+		
+		// to get argument #1
+		sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1);
+		if(sciErr.iErr)
+		{
+			printError(&sciErr, 0);
+			return 0;
+		}
+		intErr1 = getScalarDouble(pvApiCtx, piAddr1, &typeOfMethod);
+		if(intErr1)
+		{
+			Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 1);
+			return -1;
+		}
+
+		// to get argument #2
+                sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                intErr2 = getScalarDouble(pvApiCtx, piAddr2, &num);
+                if(intErr2)
+                {
+                        Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+                }
+
+		Mat img1, img2, img3, img4, img5, img6;
+		
+		vector<Mat> images;
+		vector<float> times;
+		Mat response;
+		Mat hdr, hdr8bit;
+		Mat ldr, ldr8bit;
+		Mat fusion;
+
+		try
+		{
+			// OpenCV functionalities
+
+			if(num == 3)
+			{
+				retrieveImage(img1, 3);
+				retrieveImage(img2, 4);
+				retrieveImage(img3, 5);
+
+				img1.convertTo(img1, CV_8U);
+				img2.convertTo(img2, CV_8U);
+				img3.convertTo(img3, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+
+				// to get exposure #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrExp1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp1 = getScalarDouble(pvApiCtx, piAddrExp1, &ex1);
+				if(intErrExp1)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 6);
+					return -1;
+				}
+
+				// to get exposure #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrExp2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp2 = getScalarDouble(pvApiCtx, piAddrExp2, &ex2);
+				if(intErrExp2)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 7);
+					return -1;
+				}		
+
+				// to get exposure #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrExp3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp3 = getScalarDouble(pvApiCtx, piAddrExp3, &ex3);
+				if(intErrExp3)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 8);
+					return -1;
+				}
+
+				times.push_back((float)ex1);
+			        times.push_back((float)ex2);
+			        times.push_back((float)ex3);
+
+				if(typeOfMethod == 1)
+				{
+					// Merge Robertson object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+						return -1;
+					}
+
+					Ptr<CalibrateRobertson> calibrate = createCalibrateRobertson(var1, var2);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else if(typeOfMethod == 2)
+				{
+					// Merge Devevec object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+						return -1;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr6);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr6 = getScalarBoolean(pvApiCtx, piAddr6, &var4);
+					if(intErr6)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+						return -1;
+					}
+
+
+					Ptr<CalibrateDebevec> calibrate	= createCalibrateDebevec(var1, var2, var4);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else if(typeOfMethod == 3)
+				{
+					// Merge Mertens object
+					
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+						return -1;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr5);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr5 = getScalarDouble(pvApiCtx, piAddr5, &var3);
+					if(intErr5)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+						return -1;
+					}
+
+
+					Ptr<MergeMertens> model = createMergeMertens(var1, var2, var3);
+					model->process(images, ldr);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(ldr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, ldr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else
+				{
+					Scierror(999, "Invalid input for typeOfMethod. \n", 1);
+				}
+			}
+			else if(num == 4)
+			{
+				retrieveImage(img1, 3);
+				retrieveImage(img2, 4);
+				retrieveImage(img3, 5);
+				retrieveImage(img4, 6);
+
+				img1.convertTo(img1, CV_8U);
+				img2.convertTo(img2, CV_8U);
+				img3.convertTo(img3, CV_8U);
+				img4.convertTo(img4, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+
+				// to get exposure #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrExp1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp1 = getScalarDouble(pvApiCtx, piAddrExp1, &ex1);
+				if(intErrExp1)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 7);
+					return -1;
+				}
+
+				// to get exposure #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrExp2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp2 = getScalarDouble(pvApiCtx, piAddrExp2, &ex2);
+				if(intErrExp2)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 8);
+					return -1;
+				}		
+
+				// to get exposure #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrExp3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp3 = getScalarDouble(pvApiCtx, piAddrExp3, &ex3);
+				if(intErrExp3)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+					return -1;
+				}
+
+				// to get exposure #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrExp4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp4 = getScalarDouble(pvApiCtx, piAddrExp4, &ex4);
+				if(intErrExp4)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+					return -1;
+				}
+
+
+				times.push_back((float)ex1);
+			        times.push_back((float)ex2);
+			        times.push_back((float)ex3);
+				times.push_back((float)ex4);
+
+				if(typeOfMethod == 1)
+				{
+					// Merge Robertson object
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+						return -1;
+					}
+
+					// to get argument #12
+					sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 12);
+						return -1;
+					}
+
+					Ptr<CalibrateRobertson> calibrate = createCalibrateRobertson(var1, var2);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else if(typeOfMethod == 2)
+				{
+					// Merge Devevec object
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+						return -1;
+					}
+
+					// to get argument #12
+					sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 12);
+						return -1;
+					}
+
+					// to get argument #13
+					sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddr6);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr6 = getScalarBoolean(pvApiCtx, piAddr6, &var4);
+					if(intErr6)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+						return -1;
+					}
+
+
+					Ptr<CalibrateDebevec> calibrate	= createCalibrateDebevec(var1, var2, var4);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+
+				}
+				else if(typeOfMethod == 3)
+				{
+					// Merge Mertens object
+					
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+						return -1;
+					}
+
+					// to get argument #12
+					sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 12);
+						return -1;
+					}
+
+					// to get argument #13
+					sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddr5);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr5 = getScalarDouble(pvApiCtx, piAddr5, &var3);
+					if(intErr5)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 13);
+						return -1;
+					}
+
+
+					Ptr<MergeMertens> model = createMergeMertens(var1, var2, var3);
+					model->process(images, ldr);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(ldr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, ldr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else
+				{
+					Scierror(999, "Invalid input for typeOfMethod. \n", 1);
+				}
+			}
+			else if(num == 5)
+			{
+				retrieveImage(img1, 3);
+				retrieveImage(img2, 4);
+				retrieveImage(img3, 5);
+				retrieveImage(img4, 6);
+				retrieveImage(img5, 7);
+
+				img1.convertTo(img1, CV_8U);
+				img2.convertTo(img2, CV_8U);
+				img3.convertTo(img3, CV_8U);
+				img4.convertTo(img4, CV_8U);
+				img5.convertTo(img5, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+				images.push_back(img5);
+
+				// to get exposure #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrExp1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp1 = getScalarDouble(pvApiCtx, piAddrExp1, &ex1);
+				if(intErrExp1)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 8);
+					return -1;
+				}
+
+				// to get exposure #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrExp2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp2 = getScalarDouble(pvApiCtx, piAddrExp2, &ex2);
+				if(intErrExp2)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+					return -1;
+				}		
+
+				// to get exposure #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrExp3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp3 = getScalarDouble(pvApiCtx, piAddrExp3, &ex3);
+				if(intErrExp3)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+					return -1;
+				}
+
+				// to get exposure #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrExp4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp4 = getScalarDouble(pvApiCtx, piAddrExp4, &ex4);
+				if(intErrExp4)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+					return -1;
+				}
+
+				// to get exposure #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrExp5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp5 = getScalarDouble(pvApiCtx, piAddrExp5, &ex5);
+				if(intErrExp5)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 12);
+					return -1;
+				}
+
+
+				times.push_back((float)ex1);
+			        times.push_back((float)ex2);
+			        times.push_back((float)ex3);
+				times.push_back((float)ex4);
+				times.push_back((float)ex5);
+
+				if(typeOfMethod == 1)
+				{
+					// Merge Robertson object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 13);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 14);
+						return -1;
+					}
+
+					Ptr<CalibrateRobertson> calibrate = createCalibrateRobertson(var1, var2);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+
+				}
+				else if(typeOfMethod == 2)
+				{
+					// Merge Devevec object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 13);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 14);
+						return -1;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddr6);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr6 = getScalarBoolean(pvApiCtx, piAddr6, &var4);
+					if(intErr6)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 15);
+						return -1;
+					}
+
+
+					Ptr<CalibrateDebevec> calibrate	= createCalibrateDebevec(var1, var2, var4);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else if(typeOfMethod == 3)
+				{
+					// Merge Mertens object
+					
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 13);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 14);
+						return -1;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddr5);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr5 = getScalarDouble(pvApiCtx, piAddr5, &var3);
+					if(intErr5)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 15);
+						return -1;
+					}
+
+
+					Ptr<MergeMertens> model = createMergeMertens(var1, var2, var3);
+					model->process(images, ldr);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(ldr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, ldr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+				}
+				else
+				{
+					Scierror(999, "Invalid input for typeOfMethod. \n", 1);
+				}			
+			}
+			else if(num == 6)
+			{
+				retrieveImage(img1, 3);
+				retrieveImage(img2, 4);
+				retrieveImage(img3, 5);
+				retrieveImage(img4, 6);
+				retrieveImage(img5, 7);
+				retrieveImage(img6, 8);
+
+				img1.convertTo(img1, CV_8U);
+				img2.convertTo(img2, CV_8U);
+				img3.convertTo(img3, CV_8U);
+				img4.convertTo(img4, CV_8U);
+				img5.convertTo(img5, CV_8U);
+				img6.convertTo(img6, CV_8U);
+
+				images.push_back(img1);
+				images.push_back(img2);
+				images.push_back(img3);
+				images.push_back(img4);
+				images.push_back(img5);
+				images.push_back(img6);
+
+				// to get exposure #1
+				sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrExp1);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp1 = getScalarDouble(pvApiCtx, piAddrExp1, &ex1);
+				if(intErrExp1)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 9);
+					return -1;
+				}
+
+				// to get exposure #2
+				sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrExp2);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp2 = getScalarDouble(pvApiCtx, piAddrExp2, &ex2);
+				if(intErrExp2)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 10);
+					return -1;
+				}		
+
+				// to get exposure #3
+				sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrExp3);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp3 = getScalarDouble(pvApiCtx, piAddrExp3, &ex3);
+				if(intErrExp3)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 11);
+					return -1;
+				}
+
+				// to get exposure #4
+				sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrExp4);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp4 = getScalarDouble(pvApiCtx, piAddrExp4, &ex4);
+				if(intErrExp4)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 12);
+					return -1;
+				}
+
+				// to get exposure #5
+				sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrExp5);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp5 = getScalarDouble(pvApiCtx, piAddrExp5, &ex5);
+				if(intErrExp5)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 13);
+					return -1;
+				}
+			
+				// to get exposure #6
+				sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrExp6);
+				if(sciErr.iErr)
+				{
+					printError(&sciErr, 0);
+					return 0;
+				}
+				intErrExp6 = getScalarDouble(pvApiCtx, piAddrExp6, &ex6);
+				if(intErrExp6)
+				{
+					Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 14);
+					return -1;
+				}
+
+
+
+				times.push_back((float)ex1);
+			        times.push_back((float)ex2);
+			        times.push_back((float)ex3);
+				times.push_back((float)ex4);
+				times.push_back((float)ex5);
+				times.push_back((float)ex6);
+
+				if(typeOfMethod == 1)
+				{
+					// Merge Robertson object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 15);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 16);
+						return -1;
+					}
+
+					Ptr<CalibrateRobertson> calibrate = createCalibrateRobertson(var1, var2);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+
+
+				}
+				else if(typeOfMethod == 2)
+				{
+					// Merge Devevec object
+
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 15);
+						return -1;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 16);
+						return -1;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 17, &piAddr6);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr6 = getScalarBoolean(pvApiCtx, piAddr6, &var4);
+					if(intErr6)
+					{
+						Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 17);
+						return -1;
+					}
+
+
+					Ptr<CalibrateDebevec> calibrate	= createCalibrateDebevec(var1, var2, var4);
+					calibrate->process(images, response, times);
+
+					Ptr<MergeRobertson> model = createMergeRobertson();
+					model->process(images, hdr, times, response);
+
+					Ptr<Tonemap> tonemap = createTonemap();
+					tonemap->process(hdr, ldr);
+
+					hdr = hdr * 255;
+				        hdr.convertTo(hdr8bit, CV_8U);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(hdr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, hdr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+				
+				}
+				else if(typeOfMethod == 3)
+				{
+					// Merge Mertens object
+					
+					// to get argument #9
+					sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddr3);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr3 = getScalarDouble(pvApiCtx, piAddr3, &var1);
+					if(intErr3)
+					{
+						return intErr3;
+					}
+
+					// to get argument #10
+					sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddr4);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr4 = getScalarDouble(pvApiCtx, piAddr4, &var2);
+					if(intErr3)
+					{
+						return intErr3;
+					}
+
+					// to get argument #11
+					sciErr = getVarAddressFromPosition(pvApiCtx, 17, &piAddr5);
+					if(sciErr.iErr)
+					{
+						printError(&sciErr, 0);
+						return 0;
+					}
+					intErr5 = getScalarDouble(pvApiCtx, piAddr5, &var3);
+					if(intErr5)
+					{
+						return intErr5;
+					}
+
+
+					Ptr<MergeMertens> model = createMergeMertens(var1, var2, var3);
+					model->process(images, ldr);
+
+					ldr = ldr*255;
+				        ldr.convertTo(ldr8bit, CV_8U);
+
+					// to return the output HDR image
+					string tempstring1 = type2str(ldr8bit.type());
+					char *checker1;
+					checker1 = (char *)malloc(tempstring1.size() + 1);
+					memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+					returnImage(checker1, ldr8bit, 1);
+					free(checker1);
+					AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+					// to return the output LDR image
+					string tempstring2 = type2str(ldr8bit.type());
+					char *checker2;
+					checker2 = (char *)malloc(tempstring2.size() + 1);
+					memcpy(checker2, tempstring2.c_str(), tempstring2.size() + 1);
+					returnImage(checker2, ldr8bit, 2);
+					free(checker2);
+					AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+
+					
+				}
+				else
+				{
+					Scierror(999, "Invalid input for typeOfMethod. \n", 1);
+				}			
+			}			
+			
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}				
+
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
+	
+		
+			
diff --git a/sci_gateway/opencv_ntsc2rgb.cpp b/sci_gateway/opencv_ntsc2rgb.cpp
new file mode 100644
index 0000000..d427858
--- /dev/null
+++ b/sci_gateway/opencv_ntsc2rgb.cpp
@@ -0,0 +1,190 @@
+/* ==================================================================== */
+/* Author  :Tess Zacharias, Ashish Manatosh Barik                       */
+/* ==================================================================== */
+/* overloaded function                                                  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a)  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a,String1 Name,String2 value)  */
+/* ==================================================================== */
+/* ==================================================================== */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+ 	#include "../common.h"
+  	#define REF_X .95047; // Observer= 2°, Illuminant= D65
+  	#define REF_Y 1.00000;
+  	#define REF_Z 1.08883;
+
+	struct Color
+	{
+    		float R,G,B,Y,I,Q;
+	};
+
+
+	Color ntsc2rgb1(float Y, float I, float Q)
+	{
+        
+        	// float y=Y/255.0;
+        	// float i=I/255.0;
+        	// float q=Q/255.0;
+        	 float r= 1.000*Y+0.956*I+0.621*Q;
+        	 float g =1.000*Y-0.272*I-0.647*Q;
+        	 float b =1.000*Y-1.106*I+1.703*Q;
+        	 
+            
+    		Color rgb;
+    		rgb.R= r;
+    		rgb.G= g;
+    		rgb.B= b;
+    		
+		return rgb;
+
+	} 
+ 
+	int opencv_ntsc2rgb(char *fname, unsigned long fname_len)
+    	{
+    		// Error management variable
+        	SciErr sciErr;
+    		//variable info
+		int iRows		= 0;
+		int iCols		= 0;
+        	int piRows		= 0;
+		int piCols		= 0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	double *value=NULL;
+        	int* piLen		= NULL;
+        	char **val;
+        	int i,j;
+        	int error; 
+		Color out;
+        	double check;
+        	Mat img,dst;
+        	float Y,I,Q;
+        	int *piAddrNew = NULL;                      
+         	//checking output argument
+          	CheckOutputArgument(pvApiCtx,1,1);
+         	//checking if number of input arguments are 3
+        
+         	int k=0;
+                double *pstDataR = NULL;
+                double *pstDataG = NULL;
+                double *pstDataB = NULL; 
+                    
+		sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+                if(sciErr.iErr)   
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the R values   
+                sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the G values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the B values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+	        int m=0;
+         	double *r,*g,*b;
+         
+		r=(double *)malloc(sizeof(double)*iRows*iCols);
+         	g=(double *)malloc(sizeof(double)*iRows*iCols);
+         	b=(double *)malloc(sizeof(double)*iRows*iCols);
+                               
+		try
+		{
+
+			for(int i=0;i<iRows;i++)
+                        {
+                        	for(int j=0;j<iCols;j++)
+                                {
+                                	
+                                        Y= (pstDataR[k]);
+                                        I= (pstDataG[k]);
+                                        Q= (pstDataB[k++]);
+                                        
+					out=ntsc2rgb1(Y,I,Q);
+                                                
+                                        r[m]=(out.R);
+                                        g[m]=(out.G);
+                                        b[m++]=(out.B);  
+                                }
+                         }
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}			
+
+                     
+    		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the R value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r);
+    		free(r);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the G value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g);
+    		free(g);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the B value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b);
+    		free(b);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+              
+             	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+            	ReturnArguments(pvApiCtx);            
+            
+		return 0;                
+	}
+} 
+
+ 
diff --git a/sci_gateway/opencv_rgb2lab.cpp b/sci_gateway/opencv_rgb2lab.cpp
new file mode 100644
index 0000000..3e7184a
--- /dev/null
+++ b/sci_gateway/opencv_rgb2lab.cpp
@@ -0,0 +1,271 @@
+/*  function-rgb2lab
+ Author :Tess Zacharias, Ashish Manatosh Barik      */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include "../common.h"
+  	#define REF_X .95047; // Observer= 2°, Illuminant= D65
+  	#define REF_Y 1.00000;
+  	#define REF_Z 1.08883;
+
+	struct Color
+	{
+    		float R,G,B,X,Y,Z,Ls,as,bs,r,g,b;
+	};
+
+	Color rgb2lab1(float R, float G, float B)	
+	{
+        
+        	float r = R/255.f; //R 0..1
+         	float g = G/255.f; //G 0..1
+         	float b = B/255.f; //B 0..1
+         	float eps = 216.f/24389.f;
+         	float k = 24389.f/27.f;
+         	float  fx,fy,fz;
+         
+		if (r <= 0.04045)
+	        	r = r/12.92;
+         	else
+             		r = (float)pow((r+0.055)/1.055,2.4);
+         	if (g <= 0.04045)
+             		g = g/12.92;
+         	else
+             		g = (float)pow((g+0.055)/1.055,2.4);
+         	if (b <= 0.04045)
+             		b = b/12.92;
+         	else
+             		b = (float)pow((b+0.055)/1.055,2.4);
+         
+		float X =  0.4124*r     + 0.3576*g + 0.1805*b;
+         	float Y =  0.2126*r     + 0.7152 *g + 0.0722 *b;
+         	float Z =  0.0193*r     + 0.1192*g + 0.9505 *b;
+         	float xr = X/REF_X;
+         	float yr = Y/REF_Y;
+         	float zr = Z/REF_Z;
+         
+		if ( xr > eps )
+	        	fx =  (float)pow(xr, 1/3.);
+         	else
+            		fx = (float) ((k * xr + 16.) / 116.);
+         	if ( yr > eps )
+            		fy =  (float)pow(yr, 1/3.);
+         	else
+            		fy = (float) ((k * yr + 16.) / 116.);
+         	if ( zr > eps )
+            		fz =  (float)pow(zr, 1/3.);
+         	else
+            		fz = (float) ((k * zr + 16.) / 116);
+    
+		Color lab;
+    		lab.Ls= ( 116 * fy ) - 16;
+    		lab.as= 500*(fx-fy);
+    		lab.bs= 200*(fy-fz);
+    
+		return lab;
+
+	} 
+ 
+	Color rgb2lab2(float R, float G, float B,char *s)
+	{
+    		double REF_X1;
+    		double REF_Y1;
+    		double REF_Z1;
+    
+		if(!strcmp(s,"a"))
+    		{
+          		REF_X1=1.0985; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.3558;
+    		}
+    		else if(!strcmp(s,"c"))
+    		{
+             		REF_X1=0.9807; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=1.1822;
+    		}
+    		else if(!strcmp(s,"d50"))
+    		{
+           		REF_X1=0.9642; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.8251;
+    		}
+     		else if(!strcmp(s,"d65"))
+    		{
+            		REF_X1=0.9504;
+          		REF_Y1= 1.0000;
+          		REF_Z1= 1.0888;
+    		}
+    		else if(!strcmp(s,"icc"))
+    		{
+           		REF_X1=0.962; 
+          		REF_Y1=1.000;
+          		REF_Z1= 0.8249;
+    		}
+     		else if(!strcmp(s,"e"))
+    		{
+          		REF_X1=1.000;  
+          		REF_Y1=1.000;
+          		REF_Z1=1.000;
+    		}
+         
+		float eps = 216.f/24389.f;
+         	float k = 24389.f/27.f;
+         	float  fx,fy,fz,X,Y,Z,xr,yr,zr;
+         	float r = R/255.f; //R 0..1
+         	float g = G/255.f; //G 0..1
+        	float b = B/255.f; //B 0..1
+         
+		if (r <= 0.04045)
+             		r = r/12.92;
+         	else
+            		r = (float)pow((r+0.055)/1.055,2.4);
+         	if (g <= 0.04045)
+             		g = g/12.92;
+         	else
+             		g = (float)pow((g+0.055)/1.055,2.4);
+         	if (b <= 0.04045)
+             		b = b/12.92;
+         	else
+             		b = (float)pow((b+0.055)/1.055,2.4);
+         
+		X =  0.4124*r     + 0.3576*g + 0.1805*b;
+	        Y =  0.2126*r     + 0.7152 *g + 0.0722 *b;
+         	Z =  0.0193*r     + 0.1192*g + 0.9505 *b;
+         	xr = X/REF_X1;
+         	yr = Y/REF_Y1;
+         	zr = Z/REF_Z1;
+         
+		if ( xr > eps )
+            		fx =  (float)pow(xr, 1/3.);
+         	else
+            		fx = (float) ((k * xr + 16.) / 116.);
+         	if ( yr > eps )
+            		fy =  (float)pow(yr, 1/3.);
+         	else
+            		fy = (float) ((k * yr + 16.) / 116.);
+         	if ( zr > eps )
+            		fz =  (float)pow(zr, 1/3.);
+         	else
+            		fz = (float) ((k * zr + 16.) / 116);
+        
+		Color lab;
+        	lab.Ls= ( 116 * fy ) - 16;
+        	lab.as= 500*(fx-fy);
+        	lab.bs= 200*(fy-fz);
+        
+		return lab;
+
+	}  
+
+	int opencv_rgb2lab(char *fname, unsigned long fname_len)
+    	{
+    		// Error management variable
+        	SciErr sciErr;
+    		//variable info
+		int iRows		= 0;
+		int iCols		= 0;
+        	int piRows		= 0;
+		int piCols		= 0;
+        	int* piAddr2=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	int* piaddr=NULL;
+        	char *value=NULL;
+        	int* piLen		= NULL;
+        	char **val;
+        	int i,j;
+        	int error;
+        	Color out;
+        	double check;
+        	Mat img;
+        	float R,G,B;
+        	int *piAddrNew = NULL;                      
+        
+		CheckOutputArgument(pvApiCtx,1,1);
+
+	        int m=0;
+	        retrieveImage(img,1);
+	        double *r1,*g1,*b1;
+	
+	        r1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+	        g1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+	        b1=(double *)malloc(sizeof(double)*img.rows*img.cols);
+
+		try
+		{		
+		
+	        	for(int i=0;i<img.rows;i++)  
+	        	{
+            			for(int j=0;j<img.cols;j++)
+               			{
+                  			Vec3b intensity = img.at<Vec3b>(i,j);
+                  			R= intensity.val[2];
+                  			G= intensity.val[1];
+                  			B= intensity.val[0];
+                  			out=rgb2lab1(R,G,B);
+                  			r1[m]=out.Ls;
+                  			g1[m]=out.as;
+                  			b1[m++]=out.bs;  
+                  		}
+          		}
+
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+    
+		//creating the list that will be passed to the Scilab enviroment
+    		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the R value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, img.rows,img.cols, r1);
+    		free(r1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the G value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, img.rows, img.cols, g1);
+    		free(g1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+       			return 0;
+    		}
+    		//Adding the B value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, img.rows, img.cols, b1);
+    		free(b1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}  
+
+	            AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+	            ReturnArguments(pvApiCtx);            
+	            return 0;                
+	}
+}
diff --git a/sci_gateway/opencv_ssim.cpp b/sci_gateway/opencv_ssim.cpp
new file mode 100644
index 0000000..d6f5a89
--- /dev/null
+++ b/sci_gateway/opencv_ssim.cpp
@@ -0,0 +1,106 @@
+/********************************************************
+Author: Dhruti Shah
+********************************************************
+Usage: ssim_value = ssim (image, reference)
+Example:
+  val = ssim(image, ref)
+********************************************************/
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+using namespace cv;
+using namespace std;
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include "sciprint.h"
+  	#include "../common.h"
+
+  	int opencv_ssim(char *fname, unsigned long fname_len)
+  	{
+
+    		SciErr sciErr;
+    		int intErr = 0;
+        
+    		//checking input argument
+    		CheckInputArgument(pvApiCtx, 2, 2);
+    		CheckOutputArgument(pvApiCtx, 1, 1) ;
+
+    		// Get the input image from the Scilab environment
+    		Mat image;
+    		retrieveImage(image, 1);
+
+    		Mat ref;
+    		retrieveImage(ref, 2);
+
+    		double mean_img=0, mean_ref=0, std_img=0, std_ref=0, covar=0, mean_xy=0;		
+    		int no_of_pixels = image.rows * image.cols;
+		double value;
+
+		try
+		{
+    			for (int i = 0; i < image.rows; ++i)
+    			{
+      				for (int j = 0; j < image.cols; ++j)
+      				{
+        				mean_img += image.at<uchar>(i,j);
+        				mean_ref += ref.at<uchar>(i,j);
+        				mean_xy += (image.at<uchar>(i,j)*ref.at<uchar>(i,j));
+      				}
+    			}	
+
+    
+			mean_img = mean_img/no_of_pixels;
+	    		mean_ref = mean_ref/no_of_pixels;
+	    		mean_xy = mean_xy/no_of_pixels;
+	    
+			covar = mean_xy - (mean_img * mean_ref);
+
+	    		for(int m = 0; m < image.rows; ++m)
+	    		{
+	      			for(int n = 0; n < image.cols; ++n)
+	      			{
+	        			std_img += ( (image.at<uchar>(m,n) - mean_img) * (image.at<uchar>(m,n) - mean_img) );
+	        			std_ref += ( (ref.at<uchar>(m,n) - mean_ref) * (ref.at<uchar>(m,n) - mean_ref) );
+	      			}
+	    		}
+
+	    		std_ref = std_ref/no_of_pixels;
+	    		std_ref = sqrt(std_ref);
+	
+	    		std_img = std_img/no_of_pixels;
+	    		std_img = sqrt(std_img);
+
+    
+	    		value = ( (2*mean_img*mean_ref) + 0.0001 ) * ( (2*covar) + 0.0009 );
+	    		value = value / ( ((mean_img*mean_img) + (mean_ref*mean_ref) + 0.0001) * ((std_img*std_img) + (std_ref*std_ref) + 0.0009) );
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+
+
+    		intErr = createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1,value);
+    		if(intErr)
+    		{
+        		return intErr;
+    		}
+
+    		//Assigning the list as the Output Variable
+    		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+    		//Returning the Output Variables as arguments to the Scilab environment
+    		ReturnArguments(pvApiCtx);
+    
+    		return 0;
+
+  	}
+/* ==================================================================== */
+}
diff --git a/sci_gateway/opencv_wiener2.cpp b/sci_gateway/opencv_wiener2.cpp
new file mode 100644
index 0000000..f7de4fb
--- /dev/null
+++ b/sci_gateway/opencv_wiener2.cpp
@@ -0,0 +1,214 @@
+/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+Created By: Riddhish Bhalodia
+Date: 14th October 2015
+
+Usage:
+
+void wiener2(Mat img,int n, double sigma)
+
+1)  img   : Input image, grayscale only
+2)  n     : filt size
+3)  sigma : noise var, if sigma = 0 then the variance is estimated from data
+
+*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+using namespace cv;
+using namespace std;
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include "sciprint.h"
+  	#include "../common.h"
+
+  	int opencv_wiener2(char *fname, unsigned long fname_len)
+	{
+	
+		SciErr sciErr;
+    		int intErr = 0;
+    		int iRows=0,iCols=0;
+    		int *piAddr = NULL;
+    		int *piAddrNew = NULL;
+    		int *piAddr2  = NULL;
+    		int *piAddr3  = NULL;
+    		double n;
+    		double sigma;
+    
+    
+		Mat img;
+    
+		//checking input argument
+    		CheckInputArgument(pvApiCtx, 3, 3);
+    		CheckOutputArgument(pvApiCtx, 1, 1) ;
+	
+		retrieveImage(img, 1);
+		//for value of the scale factor
+    
+		sciErr = getVarAddressFromPosition(pvApiCtx,2,&piAddr2);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr2, &n);
+    		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 2);
+			return -1;
+    		}   
+
+    		sciErr = getVarAddressFromPosition(pvApiCtx,3,&piAddr3);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		intErr = getScalarDouble(pvApiCtx, piAddr3, &sigma);
+    		if(intErr)
+    		{
+        		Scierror(999, "gateway crashed abruptly while reading input argument #%d.", 3);
+			return -1;
+   	 	}   
+
+    		// The error checks for the function
+    		if(n != round(n) || n<=0 || int(n)%2==0)
+    		{
+        		Scierror(999, "The value of n must be an odd integer \n");
+        		return 0;
+    		}
+
+    		Mat out = Mat::zeros(img.size(),img.type());
+		sigma=255*255*sigma;
+	
+		if(img.channels() !=1)
+		{
+			Scierror(999, "Grayscale images only!");
+			return 0;
+		}
+
+		try
+		{
+	
+			int i_min,i_max,j_min,j_max;
+			int w = (n-1)/2;
+	
+			if(sigma==0)
+			{
+				double noise_est = 0;
+				
+				for(int i=0;i<img.rows;i++)
+				{
+					for(int j=0;j<img.cols;j++)
+					{
+						i_min = max(i-w,0);
+					        i_max = min(i+w,img.rows-1);
+					        j_min = max(j-w,0);
+					        j_max = min(j+w,img.cols-1);
+
+					        // find mean of the patch
+					        double mean = 0;
+					        for(int ii=i_min;ii<(i_max+1);ii++)
+						{
+					        	for(int jj=j_min;jj<(j_max+1);jj++)
+							{
+					        		mean = mean + ((double)img.at<uchar>(ii,jj));
+	
+					        	}
+					        }
+
+					        mean = mean/(n*n);
+			        
+					        double var=0;
+		
+					        for(int ii=i_min;ii<(i_max+1);ii++)
+						{
+					        	for(int jj=j_min;jj<(j_max+1);jj++)
+							{
+					        		var = var + ((double)img.at<uchar>(ii,jj))*((double)img.at<uchar>(ii,jj));
+					        	}
+					        }
+	
+					        var = var/(n*n);
+					        var = var - mean*mean;
+					        noise_est = noise_est + var;
+					}
+				}
+	
+				noise_est = noise_est/(img.rows*img.cols);
+				sigma = noise_est;
+			}
+
+			for(int i=0;i<img.rows;i++)
+			{
+				for(int j=0;j<img.cols;j++)
+				{
+					i_min = max(i-w,0);
+				        i_max = min(i+w,img.rows-1);
+				        j_min = max(j-w,0);
+				        j_max = min(j+w,img.cols-1);
+	
+				        // find mean of the patch
+				        double mean = 0;
+				        for(int ii=i_min;ii<(i_max+1);ii++)
+					{
+				        	for(int jj=j_min;jj<(j_max+1);jj++)
+						{
+				        		mean = mean + ((double)img.at<uchar>(ii,jj));
+	
+				        	}
+				        }
+
+				        mean = mean/(n*n);
+	
+				        // find variance of the patch
+				        double var=0;
+				        for(int ii=i_min;ii<(i_max+1);ii++)
+					{
+				        	for(int jj=j_min;jj<(j_max+1);jj++)
+						{
+				        		var = var + ((double)img.at<uchar>(ii,jj))*((double)img.at<uchar>(ii,jj));
+				        	}
+				        }
+				        var = var/(n*n);
+				        var = var - mean*mean;
+			        
+				        double temp;
+				        double sum=0;
+			        
+				       	temp = mean + (fmax(0,(var - sigma))/fmax(var,sigma))*(((double)img.at<uchar>(i,j)) - mean);
+				        out.at<uchar>(i,j) = temp;
+				}
+			}
+
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}
+			
+	
+		// out is the return image
+		string tempstring = type2str(out.type());
+	  	char *checker;
+	    	checker = (char *)malloc(tempstring.size() + 1);
+	    	memcpy(checker, tempstring.c_str(), tempstring.size() + 1);
+	    	returnImage(checker,out,1);
+	    	free(checker); 
+	    	//Assigning the list as the Output Variable
+	    	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+	
+		ReturnArguments(pvApiCtx);
+		    
+		return 0;
+
+	  }
+}
diff --git a/sci_gateway/opencv_xyz2double.cpp b/sci_gateway/opencv_xyz2double.cpp
new file mode 100644
index 0000000..9403d1e
--- /dev/null
+++ b/sci_gateway/opencv_xyz2double.cpp
@@ -0,0 +1,90 @@
+// Authors
+// Ashish Manatosh Barik, NIT Rourkela	
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+#include<math.h>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+	#include "../common.h"
+
+	int opencv_xyz2double(char *fname, unsigned long fname_len)	
+	{
+ 		// Error management variable
+        	SciErr sciErr;
+		
+		// to read input data as a color space
+		Mat img;
+
+		// to get the input array as a list of rgb values
+		retrieveImage(img, 1);
+
+		if(img.cols > 3 || img.cols < 3)
+		{
+			Scierror(999, "inpput should be a M by 3 or M by N by 3 \n", 1);
+			return -1;
+		}
+
+		int type = img.type();
+		if(type != 2)
+		{
+			// if input is not uint16, no conversion takes places.
+			
+			// to return the output 
+			string tempstring1 = type2str(img.type());
+			char *checker1;
+			checker1 = (char *)malloc(tempstring1.size() + 1);
+			memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+			returnImage(checker1, img, 1);
+			free(checker1);
+			AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+			ReturnArguments(pvApiCtx);
+
+			return 0;
+		}
+
+		// output
+		Mat image;
+
+		try
+		{
+			// OpenCV functionalities
+
+			// conversion to double precision with proper scaling
+			img.convertTo(image, CV_64FC3, 1.0/32768);
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}	
+
+		// to return the output 
+		string tempstring1 = type2str(image.type());
+		char *checker1;
+		checker1 = (char *)malloc(tempstring1.size() + 1);
+		memcpy(checker1, tempstring1.c_str(), tempstring1.size() + 1);
+		returnImage(checker1, image, 1);
+		free(checker1);
+		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+		ReturnArguments(pvApiCtx);
+
+		return 0;
+	}
+}
+	
diff --git a/sci_gateway/opencv_xyz2lab.cpp b/sci_gateway/opencv_xyz2lab.cpp
new file mode 100644
index 0000000..ab9ea9d
--- /dev/null
+++ b/sci_gateway/opencv_xyz2lab.cpp
@@ -0,0 +1,213 @@
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+
+using namespace cv;
+using namespace std;
+
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include "../common.h"
+  	#define REF_X .9504; // Observer= 2°, Illuminant= D65
+  	#define REF_Y 1.00000;
+  	#define REF_Z 1.08883;
+
+    	struct Color
+    	{
+    		float R,G,B,X,Y,Z,L,a,b;
+    	};
+
+    	Color xyz2lab3(float X,float Y, float Z)
+    	{
+    		float eps = 216.f/24389.f;
+    		float k = 24389.f/27.f;
+    		float fx,fy,fz,Ls,as,bs;
+    		float xr=X/REF_X;
+    		float yr=Y/REF_Y;
+    		float zr=Z/REF_Z;
+    
+		if (xr > eps)
+          		fx =  (float)pow(xr, 1/3.);
+    		else
+          		fx = (float) ((k * xr + 16.) / 116.);
+    		if (yr > eps)
+          		fy =  (float)pow(yr, 1/3.);
+    		else
+          		fy = (float) ((k * yr + 16.) / 116.);
+    		if (zr > eps)
+          		fz =  (float)pow(zr, 1/3.);
+   	 	else
+         		fz = (float) ((k * zr + 16.) / 116);
+         
+		Ls = ( 116 * fy ) - 16;
+         	as = 500*(fx-fy);
+         	bs = 200*(fy-fz); 
+    
+		Color lab;
+    		lab.L =Ls; 
+    		lab.a =as;
+    		lab.b =bs;
+    		return lab;
+    	}
+ 
+ 
+    	int opencv_xyz2lab(char *fname, unsigned long fname_len)
+    	{
+        	// Error management variable
+        	SciErr sciErr;
+        	//variable info
+		int iRows=0;
+		int iCols=0;
+		int iRows1=0;
+		int iCols1=0;
+		int iRows2=0;
+		int iCols2=0;
+		int iRows3=0;
+		int iCols3=0;
+        	int piRows=0;
+		int piCols=0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	double *value=NULL;
+        	double *pstDataR = NULL;
+        	double *pstDataG = NULL;
+        	double *pstDataB = NULL; 
+        	int* piLen= NULL;
+        	char **val;
+        	int i,j;
+        	int error;
+        	Color out;
+        	double check;
+        	Mat img,dst;
+        	float R,G,B;
+        	int *piAddrNew = NULL;
+        	double *r,*g,*b; 
+        	int k=0;                     
+        	//checking output argument
+        	CheckOutputArgument(pvApiCtx,1,1);
+        
+		//retrive address of the list       
+        	sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+        	if(sciErr.iErr)   
+        	{
+          		printError(&sciErr, 0);
+          		return 0;
+        	}
+        	//retrive the matrix of the R values   
+        	sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+		if(iRows*iCols != 1 && iRows*iCols %3 != 0)
+		{
+			Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+		}
+        	if(sciErr.iErr)
+        	{
+           		Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+        	}
+        	//retrive the matrix of the G values 
+        	sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+		if(iRows*iCols != 1 && iRows*iCols %3 != 0)
+		{
+			Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+		}		
+        	if(sciErr.iErr)
+        	{
+           		Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+        	}  
+        	//retrive the matrix of the B values 
+        	sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+		if(iRows*iCols != 1 && iRows*iCols %3 != 0)
+		{
+			Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+		}
+        	if(sciErr.iErr)
+        	{
+           		Scierror(999, " Color values to convert, specified as a P-by-3 matrix of color values (one color per row), an M-by-N-by-3 image array.");
+			return -1;
+        	}
+
+        	//dynamically allocating memory to varibles
+        	r=(double *)malloc(sizeof(double)*iRows*iCols);
+        	g=(double *)malloc(sizeof(double)*iRows*iCols);
+        	b=(double *)malloc(sizeof(double)*iRows*iCols);
+
+		try
+		{
+			// Conversion
+        
+			for(int i=0;i<iRows;i++)
+	        	{
+           			for(int j=0;j<iCols;j++)
+             			{                                       
+                 			R=(pstDataR[k]);
+                 			G=(pstDataG[k]);
+                 			B= (pstDataB[k++]);
+                 	
+					out=xyz2lab3(R,G,B); 
+     
+                 			r[j*iRows+i]=(out.L);
+                 			g[j*iRows+i]=(out.a);
+                 			b[j*iRows+i]=(out.b);  
+              			}
+        		}
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}		
+
+                      
+        	// creating a list
+		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+        	if(sciErr.iErr)
+        	{
+           		printError(&sciErr, 0);
+           		return 0;
+        	}
+        	//Adding the R value matrix to the list to be returned
+        	sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r);
+        	free(r);
+        	if(sciErr.iErr)
+        	{
+           		printError(&sciErr, 0);
+           		return 0;
+        	}
+        	//Adding the G value matrix to the list to be returned
+        	sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g);
+        	free(g);
+        	if(sciErr.iErr)
+        	{
+            		printError(&sciErr, 0);
+            		return 0;
+        	}
+        	//Adding the B value matrix to the list to be returned
+        	sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b);
+        	free(b);
+        	if(sciErr.iErr)
+        	{
+           		printError(&sciErr, 0);
+           		return 0;
+        	}      
+        	
+		AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+
+	        ReturnArguments(pvApiCtx);            
+
+	        return 0;                
+        }                      
+}
diff --git a/sci_gateway/opencv_xyz2rgb.cpp b/sci_gateway/opencv_xyz2rgb.cpp
new file mode 100644
index 0000000..b8d6b73
--- /dev/null
+++ b/sci_gateway/opencv_xyz2rgb.cpp
@@ -0,0 +1,279 @@
+/* ==================================================================== */
+/* Author :Tess Zacharias, Ashish Manatosh Barik                       */
+/* =================================================================== */
+/* overloaded function                                                  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a)  */
+/* Syntax : return_matrix_3_xyz_values=lab2xyz(matrix_of_3_labvalues a,String1 Name,String2 value)  */
+/* ==================================================================== */
+/* ==================================================================== */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+using namespace cv;
+using namespace std;
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+ 	#include "../common.h"
+  	#define REF_X .95047; // Observer= 2°, Illuminant= D65
+	#define REF_Y 1.00000;
+	#define REF_Z 1.08883;
+
+	struct Color
+	{
+    		float X,Y,Z,R,G,B;
+	};
+
+	Color xyz2rgb1(float X, float Y, float Z)
+	{
+        
+         	float x = X; 
+         	float y = Y; 
+         	float z = Z; 
+         	float R1 = 3.2404542*x-1.5371385*y-0.4985314*z;
+         	float G1 =-0.9692660*x+1.8760108*y+0.0415560 *z;
+         	float B1 = 0.0556434*x-0.2040259*y+1.0572252*z;
+         
+		if( R1 > 0.0031308 )
+			R1 =  1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+		else
+			R1 = 12.92 * R1;
+	        if( G1 > 0.0031308 )
+			G1 =  1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+	 	else
+			G1 = 12.92 * G1;
+         	if( B1 > 0.0031308 )
+			B1 =  1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+	 	else
+			B1= 12.92 * B1;
+    
+    		Color rgb;
+    		rgb.R= R1;
+    		rgb.G= G1;
+    		rgb.B= B1;
+    		return rgb;
+
+	} 
+ 
+	Color xyz2rgb2(float X, float Y, float Z,char *s)
+	{
+		double REF_X1;
+    		double REF_Y1;
+    		double REF_Z1;
+    
+		if(!strcmp(s,"a"))
+    		{
+          		REF_X1=1.0985; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.3558;
+    		}
+    		else if(!strcmp(s,"c"))
+    		{
+             		REF_X1=0.9807; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=1.1822;
+    		}
+    		else if(!strcmp(s,"d50"))
+    		{
+           		REF_X1=0.9642; 
+          		REF_Y1= 1.0000;
+          		REF_Z1=0.8251;
+    		}
+     		else if(!strcmp(s,"d65"))
+    		{
+            		REF_X1=0.9504;
+          		REF_Y1= 1.0000;
+          		REF_Z1= 1.0888;
+    		}
+    		else if(!strcmp(s,"icc"))
+    		{
+           		REF_X1=0.962; 
+          		REF_Y1=1.000;
+          		REF_Z1= 0.8249;
+    		}
+     		else if(!strcmp(s,"e"))
+    		{
+          		REF_X1=1.000;  
+          		REF_Y1=1.000;
+         		REF_Z1=1.000;
+    		}
+         	float x = X; 
+         	float y = Y; 
+         	float z = Z;
+         	float R1 = 3.2406*x-1.5372*y-0.4986*z;
+         	float G1 =-0.9689*x+1.8758*y+0.0415 *z;
+         	float B1 = 0.0557*x-0.2040*y+1.0570*z;
+         	if( R1 > 0.0031308 )
+			R1 =  1.055 * ( pow( R1, 1./2.4 ) ) - 0.055;
+	 	else
+			R1 = 12.92 * R1;
+         	if( G1 > 0.0031308 )
+			G1 =  1.055 * ( pow( G1, 1./2.4 ) ) - 0.055;
+	 	else
+			G1 = 12.92 * G1;
+         	if( B1 > 0.0031308 )
+			B1 =  1.055 * ( pow( B1, 1./2.4 ) ) - 0.055;
+	 	else
+			B1= 12.92 * B1;
+         
+         
+		Color rgb;
+    		rgb.R= R1;
+    		rgb.G= G1;
+    		rgb.B= B1;
+    		return rgb;
+
+	}  
+  
+	int opencv_xyz2rgb(char *fname, unsigned long fname_len)
+    	{
+   		
+		// Error management variable
+	        SciErr sciErr;
+		//variable info
+	
+		int iRows		= 0;
+		int iCols		= 0;
+        	int piRows		= 0;
+		int piCols		= 0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	double *value=NULL;
+        	int* piLen		= NULL;
+        	char **val;
+        	int i,j;
+        	int error;
+        	Color out;
+        	double check;
+        	Mat img,dst;
+        	float X,Y,Z;
+        	int *piAddrNew = NULL;                      
+         
+		//checking output argument
+	        CheckOutputArgument(pvApiCtx,1,1);
+        
+         	int k=0;
+        
+                double *pstDataR = NULL;
+                double *pstDataG = NULL;
+                double *pstDataB = NULL; 
+
+		//retrive address of the list
+                sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+                if(sciErr.iErr)   
+                {
+                	printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the R values   
+                sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive the matrix of the G values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+                //retrive address of the list
+                sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+                if(sciErr.iErr)   
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }   
+                //retrive the matrix of the B values 
+                sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+                if(sciErr.iErr)
+                {
+                        printError(&sciErr, 0);
+                        return 0;
+                }
+
+	        int m=0;
+         	double *r,*g,*b;
+         	
+		r=(double *)malloc(sizeof(double)*iRows*iCols);
+         	g=(double *)malloc(sizeof(double)*iRows*iCols);
+         	b=(double *)malloc(sizeof(double)*iRows*iCols);
+
+		try
+		{
+			// conversion               		
+
+                	for(int i=0;i<iRows;i++)
+                	{
+                		for(int j=0;j<iCols;j++)
+                        	{
+                        		// Vec3d intensity = img.at<Vec3d>(i,j);
+                        	        X= (pstDataR[k]);
+                        	        Y= (pstDataG[k]);
+                        	        Z= (pstDataB[k++]);
+                        	     
+					out=xyz2rgb1(X,Y,Z);
+                        	                         
+                        	        r[m]=(out.R);
+                        	        g[m]=(out.G);
+                        	        b[m++]=(out.B);  
+                        	           
+				}
+                	}
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}		
+                     
+    		// creating a list
+		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the R value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r);
+    		free(r);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the G value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g);
+    		free(g);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		//Adding the B value matrix to the list
+    		sciErr = createMatrixOfDoubleInList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b);
+    		free(b);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+              
+             	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+            
+		ReturnArguments(pvApiCtx);            
+            	return 0;                
+	}
+}
diff --git a/sci_gateway/opencv_xyz2uint16.cpp b/sci_gateway/opencv_xyz2uint16.cpp
new file mode 100644
index 0000000..dcd9fa1
--- /dev/null
+++ b/sci_gateway/opencv_xyz2uint16.cpp
@@ -0,0 +1,170 @@
+/*--------------------------------------  
+ function-lab2uint16
+ Author :Tess Zacharias, Ashish Manatosh Barik    
+------------------------------------- */
+#include <numeric>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/opencv.hpp"
+#include <iostream>
+#include<stdio.h>
+#include <sciprint.h>
+#include<string.h>
+using namespace cv;
+using namespace std;
+extern "C"
+{
+	#include "api_scilab.h"
+  	#include "Scierror.h"
+  	#include "BOOL.h"
+  	#include <localization.h>
+  	#include "../common.h"
+  
+	struct Color
+  	{
+    		float R,G,B,X,Y,Z;
+  	};
+
+ 	Color xyz2uint16(float X, float Y, float Z)
+ 	{
+  		/* xyz to uint16 conversion  */
+  		float R1=round((65535 * (X / (1 + (32767/32768))))/2);
+  		float G1=round((65535 * (Y / (1 + (32767/32768))))/2);
+  		float B1=round((65535 * (Z / (1 + (32767/32768))))/2);
+  
+  		Color rgb;
+  		rgb.R = R1;
+  		rgb.G = G1;
+  		rgb.B = B1;
+    		return rgb;
+ 	}
+
+	int opencv_xyz2uint16(char *fname, unsigned long fname_len)
+ 	{
+        	SciErr sciErr;
+  		int iRows= 0;
+		int iCols= 0;
+        	int* piAddr=NULL;
+        	int* piAddr1=NULL;
+        	int* piAddr3=NULL;
+        	int i,j;
+        	int error;
+        	Color out;
+        	float X,Y,Z;
+        	int *piAddrNew = NULL;                      
+        	
+		CheckOutputArgument(pvApiCtx,1,1);
+        
+		int k=0;
+	        double *pstDataR = NULL;
+	        double *pstDataG = NULL;
+	        double *pstDataB = NULL; 
+
+	        sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+	        if(sciErr.iErr)   
+	        {
+			printError(&sciErr, 0);
+	               	return 0;
+	        }
+	        sciErr =  getMatrixOfDoubleInList(pvApiCtx, piAddr, 1, &iRows, &iCols, &pstDataR);
+        	if(sciErr.iErr)
+          	{
+               		printError(&sciErr, 0);
+               		return 0;
+          	}
+	
+        	sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+        	if(sciErr.iErr)   
+          	{
+               		printError(&sciErr, 0);
+               		return 0;
+          	}   
+        	sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 2, &iRows, &iCols, &pstDataG);
+        	if(sciErr.iErr)
+          	{
+               		printError(&sciErr, 0);
+               		return 0;
+          	}
+        
+		sciErr = getVarAddressFromPosition(pvApiCtx,1,&piAddr);
+        	if(sciErr.iErr)   
+          	{
+               		printError(&sciErr, 0);
+               		return 0;
+          	}   
+         	sciErr = getMatrixOfDoubleInList(pvApiCtx, piAddr, 3, &iRows, &iCols, &pstDataB);
+         	if(sciErr.iErr)
+          	{
+               		printError(&sciErr, 0);
+               		return 0;
+          	}
+         	
+		int m=0;
+	        unsigned short *r1,*g1,*b1;
+         	
+		r1=(unsigned short *)malloc(sizeof(unsigned short )*iRows*iCols);
+	        g1=(unsigned short  *)malloc(sizeof(unsigned short )*iRows*iCols);
+         	b1=(unsigned short  *)malloc(sizeof(unsigned short )*iRows*iCols);
+
+		try
+		{
+         
+			for(int i=0;i<iRows;i++)
+	        	{
+             			for(int j=0;j<iCols;j++)
+              			{
+                   			X = (pstDataR[k]);
+                   			Y = (pstDataG[k]);
+                   			Z = (pstDataB[k++]);
+                   			out = xyz2uint16(X,Y,Z);
+                   			r1[m] = (out.R);
+                   			g1[m] = (out.G);
+                   			b1[m++] = (out.B);  
+                		}
+            		}
+		}
+		catch(Exception& e)
+		{
+			const char* err=e.what();
+			Scierror(999, "%s", err);
+		}		
+	
+                     
+    		
+		sciErr = createList(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, &piAddrNew);
+		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 1, iRows,iCols, r1);
+    		free(r1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 2, iRows, iCols, g1);
+    		free(g1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+    		sciErr = createMatrixOfUnsignedInteger16InList(pvApiCtx, nbInputArgument(pvApiCtx)+1 , piAddrNew, 3, iRows, iCols, b1);
+    		free(b1);
+    		if(sciErr.iErr)
+    		{
+        		printError(&sciErr, 0);
+        		return 0;
+    		}
+
+              
+             	AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+            
+		ReturnArguments(pvApiCtx);            
+            
+		return 0;                
+	}
+}
+