Adding platesolving
This commit is contained in:
+37
-13
@@ -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 ¶meters)
|
||||
{
|
||||
_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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user