Turn on calculating of image statistics
This commit is contained in:
+24
-11
@@ -7,9 +7,10 @@
|
||||
#include <fitsio2.h>
|
||||
#include "rawimage.h"
|
||||
|
||||
LoadRunable::LoadRunable(const QString &file, Image *receiver) :
|
||||
LoadRunable::LoadRunable(const QString &file, Image *receiver, bool stats) :
|
||||
m_file(file),
|
||||
m_receiver(receiver)
|
||||
m_receiver(receiver),
|
||||
m_calculateStats(stats)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -57,7 +58,7 @@ bool loadRAW(QString path, ImageInfoData &info, RawImageAbs **image, QImage *qi
|
||||
out[d++] = p;
|
||||
}
|
||||
}
|
||||
*image = new RawImage<uint16_t>(w, h, out);
|
||||
*image = new RawImage<uint16_t>(rawdata.sizes.width, rawdata.sizes.height, out);
|
||||
}
|
||||
|
||||
if(qimage)
|
||||
@@ -199,21 +200,19 @@ void LoadRunable::run()
|
||||
QFileInfo finfo(m_file);
|
||||
info.append(StringPair(QObject::tr("Filename"), finfo.fileName()));
|
||||
|
||||
QImage img;
|
||||
RawImageAbs *rawImage = nullptr;
|
||||
if(m_file.endsWith(".CR2", Qt::CaseInsensitive))
|
||||
{
|
||||
QImage img;
|
||||
loadRAW(m_file, info, nullptr, &img);
|
||||
QMetaObject::invokeMethod(m_receiver, "imageLoaded", Qt::QueuedConnection, Q_ARG(QImage, img), Q_ARG(ImageInfoData, info));
|
||||
loadRAW(m_file, info, m_calculateStats ? &rawImage : nullptr, &img);
|
||||
}
|
||||
else if(m_file.endsWith(".FIT", Qt::CaseInsensitive))
|
||||
{
|
||||
QImage img;
|
||||
if(loadFITS(m_file, info, nullptr, &img))
|
||||
QMetaObject::invokeMethod(m_receiver, "imageLoaded", Qt::QueuedConnection, Q_ARG(QImage, img), Q_ARG(ImageInfoData, info));
|
||||
loadFITS(m_file, info, m_calculateStats ? &rawImage : nullptr, &img);
|
||||
}
|
||||
else
|
||||
{
|
||||
QImage img(m_file);
|
||||
img = QImage(m_file);
|
||||
ExifData *exif = exif_data_new_from_file(m_file.toLocal8Bit().constData());
|
||||
info.append(StringPair(QObject::tr("Width"), QString::number(img.width())));
|
||||
info.append(StringPair(QObject::tr("Height"), QString::number(img.height())));
|
||||
@@ -221,7 +220,21 @@ void LoadRunable::run()
|
||||
{
|
||||
loadExifEntry(info, exif->ifd[EXIF_IFD_EXIF], EXIF_TAG_ISO_SPEED_RATINGS);
|
||||
loadExifEntry(info, exif->ifd[EXIF_IFD_EXIF], EXIF_TAG_SHUTTER_SPEED_VALUE);
|
||||
exif_data_free(exif);
|
||||
}
|
||||
QMetaObject::invokeMethod(m_receiver, "imageLoaded", Qt::QueuedConnection, Q_ARG(QImage, img), Q_ARG(ImageInfoData, info));
|
||||
}
|
||||
|
||||
if(rawImage)
|
||||
{
|
||||
uint64_t mean, median, min, max;
|
||||
double stdDev;
|
||||
rawImage->imageStats(&mean, &stdDev, &median, &min, &max);
|
||||
info.append(StringPair(QObject::tr("Mean"), QString::number(mean)));
|
||||
info.append(StringPair(QObject::tr("Standart deviation"), QString::number(stdDev)));
|
||||
info.append(StringPair(QObject::tr("Median"), QString::number(median)));
|
||||
info.append(StringPair(QObject::tr("Minimum"), QString::number(min)));
|
||||
info.append(StringPair(QObject::tr("Maximum"), QString::number(max)));
|
||||
}
|
||||
|
||||
QMetaObject::invokeMethod(m_receiver, "imageLoaded", Qt::QueuedConnection, Q_ARG(QImage, img), Q_ARG(ImageInfoData, info));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user