v1.0.0-rc.34
This commit is contained in:
127
viewer/JFJochViewerImageStatistics.cpp
Normal file
127
viewer/JFJochViewerImageStatistics.cpp
Normal file
@@ -0,0 +1,127 @@
|
||||
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#include "JFJochViewerImageStatistics.h"
|
||||
#include <QFormLayout>
|
||||
|
||||
JFJochViewerImageStatistics::JFJochViewerImageStatistics(JFJochReader &in_reader, QWidget *parent)
|
||||
: QWidget(parent), reader(in_reader) {
|
||||
QFormLayout* layout = new QFormLayout(this);
|
||||
|
||||
dataset_name = new QLabel(this);
|
||||
layout->addRow(new QLabel("Dataset:"), dataset_name);
|
||||
|
||||
detector_name = new QLabel(this);
|
||||
layout->addRow(new QLabel("Detector:"), detector_name);
|
||||
|
||||
error_pixels = new QLabel(this);
|
||||
layout->addRow(new QLabel("Error pixels:"), error_pixels);
|
||||
|
||||
sat_pixels = new QLabel(this);
|
||||
layout->addRow(new QLabel("Sat. pixels:"), sat_pixels);
|
||||
|
||||
valid_values = new QLabel(this);
|
||||
layout->addRow(new QLabel("Valid values:"), valid_values);
|
||||
|
||||
spots = new QLabel(this);
|
||||
layout->addRow(new QLabel("Spots:"), spots);
|
||||
|
||||
bkg_estimate = new QLabel(this);
|
||||
layout->addRow(new QLabel("Background:"), bkg_estimate);
|
||||
|
||||
indexed = new QLabel(this);
|
||||
layout->addRow(new QLabel("Indexing:"), indexed);
|
||||
|
||||
roi_sum = new QLabel(this);
|
||||
layout->addRow(new QLabel("ROI sum:"), roi_sum);
|
||||
|
||||
roi_mean = new QLabel(this);
|
||||
layout->addRow(new QLabel("ROI mean:"), roi_mean);
|
||||
|
||||
roi_stddev = new QLabel(this);
|
||||
layout->addRow(new QLabel("ROI st. dev.:"), roi_stddev);
|
||||
|
||||
roi_max = new QLabel(this);
|
||||
layout->addRow(new QLabel("ROI max:"), roi_max);
|
||||
|
||||
}
|
||||
|
||||
void JFJochViewerImageStatistics::noImage() {
|
||||
dataset_name->setText("");
|
||||
detector_name->setText("");
|
||||
error_pixels->setText("");
|
||||
sat_pixels->setText("");
|
||||
valid_values->setText("");
|
||||
spots->setText("");
|
||||
bkg_estimate->setText("");
|
||||
indexed->setText("");
|
||||
roi_sum->setText("");
|
||||
roi_mean->setText("");
|
||||
roi_stddev->setText("");
|
||||
roi_max->setText("");
|
||||
}
|
||||
|
||||
void JFJochViewerImageStatistics::loadImage() {
|
||||
auto image = reader.CopyImage();
|
||||
QString text;
|
||||
|
||||
text = QString("<b>%1</b>").arg(QString::fromStdString(image->dataset->name));
|
||||
dataset_name->setText(text);
|
||||
|
||||
text = QString("<b>%1</b>").arg(QString::fromStdString(image->dataset->detector_name));
|
||||
detector_name->setText(text);
|
||||
|
||||
text = QString("<b>%1</b>").arg(image->error_pixel.size());
|
||||
error_pixels->setText(text);
|
||||
|
||||
text = QString("<b>%1</b>").arg(image->saturated_pixel.size());
|
||||
sat_pixels->setText(text);
|
||||
|
||||
text = QString("<b>%1</b>").arg(image->spots.size());
|
||||
spots->setText(text);
|
||||
|
||||
text = QString("<b>%1</b> - <b>%2</b>")
|
||||
.arg(image->valid_pixel.begin()->first)
|
||||
.arg(image->valid_pixel.rbegin()->first);
|
||||
valid_values->setText(text);
|
||||
|
||||
if (image->dataset->bkg_estimate.size() > image->number) {
|
||||
text = QString("<b>%1</b>").arg(image->dataset->bkg_estimate[image->number]);
|
||||
bkg_estimate->setText(text);
|
||||
} else {
|
||||
bkg_estimate->setText("N/A");
|
||||
}
|
||||
|
||||
if (image->dataset->indexing_result.size() > image->number) {
|
||||
if (image->dataset->indexing_result[image->number] != 0)
|
||||
text = QString("<span style=\"color: green;\"><b>Lattice found</b></span>");
|
||||
else
|
||||
text = QString("<span style=\"color: red;\"><b>No lattice</b></span>");
|
||||
|
||||
indexed->setText(text);
|
||||
} else {
|
||||
indexed->setText("N/A");
|
||||
}
|
||||
|
||||
if (image->roi && image->roi->pixels > 0) {
|
||||
text = QString("<b>%1</b>").arg(image->roi->sum);
|
||||
roi_sum->setText(text);
|
||||
|
||||
auto roi_npixel = static_cast<double>(image->roi->pixels);
|
||||
double roi_mean_val = static_cast<double>(image->roi->sum) / roi_npixel;
|
||||
text = QString("<b>%1</b>").arg(QString::number(roi_mean_val, 'f', 3));
|
||||
roi_mean->setText(text);
|
||||
|
||||
double variance = static_cast<double>(image->roi->sum_square) / roi_npixel - roi_mean_val * roi_mean_val;
|
||||
text = QString("<b>%1</b>").arg(QString::number(sqrt(variance), 'f', 3));
|
||||
roi_stddev->setText(text);
|
||||
|
||||
text = QString("<b>%1</b>").arg(image->roi->max_count);
|
||||
roi_max->setText(text);
|
||||
} else {
|
||||
roi_sum->setText("N/A");
|
||||
roi_mean->setText("N/A");
|
||||
roi_stddev->setText("N/A");
|
||||
roi_max->setText("N/A");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user