Commit 01d93ed8 authored by remicres's avatar remicres
Browse files

ADD: improve application parameters

Showing with 32 additions and 11 deletions
+32 -11
...@@ -44,7 +44,8 @@ private: ...@@ -44,7 +44,8 @@ private:
"Full Lambda Schedule and Baatz & Schape criterion."); "Full Lambda Schedule and Baatz & Schape criterion.");
AddParameter(ParameterType_InputImage, "in", "Input Image"); AddParameter(ParameterType_InputImage, "in", "Input Image");
// AddParameter(ParameterType_OutputImage, "out", "Ouput Label Image"); AddParameter(ParameterType_OutputImage, "out", "Ouput Label Image");
SetDefaultOutputPixelType("out", ImagePixelType_uint32);
// AddParameter(ParameterType_Choice, "criterion", "Homogeneity criterion to use"); // AddParameter(ParameterType_Choice, "criterion", "Homogeneity criterion to use");
// AddChoice("criterion.bs", "Baatz & Schape"); // AddChoice("criterion.bs", "Baatz & Schape");
...@@ -71,9 +72,13 @@ private: ...@@ -71,9 +72,13 @@ private:
// For large scale // For large scale
AddParameter(ParameterType_Directory, "tmpdir", "temporary directory for tiles and graphs"); AddParameter(ParameterType_Directory, "tmpdir", "temporary directory for tiles and graphs");
AddParameter(ParameterType_Int, "tsizex", "tile width"); AddParameter(ParameterType_Choice, "tiling", "Tiling layout for the large scale segmentation");
AddParameter(ParameterType_Int, "tsizey", "tile height"); AddChoice("tiling.auto", "Automatic tiling layout");
AddParameter(ParameterType_Int, "nfirstiter", "number of first iterations"); AddChoice("tiling.user", "User tiling layout");
AddParameter(ParameterType_Int, "tiling.user.sizex", "Tiles width");
AddParameter(ParameterType_Int, "tiling.user.sizey", "Tiles height");
AddParameter(ParameterType_Int, "tiling.user.nfirstiter", "Number of first iterations");
AddParameter(ParameterType_Int, "tiling.user.memory", "Available memory");
} }
void DoUpdateParameters() void DoUpdateParameters()
...@@ -95,18 +100,24 @@ private: ...@@ -95,18 +100,24 @@ private:
using SegmenterType = lsrm::BaatzSegmenter<ImageType>; using SegmenterType = lsrm::BaatzSegmenter<ImageType>;
using ControllerType = lsgrm::Controller<SegmenterType>; using ControllerType = lsgrm::Controller<SegmenterType>;
ImageType::Pointer inputImage = GetParameterFloatVectorImage("in");
ControllerType controller; ControllerType controller;
controller.SetInputImage(GetParameterFloatVectorImage("in")); controller.SetInputImage(inputImage);
controller.SetTileDirectory(GetParameterAsString("tmpdir"));
controller.SetTemporaryDirectory(GetParameterAsString("tmpdir")); controller.SetTemporaryDirectory(GetParameterAsString("tmpdir"));
controller.SetOutputGraphDirectory(GetParameterAsString("tmpdir"));
// Memory configuration // Memory configuration
controller.SetInternalMemoryAvailable(0); // 0 = automatic if (GetParameterInt("tiling") == 0)
controller.SetTileWidth(GetParameterInt("tsizex")); {
controller.SetTileHeight(GetParameterInt("tsizey")); controller.SetInternalMemoryAvailable(0); // 0 = automatic
controller.SetNumberOfFirstIterations(GetParameterInt("nfirstiter")); }
else
{
controller.SetTileWidth(GetParameterInt("tiling.user.sizex"));
controller.SetTileHeight(GetParameterInt("tiling.user.sizey"));
controller.SetNumberOfFirstIterations(GetParameterInt("tiling.user.nfirstiter"));
controller.SetInternalMemoryAvailable(GetParameterInt("tiling.user.memory"));
}
// MPI configuration // MPI configuration
#ifdef OTB_USE_MPI #ifdef OTB_USE_MPI
...@@ -124,8 +135,18 @@ private: ...@@ -124,8 +135,18 @@ private:
float thres = GetParameterFloat("threshold"); float thres = GetParameterFloat("threshold");
controller.SetThreshold(thres*thres); controller.SetThreshold(thres*thres);
// Run the segmentation
controller.RunSegmentation(); controller.RunSegmentation();
// Output images
UInt32ImageType::Pointer labelImage = controller.GetLabeledClusteredOutput();;
// Set output image projection, origin and spacing for labelImage
labelImage->SetProjectionRef(inputImage->GetProjectionRef());
labelImage->SetOrigin(inputImage->GetOrigin());
labelImage->SetSpacing(inputImage->GetSpacing());
SetParameterOutputImage<UInt32ImageType>("out", labelImage);
} }
void AfterExecuteAndWriteOutputs() void AfterExecuteAndWriteOutputs()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment