Refractor ImageInfoData
This commit is contained in:
+56
-30
@@ -26,7 +26,7 @@ void loadExifEntry(ImageInfoData &info, ExifContent *content, ExifTag tag)
|
||||
if(entry)
|
||||
{
|
||||
exif_entry_get_value(entry, val, sizeof(val));
|
||||
info.append(StringPair(exif_tag_get_title(tag), QString(val)));
|
||||
info.info.append({exif_tag_get_title(tag), val});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,14 +119,49 @@ bool loadRAW(QString path, ImageInfoData &info, RawImage **image)
|
||||
}
|
||||
//info.append(StringPair(QObject::tr("Width"), QString::number(rawImg->width)));
|
||||
//info.append(StringPair(QObject::tr("Height"), QString::number(rawImg->height)));
|
||||
info.append(StringPair(QObject::tr("ISO"), QString::number(raw.imgdata.other.iso_speed)));
|
||||
info.append(StringPair(QObject::tr("Shutter speed"), shutterSpeed));
|
||||
info.info.append({QObject::tr("ISO"), QString::number(raw.imgdata.other.iso_speed)});
|
||||
info.info.append({QObject::tr("Shutter speed"), shutterSpeed});
|
||||
#if LIBRAW_MINOR_VERSION>=19
|
||||
// info.append(StringPair(QObject::tr("Camera temperature"), QString::number(raw.imgdata.other.CameraTemperature)));
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void loadFITSHeader(fitsfile *file, ImageInfoData &info)
|
||||
{
|
||||
int nexist;
|
||||
int status = 0;
|
||||
char key[FLEN_KEYWORD];
|
||||
char val[FLEN_VALUE];
|
||||
char comm[FLEN_COMMENT];
|
||||
char strval[FLEN_VALUE];
|
||||
QVariant var;
|
||||
fits_get_hdrspace(file, &nexist, nullptr, &status);
|
||||
for(int i=1; i<=nexist; i++)
|
||||
{
|
||||
fits_read_keyn(file, i, key, val, comm, &status);
|
||||
fits_read_key(file, TSTRING, key, strval, nullptr, &status);
|
||||
if(status == 0 || status == VALUE_UNDEFINED)
|
||||
{
|
||||
QString string(strval);
|
||||
bool isint;
|
||||
bool isdouble;
|
||||
double vald = string.toDouble(&isdouble);
|
||||
long long vall = string.toLongLong(&isint);
|
||||
if(isint)
|
||||
var = vall;
|
||||
else if(isdouble)
|
||||
var = vald;
|
||||
else if(status == VALUE_UNDEFINED)
|
||||
var = QVariant();
|
||||
else
|
||||
var = strval;
|
||||
status = 0;
|
||||
info.fitsHeader.append({key, var, comm});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool loadFITS(QString path, ImageInfoData &info, RawImage **image)
|
||||
{
|
||||
if(!image)
|
||||
@@ -171,8 +206,8 @@ bool loadFITS(QString path, ImageInfoData &info, RawImage **image)
|
||||
size_t w = naxes[0];
|
||||
size_t h = naxes[1];
|
||||
|
||||
info.append(StringPair(QObject::tr("Width"), QString::number(naxes[0])));
|
||||
info.append(StringPair(QObject::tr("Height"), QString::number(naxes[1])));
|
||||
info.info.append({QObject::tr("Width"), QString::number(naxes[0])});
|
||||
info.info.append({QObject::tr("Height"), QString::number(naxes[1])});
|
||||
|
||||
for (int i=1; i==1 || i<=naxes[2]; i++)
|
||||
{
|
||||
@@ -195,24 +230,15 @@ bool loadFITS(QString path, ImageInfoData &info, RawImage **image)
|
||||
}
|
||||
}
|
||||
|
||||
int nheader = 0, more;
|
||||
fits_get_hdrspace(file, &nheader, &more, &status);
|
||||
for(int i=1; i<=nheader; i++)
|
||||
{
|
||||
char key[FLEN_KEYWORD];
|
||||
|
||||
char val[FLEN_VALUE];
|
||||
char comm[FLEN_COMMENT];
|
||||
fits_read_keyn(file, i, key, val, comm, &status);
|
||||
info.append(StringPair(key, QString(val)));
|
||||
}
|
||||
loadFITSHeader(file, info);
|
||||
|
||||
fits_close_file(file, &status);
|
||||
if(status)
|
||||
{
|
||||
char err[100];
|
||||
fits_get_errstatus(status, err);
|
||||
info.append(StringPair(QObject::tr("Error"), QString(err)));
|
||||
info.info.append({QObject::tr("Error"), QString(err)});
|
||||
qDebug() << err;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -227,7 +253,7 @@ void LoadRunable::run()
|
||||
QElapsedTimer timer;
|
||||
ImageInfoData info;
|
||||
QFileInfo finfo(m_file);
|
||||
info.append(StringPair(QObject::tr("Filename"), finfo.fileName()));
|
||||
info.info.append({QObject::tr("Filename"), finfo.fileName()});
|
||||
|
||||
RawImage *rawImage = nullptr;
|
||||
bool raw = false;
|
||||
@@ -246,8 +272,8 @@ void LoadRunable::run()
|
||||
{
|
||||
QImage img(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())));
|
||||
info.info.append({QObject::tr("Width"), QString::number(img.width())});
|
||||
info.info.append({QObject::tr("Height"), QString::number(img.height())});
|
||||
if(exif)
|
||||
{
|
||||
loadExifEntry(info, exif->ifd[EXIF_IFD_EXIF], EXIF_TAG_ISO_SPEED_RATINGS);
|
||||
@@ -264,12 +290,12 @@ void LoadRunable::run()
|
||||
timer.start();
|
||||
rawImage->imageStats(&mean, &stdDev, &median, &min, &max, &mad);
|
||||
qDebug() << "image stats" << timer.restart();
|
||||
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)));
|
||||
info.append(StringPair(QObject::tr("MAD"), QString::number(mad)));
|
||||
info.info.append({QObject::tr("Mean"), QString::number(mean)});
|
||||
info.info.append({QObject::tr("Standart deviation"), QString::number(stdDev)});
|
||||
info.info.append({QObject::tr("Median"), QString::number(median)});
|
||||
info.info.append({QObject::tr("Minimum"), QString::number(min)});
|
||||
info.info.append({QObject::tr("Maximum"), QString::number(max)});
|
||||
info.info.append({QObject::tr("MAD"), QString::number(mad)});
|
||||
|
||||
if(m_analyzeLevel >= Peaks)
|
||||
{
|
||||
@@ -286,8 +312,8 @@ void LoadRunable::run()
|
||||
//if(m_analyzeLevel == Peaks)
|
||||
// drawPeaks(img, peaks);
|
||||
qDebug() << "draw peaks" << timer.restart();
|
||||
info.append(StringPair(QObject::tr("Peaks"), QString::number(numPeaks)));
|
||||
info.append(StringPair(QObject::tr("Peaks draw"), QString::number(peaks.size())));
|
||||
info.info.append({QObject::tr("Peaks"), QString::number(numPeaks)});
|
||||
info.info.append({QObject::tr("Peaks draw"), QString::number(peaks.size())});
|
||||
|
||||
if(m_analyzeLevel>= Stars)
|
||||
{
|
||||
@@ -315,8 +341,8 @@ void LoadRunable::run()
|
||||
}
|
||||
}
|
||||
//drawStars(img, stars);
|
||||
info.append(StringPair(QObject::tr("FWHM X"), QString::number(fwhmX/stars.size())));
|
||||
info.append(StringPair(QObject::tr("FWHM Y"), QString::number(fwhmY/stars.size())));
|
||||
info.info.append({QObject::tr("FWHM X"), QString::number(fwhmX/stars.size())});
|
||||
info.info.append({QObject::tr("FWHM Y"), QString::number(fwhmY/stars.size())});
|
||||
}
|
||||
qDebug() << "Star fit" << timer.restart();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user