Kstars

fitsbahtinovdetector.h
1 /*
2  SPDX-FileCopyrightText: 2020 Patrick Molenaar <[email protected]>
3 
4  SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef FITSBAHTINOVDETECTOR_H
8 #define FITSBAHTINOVDETECTOR_H
9 
10 #include "fitsstardetector.h"
11 
12 class BahtinovLineAverage
13 {
14  public:
15  BahtinovLineAverage()
16  {
17  average = 0.0;
18  offset = 0;
19  }
20  virtual ~BahtinovLineAverage() = default;
21 
22  double average;
23  size_t offset;
24 };
25 
26 class FITSBahtinovDetector: public FITSStarDetector
27 {
28  Q_OBJECT
29 
30  public:
31  explicit FITSBahtinovDetector(FITSData *parent): FITSStarDetector(parent) {};
32 
33  public:
34  /** @brief Find sources in the parent FITS data file.
35  * @see FITSStarDetector::findSources().
36  */
37  QFuture<bool> findSources(QRect const &boundary = QRect()) override;
38 
39  /** @brief Configure the detection method.
40  * @see FITSStarDetector::configure().
41  * @note Parameter "numaveragerows" defaults to NUMBER_OF_AVERAGE_ROWS of the mean pixel value of the frame.
42  * @todo Provide parameters for detection configuration.
43  */
44  //void configure(const QString &setting, const QVariant &value) override;
45 
46  public:
47  /** @group Detection parameters.
48  * @{ */
49  //int NUMBER_OF_AVERAGE_ROWS { 1 };
50  /** @} */
51 
52  protected:
53  /** @internal Find sources in the parent FITS data file, dependent of the pixel depth.
54  * @see FITSGradientDetector::findSources.
55  */
56  template <typename T>
57  bool findBahtinovStar(const QRect &boundary);
58 
59  private:
60  template <typename T>
61  BahtinovLineAverage calculateMaxAverage(const FITSData *data, int angle);
62  template <typename T>
63  bool rotateImage(const FITSData *data, int angle, T * rotimage);
64 };
65 
66 #endif // FITSBAHTINOVDETECTOR_H
Q_OBJECTQ_OBJECT
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Fri Aug 12 2022 04:00:53 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.