diff --git a/Modules/Wrappers/SWIG/test/python/CMakeLists.txt b/Modules/Wrappers/SWIG/test/python/CMakeLists.txt
index e51c82f85da0a7b73c9dc8c0ad552ca388706733..0290809a79e984041e6a9baada7dbe2d149b047c 100644
--- a/Modules/Wrappers/SWIG/test/python/CMakeLists.txt
+++ b/Modules/Wrappers/SWIG/test/python/CMakeLists.txt
@@ -72,3 +72,8 @@ add_test( NAME pyTvBandMathInXML
                   ${TEMP}/pyTvBandMathInXML.tif
                   )
 
+add_test( NAME pyTvNumpyIO
+          COMMAND ${TEST_DRIVER} Execute
+                  ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/PythonNumpyTest.py
+                  ${OTB_DATA_ROOT}/Input/poupees.tif
+                  ${TEMP}/pyTvNumpyIO_ )
diff --git a/Modules/Wrappers/SWIG/test/python/PythonNumpyTest.py b/Modules/Wrappers/SWIG/test/python/PythonNumpyTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..228e176b92f1a16a598ea34b5966074d0337a4fe
--- /dev/null
+++ b/Modules/Wrappers/SWIG/test/python/PythonNumpyTest.py
@@ -0,0 +1,56 @@
+import sys
+import os
+#from scipy import misc
+
+import numpy as np
+import otbApplication
+
+#from PIL import Image as PILImage
+
+inFile = sys.argv[1]
+prefix = sys.argv[2]
+# pilimage = PILImage.open(inFile)
+# npimage = np.asarray(pilimage)
+# print npimage.dtype
+
+ExtractROI = otbApplication.Registry.CreateApplication("ExtractROI")
+ExtractROI.SetParameterString("in", inFile)
+ExtractROI.SetParameterInt("startx", 10)
+ExtractROI.SetParameterInt("starty", 10)
+ExtractROI.SetParameterInt("sizex", 250)
+ExtractROI.SetParameterInt("sizey", 250)
+
+#Bug or Design ?.
+#Anyway below two is needed only for ExtractROI application
+ExtractROI.SetParameterUserValue("sizex", True)
+ExtractROI.SetParameterUserValue("sizey", True)
+ExtractROI.Execute()
+
+ExtractROIOut = ExtractROI.GetVectorImageAsNumpyArray("out", 'float')
+
+#write RGB image to file via python
+#misc.imsave('ExtractROIOut.jpg', ExtractROIOut)
+
+Rescale = otbApplication.Registry.CreateApplication("Rescale")
+#take numpy array from ExtractROI and feed into Rescale
+Rescale.SetVectorImageFromNumpyArray("in", ExtractROIOut)
+Rescale.SetParameterFloat("outmin", 50, True)
+Rescale.SetParameterFloat("outmax", 100, True)
+Rescale.Execute()
+
+RescaleOut = Rescale.GetVectorImageAsNumpyArray("out", 'float')
+#misc.imsave('RescaleOut.jpg', RescaleOut)
+
+Convert = otbApplication.Registry.CreateApplication("Convert")
+#take numpy output from Rescale application and feed into Convert
+Convert.SetVectorImageFromNumpyArray("in", RescaleOut)
+Convert.SetParameterString("out", "ConvertOut.png")
+Convert.ExecuteAndWriteOutput()
+ConvertOut = Convert.GetVectorImageAsNumpyArray("out", 'float')
+
+Smoothing = otbApplication.Registry.CreateApplication("Smoothing")
+#take numpy output from Convert application and feed into Smoothing
+Smoothing.SetVectorImageFromNumpyArray("in", ConvertOut)
+Smoothing.SetParameterString("type", 'anidif')
+Smoothing.SetParameterString("out", prefix + "SmoothingOut.png")
+Smoothing.ExecuteAndWriteOutput()