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
+37 -13
View File
@@ -12,11 +12,10 @@
Solver::Solver(QObject *parent) : QObject(parent)
{
_solver = new StellarSolver(this);
QStringList indexFolder = getIndexPaths();
connect(_solver, &StellarSolver::logOutput, this, &Solver::logOutput);
_solver->setProperty("ProcessType", SSolver::SOLVE);
_solver->setIndexFolderPaths(indexFolder);
_solver->setIndexFolderPaths(QStringList(getTenmonIndexPath()));
_solver->setParameterProfile(SSolver::Parameters::ALL_STARS);
connect(_solver, &StellarSolver::finished, this, &Solver::finished);
@@ -26,9 +25,9 @@ Solver::~Solver()
{
}
void Solver::setIndexFolders(const QStringList &indexPaths)
void Solver::setIndexFolder(const QString &indexPath)
{
_solver->setIndexFolderPaths(indexPaths);
_solver->setIndexFolderPaths(QStringList(indexPath));
}
bool Solver::loadImage(const QString &path)
@@ -46,6 +45,11 @@ bool Solver::loadImage(const QString &path)
bool Solver::loadImage(std::shared_ptr<RawImage> &image, const QString &path)
{
_rawImage = image;
if(_rawImage->channels() > 1)
_rawImagePlanar = _rawImage->toPlanar();
else
_rawImagePlanar = _rawImage;
switch(_rawImage->type())
{
case RawImage::UINT8:
@@ -68,13 +72,15 @@ bool Solver::loadImage(std::shared_ptr<RawImage> &image, const QString &path)
return false;
break;
}
_stats.bytesPerPixel = _rawImage->typeSize(_rawImage->type());
_stats.channels = _rawImage->channels();
_stats.width = _rawImage->width();
_stats.height = _rawImage->height();
_stats.bytesPerPixel = _rawImage->typeSize(_rawImagePlanar->type());
_stats.channels = _rawImagePlanar->channels();
_stats.width = _rawImagePlanar->width();
_stats.height = _rawImagePlanar->height();
_stats.samples_per_channel = _stats.width * _stats.height;
_loaded = _solver->loadNewImageBuffer(_stats, (const uint8_t*)_rawImage->data());
_solver->clearSearchPosition();
_solver->clearSearchScale();
_loaded = _solver->loadNewImageBuffer(_stats, (const uint8_t*)_rawImagePlanar->data());
_path = path;
return _loaded;
}
@@ -169,17 +175,35 @@ void Solver::updateHeader()
void Solver::setParameters(Parameters::ParametersProfile profile)
{
_solver->setParameterProfile(profile);
auto profileParam = _solver->getBuiltInProfiles().at(profile);
// TODO seems like any paralel is crashing with Qt6
profileParam.partition = false;
//profileParam.inParallel = false;
_solver->setParameters(profileParam);
}
void Solver::setParameters(const Parameters &parameters)
{
_solver->setParameters(parameters);
auto profile = parameters;
// TODO seems like any paralel is crashing with Qt6
profile.partition = false;
//profile.inParallel = false;
_solver->setParameters(profile);
}
void Solver::setSearchScale(double fovLow, double fowHigh, SSolver::ScaleUnits units)
{
_solver->setSearchScale(fovLow, fowHigh, units);
}
void Solver::setSearchPosition(double ra, double dec)
{
_solver->setSearchPositionRaDec(ra, dec);
}
QStringList Solver::getIndexPaths()
{
QStringList paths;// = StellarSolver::getDefaultIndexFolderPaths();
QStringList paths = StellarSolver::getDefaultIndexFolderPaths();
paths.prepend(getTenmonIndexPath());
return paths;
}