MCPcopy Create free account
hub / github.com/MITK/MITK / CalcSignalFromModel

Function CalcSignalFromModel

Modules/ModelFit/src/Common/mitkModelFitPlotDataHelper.cpp:299–340  ·  view source on GitHub ↗

Helper function that generates the curve based on the model specified by the fit info.*/

Source from the content-addressed store, hash-verified

297
298/** Helper function that generates the curve based on the model specified by the fit info.*/
299mitk::PlotDataCurve::Pointer
300CalcSignalFromModel(const mitk::Point3D& position, const mitk::modelFit::ModelFitInfo* fitInfo, const mitk::ModelParameterizerBase* parameterizer = nullptr)
301{
302 assert(fitInfo);
303
304 if (!parameterizer)
305 {
306 parameterizer = mitk::ModelGenerator::GenerateModelParameterizer(*fitInfo);
307 }
308
309 assert(fitInfo->inputImage.IsNotNull());
310
311 // Calculate index
312 ::itk::Index<3> index;
313 mitk::BaseGeometry::Pointer geometry = fitInfo->inputImage->GetTimeGeometry()->GetGeometryForTimeStep(0);
314
315 geometry->WorldToIndex(position, index);
316
317 //model generation
318 mitk::ModelBase::Pointer model = parameterizer->GenerateParameterizedModel(index);
319
320 mitk::ParameterValueMapType parameterMap = mitk::ExtractParameterValueMapFromModelFit(fitInfo, position);
321
322 mitk::ModelBase::ParametersType paramArray = mitk::ConvertParameterMapToParameterVector(parameterMap, model);
323
324 mitk::ModelBase::ModelResultType curveDataY = model->GetSignal(paramArray);
325 mitk::PlotDataCurve::Pointer result = mitk::PlotDataCurve::New();
326
327 mitk::ModelBase::TimeGridType timeGrid = model->GetTimeGrid();
328 mitk::PlotDataCurve::ValuesType values;
329 values.reserve(timeGrid.size());
330
331 for (unsigned int t = 0; t < timeGrid.size(); ++t)
332 {
333 double x = timeGrid[t];
334 double y = curveDataY[t];
335 values.emplace_back(std::make_pair(x, y));
336 }
337
338 result->SetValues(std::move(values));
339 return result;
340}
341
342mitk::PlotDataCurve::Pointer
343mitk::GenerateModelSignalPlotData(const mitk::Point3D& position, const mitk::modelFit::ModelFitInfo* fitInfo, const mitk::ModelBase::TimeGridType& timeGrid, mitk::ModelParameterizerBase* parameterizer)

Callers 1

Calls 7

IsNotNullMethod · 0.80
GetSignalMethod · 0.80
NewFunction · 0.50
WorldToIndexMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected