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()