Commit 9b83bdac authored by Remi Cresson's avatar Remi Cresson
Browse files

ADD: no-data value for input sources

Showing with 18 additions and 4 deletions
+18 -4
......@@ -70,11 +70,14 @@ public:
InputImageSource m_ImageSource;
SizeType m_PatchSize;
std::string m_Placeholder;
float m_NodataValue;
bool m_HasNodata;
// Parameters keys
std::string m_KeyIn; // Key of input image list
std::string m_KeyPszX; // Key for samples sizes X
std::string m_KeyPszY; // Key for samples sizes Y
std::string m_KeyPszX; // Key for receptive field size in X
std::string m_KeyPszY; // Key for receptive field size in Y
std::string m_KeyND; // Key for no-data value
std::string m_KeyPHName; // Key for placeholder name in the tensorflow model
};
......@@ -93,7 +96,8 @@ public:
ss_key_in, ss_desc_in,
ss_key_dims_x, ss_desc_dims_x,
ss_key_dims_y, ss_desc_dims_y,
ss_key_ph, ss_desc_ph;
ss_key_ph, ss_desc_ph,
ss_key_nd, ss_desc_nd;
// Parameter group key/description
ss_key_group << "source" << inputNumber;
......@@ -104,12 +108,14 @@ public:
ss_key_dims_x << ss_key_group.str() << ".rfieldx";
ss_key_dims_y << ss_key_group.str() << ".rfieldy";
ss_key_ph << ss_key_group.str() << ".placeholder";
ss_key_nd << ss_key_group.str() << ".nodata";
// Parameter group descriptions
ss_desc_in << "Input image (or list to stack) for source #" << inputNumber;
ss_desc_dims_x << "Input receptive field (width) for source #" << inputNumber;
ss_desc_dims_y << "Input receptive field (height) for source #" << inputNumber;
ss_desc_ph << "Name of the input placeholder for source #" << inputNumber;
ss_desc_nd << "No-data value for pixels of source #" << inputNumber;
// Populate group
AddParameter(ParameterType_Group, ss_key_group.str(), ss_desc_group.str());
......@@ -122,6 +128,8 @@ public:
SetDefaultParameterInt (ss_key_dims_y.str(), 1);
AddParameter(ParameterType_String, ss_key_ph.str(), ss_desc_ph.str());
MandatoryOff (ss_key_ph.str());
AddParameter(ParameterType_Float, ss_key_nd.str(), ss_desc_nd.str());
MandatoryOff (ss_key_nd.str());
// Add a new bundle
ProcessObjectsBundle bundle;
......@@ -129,6 +137,7 @@ public:
bundle.m_KeyPszX = ss_key_dims_x.str();
bundle.m_KeyPszY = ss_key_dims_y.str();
bundle.m_KeyPHName = ss_key_ph.str();
bundle.m_KeyND = ss_key_nd.str();
m_Bundles.push_back(bundle);
......@@ -236,10 +245,14 @@ public:
bundle.m_Placeholder = GetParameterAsString(bundle.m_KeyPHName);
bundle.m_PatchSize[0] = GetParameterInt(bundle.m_KeyPszX);
bundle.m_PatchSize[1] = GetParameterInt(bundle.m_KeyPszY);
bundle.m_HasNodata = HasValue(bundle.m_KeyND);
bundle.m_NodataValue = GetParameterFloat(bundle.m_KeyND);
otbAppLogINFO("Source info :");
otbAppLogINFO("Receptive field : " << bundle.m_PatchSize );
otbAppLogINFO("Placeholder name : " << bundle.m_Placeholder);
if (bundle.m_HasNodata == true)
otbAppLogINFO("No-data value : " << bundle.m_NodataValue);
}
}
......@@ -274,7 +287,8 @@ public:
// Input sources
for (auto& bundle: m_Bundles)
{
m_TFFilter->PushBackInputTensorBundle(bundle.m_Placeholder, bundle.m_PatchSize, bundle.m_ImageSource.Get());
float nodata = (bundle.m_HasNodata == true) ? bundle.m_NodataValue : 0;
m_TFFilter->PushBackInputTensorBundle(bundle.m_Placeholder, bundle.m_PatchSize, bundle.m_ImageSource.Get(), bundle.m_HasNodata, nodata);
}
// Fully convolutional mode on/off
......
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