From 1a4015c984a78391499b57c5f56027207e49100e Mon Sep 17 00:00:00 2001
From: Rashad Kanavath <rashad.kanavath@c-s.fr>
Date: Fri, 20 Mar 2015 15:53:16 +0100
Subject: [PATCH] TEST: test for numpy support

Signed-off-by: Rashad Kanavath <rashad.kanavath@c-s.fr>
---
 .../Wrappers/SWIG/test/python/CMakeLists.txt  |  5 ++
 .../SWIG/test/python/PythonNumpyTest.py       | 56 +++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 Modules/Wrappers/SWIG/test/python/PythonNumpyTest.py

diff --git a/Modules/Wrappers/SWIG/test/python/CMakeLists.txt b/Modules/Wrappers/SWIG/test/python/CMakeLists.txt
index e51c82f85d..0290809a79 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 0000000000..228e176b92
--- /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()
-- 
GitLab