rspfLandSatModel::rspfLandSatModel(const rspfFilename& init_file) { if (traceExec()) rspfNotify(rspfNotifyLevel_DEBUG) << "DEBUG rspfLandSatModel::rspfLandSatModel(init_file): entering..." << std::endl; setupOptimizer(init_file); if (traceExec()) rspfNotify(rspfNotifyLevel_DEBUG) << "DEBUG rspfLandSatModel::rspfLandSatModel(init_file): Exited..." << std::endl; }
ossimLandSatModel::ossimLandSatModel(const ossimFilename& init_file) { if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimLandSatModel::ossimLandSatModel(init_file): entering..." << std::endl; setupOptimizer(init_file); if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimLandSatModel::ossimLandSatModel(init_file): Exited..." << std::endl; }
// set up optimization routine void PatchTracking::beginTracking() { _transform = TransformType::New(); ParametersType initialParams; initialParams.SetSize(_transform->GetNumberOfParameters()); initialParams.Fill(0); _costFunc = CostFunctionType::New(); _costFunc->SetFixedImage(_patches[0]); _costFunc->SetFixedInterpolator(LinearImageInterpolatorType::New()); _costFunc->SetMovingImage(_images[1]); _costFunc->SetMovingInterpolator(LinearImageInterpolatorType::New()); _costFunc->SetMovingTransform(_transform); _costFunc->SetParameters(initialParams); setupMetric(_costFunc); _costFunc->Initialize(); OptimizerType::ScalesType scales; scales.SetSize(initialParams.Size()); scales.Fill(1); OptimizerProgress<OptimizerType>::Pointer progress = OptimizerProgress<OptimizerType>::New(); _optimizer = OptimizerType::New(); _optimizer->SetScales(scales); _optimizer->SetScalesEstimator(_estimator); _optimizer->SetMetric(_costFunc); // _optimizer->AddObserver(itk::IterationEvent(), progress); setupOptimizer(_optimizer); _optimizer->StartOptimization(); cout << "Iterations: " << _optimizer->GetCurrentIteration() << endl; cout << "Stop Reason: " << _optimizer->GetStopConditionDescription() << endl; const ParametersType& params = _optimizer->GetCurrentPosition(); _transform->SetParameters(params); resamplePatch(); transformPatchRegion(); }