Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
    // 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();
    }