Update LibXISF, fixes in RawImage

This commit is contained in:
2023-08-28 20:37:11 +02:00
parent 9ffbdcee30
commit f1a2aae9b6
7 changed files with 336 additions and 99 deletions
+16 -18
View File
@@ -327,15 +327,15 @@ bool loadXISF(const QString &path, ImageInfoData &info, std::shared_ptr<RawImage
default: break;
}
if(xisfImage.channelCount() == 1)
LibXISF::Image tmpImage = xisfImage;
tmpImage.convertPixelStorageTo(LibXISF::Image::Planar);
if(tmpImage.colorSpace() == LibXISF::Image::ColorSpace::Gray)
{
image = std::make_shared<RawImage>(xisfImage.width(), xisfImage.height(), 1, type);
std::memcpy(image->data(), xisfImage.imageData(), xisfImage.imageDataSize());
image = std::make_shared<RawImage>(tmpImage.width(), tmpImage.height(), 1, type);
std::memcpy(image->data(), tmpImage.imageData(), tmpImage.imageDataSize() / tmpImage.channelCount());
}
else if(xisfImage.channelCount() == 3 || xisfImage.channelCount() == 4)
else if(tmpImage.channelCount() == 3 || tmpImage.channelCount() == 4)
{
LibXISF::Image tmpImage = xisfImage;
tmpImage.convertPixelStorageTo(LibXISF::Image::Planar);
image = RawImage::fromPlanar(tmpImage.imageData(), tmpImage.width(), tmpImage.height(), tmpImage.channelCount(), type);
}
if(image)
@@ -407,21 +407,19 @@ void LoadRunable::run()
qDebug() << "LoadQImage" << timer.elapsed();
}
if(rawImage && m_analyzeLevel >= Statistics && !m_thumbnail)
if(rawImage /*&& m_analyzeLevel >= Statistics*/ && !m_thumbnail)
{
double mean, median, min, max, mad;
double stdDev;
uint32_t saturated;
timer.start();
rawImage->imageStats(&mean, &stdDev, &median, &min, &max, &mad, &saturated);
rawImage->calcStats();
const RawImage::Stats &stats = rawImage->imageStats();
qDebug() << "image stats" << timer.restart();
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)});
info.info.append({QObject::tr("Saturated"), QString::number(100.0 * saturated / rawImage->size()) + "%"});
info.info.append({QObject::tr("Mean"), QString::number(stats.m_mean[0])});
info.info.append({QObject::tr("Standart deviation"), QString::number(stats.m_stdDev[0])});
info.info.append({QObject::tr("Median"), QString::number(stats.m_median[0])});
info.info.append({QObject::tr("Minimum"), QString::number(stats.m_min[0])});
info.info.append({QObject::tr("Maximum"), QString::number(stats.m_max[0])});
info.info.append({QObject::tr("MAD"), QString::number(stats.m_mad[0])});
info.info.append({QObject::tr("Saturated"), QString::number(100.0 * stats.m_saturated[0] / rawImage->size()) + "%"});
if(m_analyzeLevel >= Peaks)
{