diff --git a/Modules/ImageStatisticsUI/CMakeLists.txt b/Modules/ImageStatisticsUI/CMakeLists.txt new file mode 100644 index 0000000000..e485f5c3d3 --- /dev/null +++ b/Modules/ImageStatisticsUI/CMakeLists.txt @@ -0,0 +1,5 @@ +MITK_CREATE_MODULE( + INCLUDE_DIRS Qmitk + DEPENDS MitkCore MitkChart + PACKAGE_DEPENDS PRIVATE Qt5|WebEngineWidgets +) \ No newline at end of file diff --git a/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationControls.ui b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationControls.ui new file mode 100644 index 0000000000..ac4a41972c --- /dev/null +++ b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationControls.ui @@ -0,0 +1,405 @@ + + + QmitkHistogramVisualizationControls + + + + 0 + 0 + 540 + 460 + + + + + 540 + 460 + + + + Form + + + + false + + + + 0 + 0 + 530 + 450 + + + + + 400 + 450 + + + + + + + false + + + + + + false + + + + + + + + 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 + + + + + + + + + + + + + + + false + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Plot + + + + + + + + + 0 + 0 + + + + + + + Barchart + + + true + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + Linegraph + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Show Subchart + + + true + + + + + + + Use default #bins + + + true + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 60 + 0 + + + + + 100 + 16777215 + + + + # bins: + + + + + + + false + + + Press enter to recalculate statistics with new bin size. + + + 1 + + + 10000 + + + 100 + + + + + + + + + + + + + + 0 + 0 + + + + 0 + + + + + 0 + 0 + + + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Copy to Clipboard + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + QmitkChartWidget + QWidget +
QmitkChartWidget.h
+
+
+ + +
diff --git a/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.cpp b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.cpp new file mode 100644 index 0000000000..022d5e848c --- /dev/null +++ b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.cpp @@ -0,0 +1,69 @@ +/*=================================================================== + +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 "QmitkHistogramVisualizationWidget.h" + +HistogramVisualizationWidget::HistogramVisualizationWidget(QWidget* parent) : QWidget(parent) +{ + if (m_Controls == nullptr) + { + m_Controls = new Ui::QmitkHistogramVisualizationControls; + } + setupUi(this); + CreateConnections(); +} + +void HistogramVisualizationWidget::CreateConnections() +{ + connect(buttonCopyHistogramToClipboard, &QPushButton::clicked, this, &HistogramVisualizationWidget::OnClipboardButtonClicked); + connect(radioButtonBarchart, &QRadioButton::clicked, this, &HistogramVisualizationWidget::OnBarRadioButtonSelected); + connect(radioButtonLinegraph, &QRadioButton::clicked, this, &HistogramVisualizationWidget::OnLineRadioButtonSelected); + connect(checkBoxUseDefaultNBins, &QCheckBox::clicked, this, &HistogramVisualizationWidget::OnDefaultNBinsCheckBoxChanged); + connect(spinBoxNBins, &QSpinBox::editingFinished, this, &HistogramVisualizationWidget::OnNBinsSpinBoxValueChanged); + connect(checkBoxShowSubchart, &QCheckBox::clicked, this, &HistogramVisualizationWidget::OnShowSubchartCheckBoxChanged); +} + +void HistogramVisualizationWidget::EnableAllComponents() +{ + this->setEnabled(true); + groupBoxHistogram->setEnabled(true); + groupBoxPlot->setEnabled(true); + buttonCopyHistogramToClipboard->setEnabled(true); +} + +void HistogramVisualizationWidget::OnClipboardButtonClicked() +{ +} + +void HistogramVisualizationWidget::OnDefaultNBinsCheckBoxChanged() +{ +} + +void HistogramVisualizationWidget::OnNBinsSpinBoxValueChanged() +{ +} + +void HistogramVisualizationWidget::OnShowSubchartCheckBoxChanged() +{ +} + +void HistogramVisualizationWidget::OnBarRadioButtonSelected() +{ +} + +void HistogramVisualizationWidget::OnLineRadioButtonSelected() +{ +} diff --git a/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.h b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.h new file mode 100644 index 0000000000..b92d5e4eab --- /dev/null +++ b/Modules/ImageStatisticsUI/Qmitk/QmitkHistogramVisualizationWidget.h @@ -0,0 +1,61 @@ +/*=================================================================== + +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. + +===================================================================*/ +#pragma once + +//Qt +#include + +#include +#include + +class MITKIMAGESTATISTICSUI_EXPORT HistogramVisualizationWidget : public QWidget, private Ui::QmitkHistogramVisualizationControls +{ + Q_OBJECT + +public: + HistogramVisualizationWidget(QWidget* parent = nullptr); + + //void setHistogram(itk::Histogram::ConstPointer h); + +signals: + /** + * \brief Signal to be emitted when the number of bins is changed by the user. The HistogramCalculator should connect to this signal and recalculate the data accordingly. + */ + void RequestHistogramUpdate(unsigned int nBins); + +private: + + void CreateConnections(); + + void EnableAllComponents(); + +//slots + /** \brief Saves the histogram to the clipboard */ + void OnClipboardButtonClicked(); + /** \brief Toogle GUI elements if histogram default bin size checkbox value changed. */ + void OnDefaultNBinsCheckBoxChanged(); + + void OnNBinsSpinBoxValueChanged(); + + void OnShowSubchartCheckBoxChanged(); + + void OnBarRadioButtonSelected(); + + void OnLineRadioButtonSelected(); + +private: + Ui::QmitkHistogramVisualizationControls* m_Controls; +}; \ No newline at end of file diff --git a/Modules/ImageStatisticsUI/files.cmake b/Modules/ImageStatisticsUI/files.cmake new file mode 100644 index 0000000000..6d352e6329 --- /dev/null +++ b/Modules/ImageStatisticsUI/files.cmake @@ -0,0 +1,17 @@ +set(CPP_FILES + Qmitk/QmitkHistogramVisualizationWidget.cpp +) + +set(H_FILES +) + +set(TPP_FILES +) + +set(UI_FILES + Qmitk/QmitkHistogramVisualizationControls.ui +) + +set(MOC_H_FILES + Qmitk/QmitkHistogramVisualizationWidget.h +) diff --git a/Modules/ModuleList.cmake b/Modules/ModuleList.cmake index 220afef5f0..3dc7dd1186 100644 --- a/Modules/ModuleList.cmake +++ b/Modules/ModuleList.cmake @@ -1,77 +1,78 @@ # The entries in the mitk_modules list must be # ordered according to their dependencies. set(MITK_MODULES Core CommandLine AppUtil RDF LegacyIO DataTypesExt Annotation LegacyGL AlgorithmsExt MapperExt DICOMReader DICOMReaderServices DICOMTesting SceneSerializationBase PlanarFigure ImageDenoising ImageExtraction SceneSerialization Gizmo GraphAlgorithms Multilabel + Chart ImageStatistics + ImageStatisticsUI ContourModel SurfaceInterpolation Segmentation PlanarFigureSegmentation QtWidgets QtWidgetsExt - Chart SegmentationUI Classification GPGPU OpenIGTLink IGTBase IGT CameraCalibration OpenCL OpenCVVideoSupport QtOverlays ToFHardware ToFProcessing ToFUI PhotoacousticsHardware PhotoacousticsAlgorithms PhotoacousticsLib US USUI DicomUI Remeshing Python QtPython Persistence OpenIGTLinkUI IGTUI DicomRT RTUI IOExt XNAT TubeGraph BiophotonicsHardware MatchPointRegistration MatchPointRegistrationUI DiffusionImaging TumorInvasionAnalysis BoundingShape RenderWindowManager RenderWindowManagerUI CEST ) if(MITK_ENABLE_PIC_READER) list(APPEND MITK_MODULES IpPicSupportIO) endif() diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/CMakeLists.txt b/Plugins/org.mitk.gui.qt.measurementtoolbox/CMakeLists.txt index 9af2e00fda..8403f27fb6 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/CMakeLists.txt +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/CMakeLists.txt @@ -1,9 +1,9 @@ # The project name must correspond to the directory name of your plug-in # and must not contain periods. project(org_mitk_gui_qt_measurementtoolbox) mitk_create_plugin( EXPORT_DIRECTIVE MITK_QT_MEASUREMENTTOOLBOX EXPORTED_INCLUDE_SUFFIXES src - MODULE_DEPENDS MitkQtWidgetsExt MitkImageStatistics MitkPlanarFigure MitkChart -) + MODULE_DEPENDS MitkQtWidgetsExt MitkImageStatistics MitkImageStatisticsUI MitkPlanarFigure MitkChart +) \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui index 80ef24ee28..395c159cb8 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui @@ -1,78 +1,90 @@ QmitkImageStatisticsReloadedViewControls true 0 0 548 853 Form false Statistics 9 9 9 false 400 450 Histogram false - + + + + + Qt::Vertical 20 40 + + + HistogramVisualizationWidget + QWidget +
QmitkHistogramVisualizationWidget.h
+ 1 +
+