diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake b/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake
index 7273bd39d3..5292027335 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake
@@ -1,53 +1,53 @@
set(SRC_CPP_FILES
)
set(INTERNAL_CPP_FILES
QmitkMeasurementView.cpp
- QmitkImageStatisticsReloadedView.cpp
+ QmitkImageStatisticsView.cpp
mitkPluginActivator.cpp
)
set(UI_FILES
- src/internal/QmitkImageStatisticsReloadedViewControls.ui
+ src/internal/QmitkImageStatisticsViewControls.ui
)
set(MOC_H_FILES
src/internal/QmitkMeasurementView.h
- src/internal/QmitkImageStatisticsReloadedView.h
+ src/internal/QmitkImageStatisticsView.h
src/internal/mitkPluginActivator.h
)
set(CACHED_RESOURCE_FILES
resources/angle.png
resources/arrow.png
resources/circle.png
resources/four-point-angle.png
resources/lena.xpm
resources/line.png
resources/measurement.svg
resources/path.png
resources/polygon.png
resources/rectangle.png
resources/stats.png
resources/text.png
resources/bar-chart.svg
resources/bar-chart2.svg
plugin.xml
)
set(QRC_FILES
resources/measurement.qrc
resources/QmitkImageStatisticsView.qrc
)
set(CPP_FILES )
foreach(file ${SRC_CPP_FILES})
set(CPP_FILES ${CPP_FILES} src/${file})
endforeach(file ${SRC_CPP_FILES})
foreach(file ${INTERNAL_CPP_FILES})
set(CPP_FILES ${CPP_FILES} src/internal/${file})
endforeach(file ${INTERNAL_CPP_FILES})
diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml b/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml
index fb21078931..1241a6fdc5 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml
@@ -1,42 +1,42 @@
Measure distance and areas in the image
-
Calculate the statistic of image regions
-
+
diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.cpp
similarity index 86%
rename from Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp
rename to Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.cpp
index 75f797b850..3a5b42b412 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.cpp
@@ -1,511 +1,511 @@
/*===================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center,
Division of Medical and Biological Informatics.
All rights reserved.
This software is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.
See LICENSE.txt or http://www.mitk.org for details.
===================================================================*/
-#include "QmitkImageStatisticsReloadedView.h"
+#include "QmitkImageStatisticsView.h"
#include
// berry includes
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "mitkImageStatisticsContainerManager.h"
#include
-const std::string QmitkImageStatisticsReloadedView::VIEW_ID = "org.mitk.views.imagestatisticsReloaded";
+const std::string QmitkImageStatisticsView::VIEW_ID = "org.mitk.views.imagestatistics";
-QmitkImageStatisticsReloadedView::QmitkImageStatisticsReloadedView(QObject * /*parent*/, const char * /*name*/)
+QmitkImageStatisticsView::QmitkImageStatisticsView(QObject * /*parent*/, const char * /*name*/)
{
this->m_CalculationThread = new QmitkImageStatisticsCalculationJob();
}
-QmitkImageStatisticsReloadedView::~QmitkImageStatisticsReloadedView()
+QmitkImageStatisticsView::~QmitkImageStatisticsView()
{
if (m_selectedPlanarFigure)
m_selectedPlanarFigure->RemoveObserver(m_PlanarFigureObserverTag);
}
-void QmitkImageStatisticsReloadedView::CreateQtPartControl(QWidget *parent)
+void QmitkImageStatisticsView::CreateQtPartControl(QWidget *parent)
{
m_Controls.setupUi(parent);
m_Controls.widget_histogram->SetTheme(this->GetColorTheme());
m_Controls.widget_intensityProfile->SetTheme(this->GetColorTheme());
m_Controls.groupBox_histogram->setVisible(true);
m_Controls.groupBox_intensityProfile->setVisible(false);
m_Controls.label_currentlyComputingStatistics->setVisible(false);
m_Controls.sliderWidget_histogram->setPrefix("Time: ");
m_Controls.sliderWidget_histogram->setDecimals(0);
m_Controls.sliderWidget_histogram->setVisible(false);
ResetGUI();
PrepareDataStorageComboBoxes();
m_Controls.widget_statistics->SetDataStorage(this->GetDataStorage());
CreateConnections();
}
-void QmitkImageStatisticsReloadedView::CreateConnections()
+void QmitkImageStatisticsView::CreateConnections()
{
connect(this->m_CalculationThread,
&QmitkImageStatisticsCalculationJob::finished,
this,
- &QmitkImageStatisticsReloadedView::OnStatisticsCalculationEnds,
+ &QmitkImageStatisticsView::OnStatisticsCalculationEnds,
Qt::QueuedConnection);
connect(this->m_Controls.checkBox_ignoreZero,
&QCheckBox::stateChanged,
this,
- &QmitkImageStatisticsReloadedView::OnCheckBoxIgnoreZeroStateChanged);
+ &QmitkImageStatisticsView::OnCheckBoxIgnoreZeroStateChanged);
connect(this->m_Controls.sliderWidget_histogram,
&ctkSliderWidget::valueChanged,
this,
- &QmitkImageStatisticsReloadedView::OnSliderWidgetHistogramChanged);
+ &QmitkImageStatisticsView::OnSliderWidgetHistogramChanged);
connect(this->m_Controls.imageSelector,
static_cast(&QComboBox::currentIndexChanged),
this,
- &QmitkImageStatisticsReloadedView::OnImageSelectorChanged);
+ &QmitkImageStatisticsView::OnImageSelectorChanged);
connect(this->m_Controls.maskImageSelector,
static_cast(&QComboBox::currentIndexChanged),
this,
- &QmitkImageStatisticsReloadedView::OnMaskSelectorChanged);
+ &QmitkImageStatisticsView::OnMaskSelectorChanged);
}
-void QmitkImageStatisticsReloadedView::OnCheckBoxIgnoreZeroStateChanged(int state)
+void QmitkImageStatisticsView::OnCheckBoxIgnoreZeroStateChanged(int state)
{
m_ForceRecompute = true;
if (state != Qt::Unchecked)
{
this->m_CalculationThread->SetIgnoreZeroValueVoxel(true);
}
else
{
this->m_CalculationThread->SetIgnoreZeroValueVoxel(false);
}
CalculateOrGetStatistics();
}
-void QmitkImageStatisticsReloadedView::OnSliderWidgetHistogramChanged(double value)
+void QmitkImageStatisticsView::OnSliderWidgetHistogramChanged(double value)
{
unsigned int timeStep = static_cast(value);
auto mask = m_selectedMaskNode ? m_selectedMaskNode->GetData() : nullptr;
auto imageStatistics = mitk::ImageStatisticsContainerManager::GetImageStatistics(
this->GetDataStorage(), m_selectedImageNode->GetData(), mask);
HistogramType::ConstPointer histogram = imageStatistics->GetStatisticsForTimeStep(timeStep).m_Histogram;
if (histogram.IsNotNull() && this->m_CalculationThread->GetStatisticsUpdateSuccessFlag())
{
this->FillHistogramWidget({histogram}, {m_selectedImageNode->GetName()});
}
}
-void QmitkImageStatisticsReloadedView::PartClosed(const berry::IWorkbenchPartReference::Pointer &) {}
+void QmitkImageStatisticsView::PartClosed(const berry::IWorkbenchPartReference::Pointer &) {}
-void QmitkImageStatisticsReloadedView::FillHistogramWidget(const std::vector &histogram,
+void QmitkImageStatisticsView::FillHistogramWidget(const std::vector &histogram,
const std::vector &dataLabels)
{
m_Controls.groupBox_histogram->setVisible(true);
m_Controls.widget_histogram->SetTheme(this->GetColorTheme());
m_Controls.widget_histogram->Reset();
m_Controls.widget_histogram->SetHistogram(histogram.front(), dataLabels.front());
connect(m_Controls.widget_histogram,
&QmitkHistogramVisualizationWidget::RequestHistogramUpdate,
this,
- &QmitkImageStatisticsReloadedView::OnRequestHistogramUpdate);
+ &QmitkImageStatisticsView::OnRequestHistogramUpdate);
}
-QmitkChartWidget::ColorTheme QmitkImageStatisticsReloadedView::GetColorTheme() const
+QmitkChartWidget::ColorTheme QmitkImageStatisticsView::GetColorTheme() const
{
ctkPluginContext *context = berry::WorkbenchPlugin::GetDefault()->GetPluginContext();
ctkServiceReference styleManagerRef = context->getServiceReference();
if (styleManagerRef)
{
auto styleManager = context->getService(styleManagerRef);
if (styleManager->GetStyle().name == "Dark")
{
return QmitkChartWidget::ColorTheme::darkstyle;
}
else
{
return QmitkChartWidget::ColorTheme::lightstyle;
}
}
return QmitkChartWidget::ColorTheme::darkstyle;
}
-void QmitkImageStatisticsReloadedView::OnImageSelectorChanged()
+void QmitkImageStatisticsView::OnImageSelectorChanged()
{
auto selectedImageNode = m_Controls.imageSelector->GetSelectedNode();
if (selectedImageNode != m_selectedImageNode)
{
m_selectedImageNode = selectedImageNode;
if (m_selectedImageNode.IsNotNull())
{
ResetGUIDefault();
auto isPlanarFigurePredicate = mitk::GetImageStatisticsPlanarFigurePredicate();
auto isMaskPredicate = mitk::GetImageStatisticsMaskPredicate();
auto hasSameGeometry = mitk::NodePredicateGeometry::New(m_selectedImageNode->GetData()->GetGeometry());
hasSameGeometry->SetCheckPrecision(1e-10);
auto isMaskWithGeometryPredicate = mitk::NodePredicateAnd::New(isMaskPredicate, hasSameGeometry);
auto isMaskOrPlanarFigureWithGeometryPredicate =
mitk::NodePredicateOr::New(isPlanarFigurePredicate, isMaskWithGeometryPredicate);
// prevent triggering of computation as the predicate triggers a signalChanged event
m_Controls.maskImageSelector->disconnect();
m_Controls.maskImageSelector->SetPredicate(isMaskOrPlanarFigureWithGeometryPredicate);
// reset mask to
m_Controls.maskImageSelector->SetZeroEntryText("");
m_Controls.checkBox_ignoreZero->setEnabled(true);
m_selectedMaskNode = nullptr;
m_Controls.widget_statistics->SetMaskNodes({});
CalculateOrGetStatistics();
m_Controls.widget_statistics->SetImageNodes({m_selectedImageNode.GetPointer()});
connect(this->m_Controls.maskImageSelector,
static_cast(&QComboBox::currentIndexChanged),
this,
- &QmitkImageStatisticsReloadedView::OnMaskSelectorChanged);
+ &QmitkImageStatisticsView::OnMaskSelectorChanged);
}
else
{
m_Controls.widget_statistics->SetImageNodes({});
m_Controls.widget_statistics->SetMaskNodes({});
m_Controls.widget_statistics->Reset();
m_Controls.widget_histogram->Reset();
ResetGUI();
}
}
}
-void QmitkImageStatisticsReloadedView::OnMaskSelectorChanged()
+void QmitkImageStatisticsView::OnMaskSelectorChanged()
{
auto selectedMaskNode = m_Controls.maskImageSelector->GetSelectedNode();
if (selectedMaskNode != m_selectedMaskNode)
{
m_selectedMaskNode = selectedMaskNode;
if (m_selectedMaskNode.IsNotNull())
{
m_Controls.widget_statistics->SetMaskNodes({m_selectedMaskNode.GetPointer()});
}
else
{
m_Controls.widget_statistics->SetMaskNodes({});
}
CalculateOrGetStatistics();
}
}
-void QmitkImageStatisticsReloadedView::CalculateOrGetStatistics()
+void QmitkImageStatisticsView::CalculateOrGetStatistics()
{
if (this->m_selectedPlanarFigure)
{
this->m_selectedPlanarFigure->RemoveObserver(this->m_PlanarFigureObserverTag);
this->m_selectedPlanarFigure = nullptr;
}
m_Controls.groupBox_intensityProfile->setVisible(false);
m_Controls.widget_statistics->setEnabled(m_selectedImageNode.IsNotNull());
if (m_selectedImageNode != nullptr)
{
auto image = dynamic_cast(m_selectedImageNode->GetData());
mitk::Image::Pointer mask = nullptr;
mitk::PlanarFigure::Pointer maskPlanarFigure = nullptr;
if (image->GetDimension() == 4)
{
m_Controls.sliderWidget_histogram->setVisible(true);
unsigned int maxTimestep = image->GetTimeSteps();
m_Controls.sliderWidget_histogram->setMaximum(maxTimestep - 1);
}
else
{
m_Controls.sliderWidget_histogram->setVisible(false);
}
if (m_selectedMaskNode != nullptr)
{
mask = dynamic_cast(m_selectedMaskNode->GetData());
if (mask == nullptr)
{
maskPlanarFigure = dynamic_cast(m_selectedMaskNode->GetData());
}
}
mitk::ImageStatisticsContainer::ConstPointer imageStatistics;
if (mask)
{
imageStatistics =
mitk::ImageStatisticsContainerManager::GetImageStatistics(this->GetDataStorage(), image, mask.GetPointer());
}
else if (maskPlanarFigure)
{
m_selectedPlanarFigure = maskPlanarFigure;
ITKCommandType::Pointer changeListener = ITKCommandType::New();
- changeListener->SetCallbackFunction(this, &QmitkImageStatisticsReloadedView::CalculateOrGetStatistics);
+ changeListener->SetCallbackFunction(this, &QmitkImageStatisticsView::CalculateOrGetStatistics);
this->m_PlanarFigureObserverTag =
m_selectedPlanarFigure->AddObserver(mitk::EndInteractionPlanarFigureEvent(), changeListener);
if (!maskPlanarFigure->IsClosed())
{
ComputeAndDisplayIntensityProfile(image, maskPlanarFigure);
}
imageStatistics = mitk::ImageStatisticsContainerManager::GetImageStatistics(
this->GetDataStorage(), image, maskPlanarFigure.GetPointer());
}
else
{
imageStatistics = mitk::ImageStatisticsContainerManager::GetImageStatistics(this->GetDataStorage(), image);
}
bool imageStatisticsOlderThanInputs = false;
if (imageStatistics &&
(imageStatistics->GetMTime() < image->GetMTime() || (mask && imageStatistics->GetMTime() < mask->GetMTime()) ||
(maskPlanarFigure && imageStatistics->GetMTime() < maskPlanarFigure->GetMTime())))
{
imageStatisticsOlderThanInputs = true;
}
if (imageStatistics)
{
// triggers recomputation when switched between images and the newest one has not 100 bins (default)
auto calculatedBins = imageStatistics->GetStatisticsForTimeStep(0).m_Histogram.GetPointer()->Size();
if (calculatedBins != 100)
{
OnRequestHistogramUpdate(m_Controls.widget_histogram->GetBins());
}
}
//statistics need to be computed
if (!imageStatistics || imageStatisticsOlderThanInputs || m_ForceRecompute) {
CalculateStatistics(image, mask.GetPointer(), maskPlanarFigure.GetPointer());
}
// statistics already computed
else
{
// Not an open planar figure: show histogram (intensity profile already shown)
if (!(maskPlanarFigure && !maskPlanarFigure->IsClosed()))
{
if (imageStatistics->TimeStepExists(0))
{
auto histogram = imageStatistics->GetStatisticsForTimeStep(0).m_Histogram.GetPointer();
std::string imageNodeName = m_selectedImageNode->GetName();
this->FillHistogramWidget({histogram}, {imageNodeName});
}
}
}
}
else
{
ResetGUI();
}
m_ForceRecompute = false;
}
-void QmitkImageStatisticsReloadedView::ComputeAndDisplayIntensityProfile(mitk::Image *image,
+void QmitkImageStatisticsView::ComputeAndDisplayIntensityProfile(mitk::Image *image,
mitk::PlanarFigure::Pointer maskPlanarFigure)
{
auto intensityProfile = mitk::ComputeIntensityProfile(image, maskPlanarFigure);
// Don't show histogram for intensity profiles
m_Controls.groupBox_histogram->setVisible(false);
m_Controls.groupBox_intensityProfile->setVisible(true);
m_Controls.widget_intensityProfile->Reset();
m_Controls.widget_intensityProfile->SetIntensityProfile(intensityProfile.GetPointer(),
"Intensity Profile of " + m_selectedImageNode->GetName());
}
-void QmitkImageStatisticsReloadedView::ResetGUI()
+void QmitkImageStatisticsView::ResetGUI()
{
m_Controls.widget_statistics->Reset();
m_Controls.widget_statistics->setEnabled(false); m_Controls.widget_histogram->Reset();
m_Controls.widget_histogram->setEnabled(false);
m_Controls.checkBox_ignoreZero->setEnabled(false);
}
-void QmitkImageStatisticsReloadedView::ResetGUIDefault()
+void QmitkImageStatisticsView::ResetGUIDefault()
{
MITK_INFO << "reset GUI";
m_Controls.widget_histogram->ResetDefault();
m_Controls.checkBox_ignoreZero->setChecked(false);
}
-void QmitkImageStatisticsReloadedView::OnStatisticsCalculationEnds()
+void QmitkImageStatisticsView::OnStatisticsCalculationEnds()
{
mitk::StatusBar::GetInstance()->Clear();
if (this->m_CalculationThread->GetStatisticsUpdateSuccessFlag())
{
auto statistic = m_CalculationThread->GetStatisticsData();
auto image = m_CalculationThread->GetStatisticsImage();
mitk::BaseData::ConstPointer mask = nullptr;
auto statisticNonConst = statistic->Clone();
auto imageRule = mitk::StatisticsToImageRelationRule::New();
imageRule->Connect(statisticNonConst.GetPointer(), image);
if (m_CalculationThread->GetMaskImage())
{
auto maskRule = mitk::StatisticsToMaskRelationRule::New();
mask = m_CalculationThread->GetMaskImage();
maskRule->Connect(statisticNonConst.GetPointer(), mask);
}
else if (m_CalculationThread->GetPlanarFigure())
{
auto planarFigureRule = mitk::StatisticsToMaskRelationRule::New();
mask = m_CalculationThread->GetPlanarFigure();
planarFigureRule->Connect(statisticNonConst.GetPointer(), mask);
}
auto imageStatistics = mitk::ImageStatisticsContainerManager::GetImageStatistics(
this->GetDataStorage(), image, mask);
//if statistics base data already exist: add to existing node
if (imageStatistics)
{
auto allDataNodes = this->GetDataStorage()->GetAll()->CastToSTLConstContainer();
for (auto node : allDataNodes)
{
auto nodeData = node->GetData();
if (nodeData && nodeData->GetUID() ==imageStatistics->GetUID())
{
node->SetData(statisticNonConst);
}
}
}
//statistics base data does not exist: add new node
else
{
auto statisticsNodeName = m_selectedImageNode->GetName();
if (m_selectedMaskNode)
{
statisticsNodeName += "_" + m_selectedMaskNode->GetName();
}
statisticsNodeName += "_statistics";
auto statisticsNode = mitk::CreateImageStatisticsNode(statisticNonConst, statisticsNodeName);
this->GetDataStorage()->Add(statisticsNode);
}
if (!m_selectedPlanarFigure || m_selectedPlanarFigure->IsClosed())
{
this->FillHistogramWidget({m_CalculationThread->GetTimeStepHistogram()}, {m_selectedImageNode->GetName()});
}
}
else
{
mitk::StatusBar::GetInstance()->DisplayErrorText(m_CalculationThread->GetLastErrorMessage().c_str());
m_Controls.widget_histogram->setEnabled(false);
}
m_Controls.label_currentlyComputingStatistics->setVisible(false);
}
-void QmitkImageStatisticsReloadedView::OnRequestHistogramUpdate(unsigned int nBins)
+void QmitkImageStatisticsView::OnRequestHistogramUpdate(unsigned int nBins)
{
m_CalculationThread->SetHistogramNBins(nBins);
m_CalculationThread->start();
}
-void QmitkImageStatisticsReloadedView::CalculateStatistics(mitk::Image::ConstPointer image,
+void QmitkImageStatisticsView::CalculateStatistics(mitk::Image::ConstPointer image,
mitk::Image::ConstPointer mask,
mitk::PlanarFigure::ConstPointer maskPlanarFigure)
{
this->m_StatisticsUpdatePending = true;
auto renderPart = this->GetRenderWindowPart();
unsigned int timeStep = renderPart->GetTimeNavigationController()->GetTime()->GetPos();
this->m_CalculationThread->Initialize(image, mask, maskPlanarFigure);
this->m_CalculationThread->SetTimeStep(timeStep);
try
{
// Compute statistics
this->m_CalculationThread->start();
m_Controls.label_currentlyComputingStatistics->setVisible(true);
}
catch (const mitk::Exception &e)
{
mitk::StatusBar::GetInstance()->DisplayErrorText(e.GetDescription());
this->m_StatisticsUpdatePending = false;
m_Controls.label_currentlyComputingStatistics->setVisible(false);
}
catch (const std::runtime_error &e)
{
mitk::StatusBar::GetInstance()->DisplayErrorText(e.what());
this->m_StatisticsUpdatePending = false;
m_Controls.label_currentlyComputingStatistics->setVisible(false);
}
catch (const std::exception &e)
{
mitk::StatusBar::GetInstance()->DisplayErrorText(e.what());
this->m_StatisticsUpdatePending = false;
m_Controls.label_currentlyComputingStatistics->setVisible(false);
}
}
-void QmitkImageStatisticsReloadedView::OnSelectionChanged(berry::IWorkbenchPart::Pointer part,
+void QmitkImageStatisticsView::OnSelectionChanged(berry::IWorkbenchPart::Pointer part,
const QList &nodes)
{
Q_UNUSED(part);
Q_UNUSED(nodes);
}
-void QmitkImageStatisticsReloadedView::PrepareDataStorageComboBoxes()
+void QmitkImageStatisticsView::PrepareDataStorageComboBoxes()
{
auto isPlanarFigurePredicate = mitk::GetImageStatisticsPlanarFigurePredicate();
auto isMaskPredicate = mitk::GetImageStatisticsMaskPredicate();
auto isImagePredicate = mitk::GetImageStatisticsImagePredicate();
auto isMaskOrPlanarFigurePredicate = mitk::NodePredicateOr::New(isPlanarFigurePredicate, isMaskPredicate);
m_Controls.imageSelector->SetDataStorage(GetDataStorage());
m_Controls.imageSelector->SetPredicate(isImagePredicate);
m_Controls.maskImageSelector->SetDataStorage(GetDataStorage());
m_Controls.maskImageSelector->SetPredicate(isMaskOrPlanarFigurePredicate);
m_Controls.maskImageSelector->SetZeroEntryText("");
}
-void QmitkImageStatisticsReloadedView::Activated() {}
+void QmitkImageStatisticsView::Activated() {}
-void QmitkImageStatisticsReloadedView::Deactivated() {}
+void QmitkImageStatisticsView::Deactivated() {}
-void QmitkImageStatisticsReloadedView::Visible()
+void QmitkImageStatisticsView::Visible()
{
connect(this->m_Controls.imageSelector,
static_cast(&QComboBox::currentIndexChanged),
this,
- &QmitkImageStatisticsReloadedView::OnImageSelectorChanged);
+ &QmitkImageStatisticsView::OnImageSelectorChanged);
connect(this->m_Controls.maskImageSelector,
static_cast(&QComboBox::currentIndexChanged),
this,
- &QmitkImageStatisticsReloadedView::OnMaskSelectorChanged);
+ &QmitkImageStatisticsView::OnMaskSelectorChanged);
OnImageSelectorChanged();
OnMaskSelectorChanged();
}
-void QmitkImageStatisticsReloadedView::Hidden()
+void QmitkImageStatisticsView::Hidden()
{
m_Controls.imageSelector->disconnect();
m_Controls.maskImageSelector->disconnect();
}
-void QmitkImageStatisticsReloadedView::SetFocus() {}
+void QmitkImageStatisticsView::SetFocus() {}
diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.h
similarity index 86%
rename from Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h
rename to Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.h
index df952f210d..6390f25e7f 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsView.h
@@ -1,112 +1,112 @@
/*===================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center,
Division of Medical and Biological Informatics.
All rights reserved.
This software is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.
See LICENSE.txt or http://www.mitk.org for details.
===================================================================*/
-#ifndef QmitkImageStatisticsReloadedView_H__INCLUDED
-#define QmitkImageStatisticsReloadedView_H__INCLUDED
+#ifndef QmitkImageStatisticsView_H__INCLUDED
+#define QmitkImageStatisticsView_H__INCLUDED
-#include "ui_QmitkImageStatisticsReloadedViewControls.h"
+#include "ui_QmitkImageStatisticsViewControls.h"
// Qmitk includes
#include
#include
#include
#include
#include
#include
/*!
\brief QmitkImageStatisticsView is a bundle that allows statistics calculation from images. Three modes
are supported: 1. Statistics of one image, 2. Statistics of an image and a segmentation, 3. Statistics
of an image and a Planar Figure. The statistics calculation is realized in a separate thread to keep the
gui accessible during calculation.
\ingroup Plugins/org.mitk.gui.qt.measurementtoolbox
*/
-class QmitkImageStatisticsReloadedView : public QmitkAbstractView, public mitk::ILifecycleAwarePart, public berry::IPartListener
+class QmitkImageStatisticsView : public QmitkAbstractView, public mitk::ILifecycleAwarePart, public berry::IPartListener
{
Q_OBJECT
public:
using HistogramType = mitk::ImageStatisticsContainer::HistogramType;
/*!
\brief default constructor */
- QmitkImageStatisticsReloadedView(QObject *parent = nullptr, const char *name = nullptr);
+ QmitkImageStatisticsView(QObject *parent = nullptr, const char *name = nullptr);
/*!
\brief default destructor */
- virtual ~QmitkImageStatisticsReloadedView();
+ virtual ~QmitkImageStatisticsView();
/*!
\brief method for creating the widget containing the application controls, like sliders, buttons etc. */
virtual void CreateQtPartControl(QWidget *parent) override;
/*!
\brief method for creating the connections of main and control widget */
virtual void CreateConnections();
/*!
\brief Is called from the selection mechanism once the data manager selection has changed*/
void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList &selectedNodes) override;
void PrepareDataStorageComboBoxes();
static const std::string VIEW_ID;
void FillHistogramWidget(const std::vector& histogram, const std::vector& dataLabels);
QmitkChartWidget::ColorTheme GetColorTheme() const;
protected:
virtual void Activated() override;
virtual void Deactivated() override;
virtual void Visible() override;
virtual void Hidden() override;
virtual void SetFocus() override;
/** \brief Is called right before the view closes (before the destructor) */
virtual void PartClosed(const berry::IWorkbenchPartReference::Pointer&) override;
/** \brief Required for berry::IPartListener */
virtual Events::Types GetPartEventTypes() const override { return Events::CLOSED; }
void OnImageSelectorChanged();
void OnMaskSelectorChanged();
void CalculateOrGetStatistics();
void ComputeAndDisplayIntensityProfile(mitk::Image * image, mitk::PlanarFigure::Pointer maskPlanarFigure);
void ResetGUI();
void ResetGUIDefault();
void OnStatisticsCalculationEnds();
void OnRequestHistogramUpdate(unsigned int nBins);
void OnCheckBoxIgnoreZeroStateChanged(int state);
void OnSliderWidgetHistogramChanged(double value);
void CalculateStatistics(mitk::Image::ConstPointer image, mitk::Image::ConstPointer mask=nullptr, mitk::PlanarFigure::ConstPointer maskPlanarFigure = nullptr);
// member variables
- Ui::QmitkImageStatisticsReloadedViewControls m_Controls;
+ Ui::QmitkImageStatisticsViewControls m_Controls;
private:
- typedef itk::SimpleMemberCommand< QmitkImageStatisticsReloadedView > ITKCommandType;
+ typedef itk::SimpleMemberCommand< QmitkImageStatisticsView > ITKCommandType;
QmitkImageStatisticsCalculationJob * m_CalculationThread = nullptr;
bool m_StatisticsUpdatePending=false;
mitk::DataNode::ConstPointer m_selectedImageNode = nullptr, m_selectedMaskNode = nullptr;
mitk::PlanarFigure::Pointer m_selectedPlanarFigure=nullptr;
long m_PlanarFigureObserverTag;
bool m_ForceRecompute = false;
};
#endif // QmitkImageStatisticsView_H__INCLUDED
diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsViewControls.ui
similarity index 99%
rename from Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui
rename to Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsViewControls.ui
index dfd1df3073..82459f65dd 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsViewControls.ui
@@ -1,469 +1,469 @@
- QmitkImageStatisticsReloadedViewControls
-
+ QmitkImageStatisticsViewControls
+
true
0
0
419
1016
Form
-
QLayout::SetMinimumSize
4
-
0
0
false
-
255
0
0
0
0
0
255
0
0
0
0
0
120
120
120
120
120
120
Calculating statistics...
-
0
0
0
0
0
0
0
0
120
120
120
Mask image:
-
0
0
0
0
0
0
0
0
120
120
120
Image:
-
0
0
false
-
Ignore zero-valued voxels
-
0
200
Statistics
3
3
3
3
-
255
0
0
255
0
0
255
0
0
255
0
0
255
0
0
255
0
0
120
120
120
120
120
120
120
120
120
-
0
200
Histogram
-
-
-
-
-
Qt::Vertical
20
40
-
0
200
Intensity Profile
-
-
Qt::Vertical
20
40
+
+ QmitkImageStatisticsWidget
+ QWidget
+ QmitkImageStatisticsWidget.h
+ 1
+
QmitkDataStorageComboBox
QComboBox
QmitkDataStorageComboBox.h
QmitkHistogramVisualizationWidget
QWidget
QmitkHistogramVisualizationWidget.h
1
-
- QmitkImageStatisticsWidget
- QWidget
- QmitkImageStatisticsWidget.h
- 1
-
QmitkDataStorageComboBoxWithSelectNone
QComboBox
QmitkDataStorageComboBoxWithSelectNone.h
QmitkIntensityProfileVisualizationWidget
QWidget
QmitkIntensityProfileVisualizationWidget.h
1
ctkSliderWidget
QWidget
1
diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp
index ad305f2275..a48d1c5ae9 100644
--- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp
+++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp
@@ -1,39 +1,39 @@
/*===================================================================
The Medical Imaging Interaction Toolkit (MITK)
Copyright (c) German Cancer Research Center,
Division of Medical and Biological Informatics.
All rights reserved.
This software is distributed WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.
See LICENSE.txt or http://www.mitk.org for details.
===================================================================*/
#include "mitkPluginActivator.h"
#include "QmitkMeasurementView.h"
-#include "QmitkImageStatisticsReloadedView.h"
+#include "QmitkImageStatisticsView.h"
ctkPluginContext* mitk::PluginActivator::m_Context = nullptr;
ctkPluginContext* mitk::PluginActivator::GetContext()
{
return m_Context;
}
void mitk::PluginActivator::start(ctkPluginContext* context)
{
BERRY_REGISTER_EXTENSION_CLASS(QmitkMeasurementView, context)
- BERRY_REGISTER_EXTENSION_CLASS(QmitkImageStatisticsReloadedView, context)
+ BERRY_REGISTER_EXTENSION_CLASS(QmitkImageStatisticsView, context)
m_Context = context;
}
void mitk::PluginActivator::stop(ctkPluginContext* context)
{
Q_UNUSED(context)
m_Context = nullptr;
}