// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include "JFJochViewerROIResult.h" #include JFJochViewerROIResult::JFJochViewerROIResult(QWidget *parent) : QWidget(parent) { QGridLayout *layout = new QGridLayout; roi_sum = new QLabel("", this); roi_mean = new QLabel("", this); roi_var = new QLabel("", this); roi_max = new QLabel("", this); roi_npixel = new QLabel("", this); roi_masked = new QLabel("", this); roi_x = new QLabel("", this); roi_y = new QLabel("", this); label_1 = new QLabel("", this); label_2 = new QLabel("", this); label_1->setAlignment(Qt::AlignCenter); label_2->setAlignment(Qt::AlignCenter); layout->addWidget(roi_mean, 0, 0); layout->addWidget(roi_var, 0, 1); layout->addWidget(roi_sum, 0, 2); layout->addWidget(roi_max, 0, 3); layout->addWidget(label_1, 1,0,1,2); layout->addWidget(roi_npixel, 1, 2); layout->addWidget(roi_masked, 1, 3); layout->addWidget(label_2, 2,0,1,2); layout->addWidget(roi_x, 2, 2); layout->addWidget(roi_y, 2, 3); setLayout(layout); } void JFJochViewerROIResult::SetROIResult(ROIMessage roi) { if ( roi.pixels > 0) { auto roi_npixel_val = static_cast(roi.pixels); double roi_mean_val = static_cast(roi.sum) / roi_npixel_val; double variance = static_cast(roi.sum_square) / roi_npixel_val - roi_mean_val * roi_mean_val; roi_sum->setText(QString("Sum %1").arg(roi.sum)); roi_mean->setText(QString("Mean %1").arg(QString::number(roi_mean_val, 'f', 3))); roi_var->setText(QString("Var %1").arg(QString::number(variance, 'f', 3))); roi_max->setText(QString("Max %1").arg(roi.max_count)); roi_npixel->setText(QString("Valid %1").arg(roi.pixels)); roi_masked->setText(QString("Masked %1").arg(roi.pixels_masked)); roi_x->setText(QString("x: %1").arg(static_cast(roi.x_weighted) / roi.sum)); roi_y->setText(QString("y: %1").arg(static_cast(roi.y_weighted) / roi.sum)); label_1->setText(QString("Pixel count")); label_2->setText(QString("Center of mass")); } else { roi_sum->setText(""); roi_mean->setText(""); roi_var->setText(""); roi_max->setText(""); roi_npixel->setText(""); roi_masked->setText(""); roi_x->setText(""); roi_y->setText(""); label_1->setText(""); label_2->setText(""); } }