jfjoch_viewer: Extra panel for ROI (tbd)
This commit is contained in:
43
viewer/JFJochViewerImageROIStatistics.cpp
Normal file
43
viewer/JFJochViewerImageROIStatistics.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "JFJochViewerImageROIStatistics.h"
|
||||
|
||||
#include "../../.cache/JetBrains/CLion2025.2/.docker/2025_2/Docker/gitea_psi_ch_leonarski_f_jfjoch_ubuntu2404_2510/usr/include/x86_64-linux-gnu/qt6/QtWidgets/QVBoxLayout"
|
||||
|
||||
JFJochViewerImageROIStatistics::JFJochViewerImageROIStatistics(QWidget *parent)
|
||||
: QWidget(parent) {
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
roi_pos = new QLabel("None", this);
|
||||
roi_label = new QLabel("", this);
|
||||
|
||||
layout->addWidget(roi_pos);
|
||||
layout->addWidget(roi_label);
|
||||
}
|
||||
|
||||
void JFJochViewerImageROIStatistics::loadImage(std::shared_ptr<const JFJochReaderImage> image) {
|
||||
if (!image) {
|
||||
roi_pos->setText("None");
|
||||
roi_label->setText("");
|
||||
} else {
|
||||
auto roi = image->GetROI();
|
||||
|
||||
if (roi && roi->pixels > 0) {
|
||||
auto roi_npixel = static_cast<double>(roi->pixels);
|
||||
double roi_mean_val = static_cast<double>(roi->sum) / roi_npixel;
|
||||
double variance = static_cast<double>(roi->sum_square) / roi_npixel - roi_mean_val * roi_mean_val;
|
||||
|
||||
QString text = QString("Sum <b>%1</b> Mean <b>%2</b> Var <b>%3</b> Max <b>%4</b>")
|
||||
.arg(roi->sum)
|
||||
.arg(QString::number(roi_mean_val, 'f', 3))
|
||||
.arg(QString::number(variance, 'f', 3))
|
||||
.arg(roi->max_count);
|
||||
roi_label->setText(text);
|
||||
roi_pos->setText(QString::fromStdString(image->GetROIDescription()));
|
||||
} else {
|
||||
roi_label->setText("");
|
||||
roi_pos->setText("None");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user