diff --git a/app/otbHarmonizer.cxx b/app/otbHarmonizer.cxx index 1bb1d3ad308ab736c395ff323ecf939bc62f61be..a8b3390a508e5df0bf20ba4f86c783c153bd80e9 100644 --- a/app/otbHarmonizer.cxx +++ b/app/otbHarmonizer.cxx @@ -296,9 +296,9 @@ private: AddParameter(ParameterType_Int, "smoothingradius", "Smoothing radius (in pixels of the reference image)"); SetDefaultParameterInt ("smoothingradius", 10); - AddParameter(ParameterType_Choice, "useoffset", "Zero-y intercept mode in linear transform"); - AddChoice("useoffset.on", "Yes (y=ax+b)"); - AddChoice("useoffset.off", "No (y=ax)"); + AddParameter(ParameterType_Choice, "zeroy", "Zero-y intercept mode in linear transform"); + AddChoice("zeroy.on", "Yes (y=ax)"); + AddChoice("zeroy.off", "No (y=ax+b)"); AddRAMParameter(); @@ -411,7 +411,8 @@ private: std::stringstream exp; exp << "{"; - if (GetParameterInt("useoffset") == 0) + bool zeroy = (GetParameterInt("zeroy") == 0); + if (zeroy) { otbAppLogINFO("Using zero-y intercept (y=ax)"); } @@ -428,15 +429,15 @@ private: float mean2X = meanX * meanX; float b0, b1; - if (GetParameterInt("useoffset") == 1) + if (zeroy) { - b1 = (meanX * meanY - meanXY) / (mean2X - meanX2); - b0 = meanY - b1 * meanX; + b1 = meanXY / meanX2; + b0 = 0; } else { - b1 = meanXY / meanX2; - b0 = 0; + b1 = (meanX * meanY - meanXY) / (mean2X - meanX2); + b0 = meanY - b1 * meanX; } otbAppLogINFO("Band " << band << " gain: " << b1 << " bias: " << b0);