void mitk::ToFVisualizationFilter::InitializeTransferFunction(int idx, mitk::Image* image) { int min, max; if (idx == 0) { if (image) { min = image->GetScalarValueMin(); max = image->GetScalarValueMax(); } else { min = 0; max = 7000; } this->m_Widget1ColorTransferFunction = vtkColorTransferFunction::New(); this->m_Widget1TransferFunctionType = 1; ResetTransferFunction(this->m_Widget1ColorTransferFunction, this->m_Widget1TransferFunctionType, min, max); } else if (idx == 1) { if (image) { min = image->GetScalarValueMin(); max = image->GetScalarValueMax(); } else { min = 0; max = 20000; } this->m_Widget2ColorTransferFunction = vtkColorTransferFunction::New(); this->m_Widget2TransferFunctionType = 0; ResetTransferFunction(this->m_Widget2ColorTransferFunction, this->m_Widget2TransferFunctionType, min, max); } else if (idx == 2) { if (image) { min = image->GetScalarValueMin(); max = image->GetScalarValueMax(); } else { min = 0; max = 20000; } this->m_Widget3ColorTransferFunction = vtkColorTransferFunction::New(); this->m_Widget3TransferFunctionType = 0; ResetTransferFunction(this->m_Widget3ColorTransferFunction, this->m_Widget3TransferFunctionType, min, max); } }
void QmitkToFVisualisationSettingsWidget::ReinitTransferFunction(int widget, int type) { switch (widget) { case 0: { mitk::Image::Pointer distanceImage = dynamic_cast<mitk::Image*>(m_MitkDistanceImageNode->GetData()); // use second minimum to draw 0 values (that are usually segmented) black m_RangeSliderMin = distanceImage->GetStatistics()->GetScalarValue2ndMin(); m_RangeSliderMax = distanceImage->GetStatistics()->GetScalarValueMax(); MITK_INFO<<"Distance Min: "<<m_RangeSliderMin; MITK_INFO<<"Distance Max: "<<m_RangeSliderMax; ResetTransferFunction(this->m_Widget1ColorTransferFunction, type, this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_Widget1ColorTransferFunction ); mitk::TransferFunction::Pointer tf1 = mitk::TransferFunction::New(); tf1->SetColorTransferFunction( m_Widget1ColorTransferFunction ); m_MitkDistanceImageNode->SetProperty("Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf1)); break; } case 1: { if (m_MitkAmplitudeImageNode) { mitk::Image::Pointer amplitudeImage = dynamic_cast<mitk::Image*>(m_MitkAmplitudeImageNode->GetData()); if (amplitudeImage.IsNotNull()) { m_RangeSliderMin = amplitudeImage->GetStatistics()->GetScalarValueMin(); m_RangeSliderMax = amplitudeImage->GetStatistics()->GetScalarValueMax(); MITK_INFO<<"Amplitude Min: "<<m_RangeSliderMin; MITK_INFO<<"Amplitude Max: "<<m_RangeSliderMax; ResetTransferFunction(this->m_Widget2ColorTransferFunction, type, this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_Widget2ColorTransferFunction ); mitk::TransferFunction::Pointer tf2 = mitk::TransferFunction::New(); tf2->SetColorTransferFunction( m_Widget2ColorTransferFunction ); m_MitkAmplitudeImageNode->SetProperty("Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf2)); } } break; } case 2: { if (m_MitkIntensityImageNode) { mitk::Image::Pointer intensityImage = dynamic_cast<mitk::Image*>(m_MitkIntensityImageNode->GetData()); if (intensityImage.IsNotNull()) { m_RangeSliderMin = intensityImage->GetStatistics()->GetScalarValueMin(); m_RangeSliderMax = intensityImage->GetStatistics()->GetScalarValueMax(); MITK_INFO<<"Intensity Min: "<<m_RangeSliderMin; MITK_INFO<<"Intensity Max: "<<m_RangeSliderMax; ResetTransferFunction(this->m_Widget3ColorTransferFunction, type, this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_Widget3ColorTransferFunction ); mitk::TransferFunction::Pointer tf3 = mitk::TransferFunction::New(); tf3->SetColorTransferFunction( m_Widget3ColorTransferFunction ); m_MitkIntensityImageNode->SetProperty("Image Rendering.Transfer Function",mitk::TransferFunctionProperty::New(tf3)); } } break; } default: break; } this->UpdateSurfaceProperty(); }
void QmitkToFVisualisationSettingsWidget::OnTransferFunctionReset() { //TODO implement the Enum Conversion type int currentTransferFunctionTypeIndex = m_Controls->m_SelectTransferFunctionTypeCombobox->currentIndex(); int currentWidgetIndex = m_Controls->m_SelectWidgetCombobox->currentIndex(); int currentImageTypeIndex = m_Controls->m_SelectImageTypeCombobox->currentIndex(); int numOfPixel = this->m_MitkDistanceImage->GetDimension(0) * this->m_MitkDistanceImage->GetDimension(1); if (currentImageTypeIndex == 0) { ComputeMinMax((float*)this->m_MitkDistanceImage->GetSliceData(0,0,0)->GetData(), numOfPixel, m_RangeSliderMin, m_RangeSliderMax); } else if (currentImageTypeIndex == 1) { ComputeMinMax((float*)this->m_MitkAmplitudeImage->GetSliceData(0,0,0)->GetData(), numOfPixel, m_RangeSliderMin, m_RangeSliderMax); } else if (currentImageTypeIndex == 2) { ComputeMinMax((float*)this->m_MitkIntensityImage->GetSliceData(0,0,0)->GetData(), numOfPixel, m_RangeSliderMin, m_RangeSliderMax); } else { return; } if (currentWidgetIndex == 0) { this->m_ToFVisualizationFilter->SetWidget1TransferFunctionType(currentTransferFunctionTypeIndex); ResetTransferFunction(this->m_ToFVisualizationFilter->GetWidget1ColorTransferFunction(), this->m_ToFVisualizationFilter->GetWidget1TransferFunctionType(), this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_ToFVisualizationFilter->GetWidget1ColorTransferFunction() ); } else if (currentWidgetIndex == 1) { this->m_ToFVisualizationFilter->SetWidget2TransferFunctionType(currentTransferFunctionTypeIndex); ResetTransferFunction(this->m_ToFVisualizationFilter->GetWidget2ColorTransferFunction(), this->m_ToFVisualizationFilter->GetWidget2TransferFunctionType(), this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_ToFVisualizationFilter->GetWidget2ColorTransferFunction() ); } else if (currentWidgetIndex == 2) { this->m_ToFVisualizationFilter->SetWidget1TransferFunctionType(currentTransferFunctionTypeIndex); ResetTransferFunction(this->m_ToFVisualizationFilter->GetWidget3ColorTransferFunction(), this->m_ToFVisualizationFilter->GetWidget3TransferFunctionType(), this->m_RangeSliderMin, this->m_RangeSliderMax); m_Controls->m_ColorTransferFunctionCanvas->SetColorTransferFunction( this->m_ToFVisualizationFilter->GetWidget3ColorTransferFunction() ); } else if (currentWidgetIndex == 3) { } else { return; } int border = (m_RangeSliderMax - m_RangeSliderMin) * 0.1; m_Controls->m_RangeSlider->setMinimum(m_RangeSliderMin - border); m_Controls->m_RangeSlider->setMaximum(m_RangeSliderMax + border); m_Controls->m_RangeSliderMinEdit->setText(QString("").setNum(m_RangeSliderMin - border)); m_Controls->m_RangeSliderMaxEdit->setText(QString("").setNum(m_RangeSliderMax + border)); m_Controls->m_RangeSlider->setSpan( m_RangeSliderMin, m_RangeSliderMax); UpdateRanges(); m_Controls->m_ColorTransferFunctionCanvas->update(); }