Commit 2056c96d authored by Gaetano Raffaele's avatar Gaetano Raffaele
Browse files

ENH: added option to set label field name

No related merge requests found
Showing with 12 additions and 3 deletions
+12 -3
......@@ -57,6 +57,11 @@ private:
AddParameter(ParameterType_Int, "bv", "Background Value");
SetParameterDescription("bv", "Value corresponding to no-object.");
SetDefaultParameterInt("bv", 0);
AddParameter(ParameterType_String, "label", "Label field");
SetParameterDescription("label", "Name of the output field containing object labels (defaults to 'label')");
MandatoryOff("label");
DisableParameter("label");
AddParameter(ParameterType_OutputFilename, "out", "Output GIS vector file");
SetParameterDescription("out",
......@@ -94,7 +99,11 @@ private:
layername = layername.substr(0, layername.size() - (extension.size()));
layer = ogrDS->CreateLayer(layername, &oSRS, wkbPolygon, options);
OGRFieldDefn labelField("label", OFTInteger);
std::string lbField = "label";
if (IsParameterEnabled("label"))
lbField = GetParameterString("label");
OGRFieldDefn labelField(lbField.c_str(), OFTInteger);
layer.CreateField(labelField, true);
LabelImageToOGRDataSourceFilterType::Pointer labelToOGR = LabelImageToOGRDataSourceFilterType::New();
......@@ -104,7 +113,7 @@ private:
LabelImageType::Pointer mask = this->GetParameterUInt32Image("mask");
labelToOGR->SetInputMask(mask);
}
labelToOGR->SetFieldName("label");
labelToOGR->SetFieldName(lbField);
labelToOGR->Update();
int noObj = this->GetParameterInt("bv");
......@@ -113,7 +122,7 @@ private:
otb::ogr::Layer::const_iterator featIt = layerTmp.begin();
for (; featIt != layerTmp.end(); ++featIt)
{
if (featIt->ogr().GetFieldAsInteger("label") != noObj) {
if (featIt->ogr().GetFieldAsInteger(lbField.c_str()) != noObj) {
otb::ogr::Feature dstFeature(layer.GetLayerDefn());
dstFeature.SetFrom(*featIt, TRUE);
layer.CreateFeature(dstFeature);
......
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