Adding platesolving

This commit is contained in:
2024-09-30 18:39:35 +02:00
parent dccb2e88da
commit 32973c54ce
16 changed files with 1075 additions and 210 deletions
+34 -1
View File
@@ -3,8 +3,8 @@
#include <cstring>
#include <QElapsedTimer>
#include <QFloat16>
#include <QColorSpace>
#include <lcms2.h>
//#include <libstellarsolver/stellarsolver.h>
using F16 = qfloat16;
@@ -804,6 +804,39 @@ std::shared_ptr<RawImage> RawImage::fromPlanar(const void *pixels, uint32_t w, u
return image;
}
std::shared_ptr<RawImage> RawImage::toPlanar()
{
std::shared_ptr<RawImage> ret = std::make_shared<RawImage>(m_width, m_height, 1, m_type);
size_t size = m_width * m_height;
size_t ch = m_ch;
auto convert = [&](auto *in, auto *out)
{
for(size_t i=0; i<size; i++)
out[i] = in[i * ch];
};
switch(m_type)
{
case UINT8:
convert(static_cast<uint8_t*>(data()), static_cast<uint8_t*>(ret->data()));
break;
case UINT16:
case FLOAT16:
convert(static_cast<uint16_t*>(data()), static_cast<uint16_t*>(ret->data()));
break;
case UINT32:
case FLOAT32:
convert(static_cast<uint32_t*>(data()), static_cast<uint32_t*>(ret->data()));
break;
case FLOAT64:
convert(static_cast<double*>(data()), static_cast<double*>(ret->data()));
break;
}
return ret;
}
std::vector<RawImage> RawImage::split() const
{
std::vector<RawImage> planes;