QXRD  0.11.16
qxrddataprocessorbase.h
Go to the documentation of this file.
1 #ifndef QXRDDATAPROCESSORBASE_H
2 #define QXRDDATAPROCESSORBASE_H
3 
4 #include "qcepmacros.h"
5 
6 #include "qcepobject.h"
7 //#include <QReadWriteLock>
8 //#include <QAtomicInt>
9 #include <QWaitCondition>
10 //#include <QStack>
11 
12 #include "qcepproperty.h"
13 #include "qcepimagequeue.h"
14 #include "qcepimagedata-ptr.h"
15 #include "qcepmaskdata-ptr.h"
16 #include "qxrdmaskstack.h"
17 #include "qxrdmaskstack-ptr.h"
18 #include "qcepintegrateddata.h"
19 #include "qcepintegrateddata-ptr.h"
20 #include "qxrdfilesaver-ptr.h"
21 #include "qcepsettingssaver-ptr.h"
23 #include "qxrdpolartransform-ptr.h"
24 #include "qxrdpolartransform.h"
26 #include "qxrdpolarnormalization.h"
27 #include "qxrdintegrator-ptr.h"
28 #include "qxrdintegrator.h"
29 #include "qxrdcenterfinder-ptr.h"
30 #include "qxrdcenterfinder.h"
31 #include "qxrdexperiment-ptr.h"
32 #include "qxrdacquisition-ptr.h"
33 #include "qxrdwindow-ptr.h"
36 
38 {
39  Q_OBJECT
40 
41 public:
45  QxrdFileSaverWPtr filesaver);
46  virtual ~QxrdDataProcessorBase();
47 
48 public:
49 // Q_PROPERTY(QString outputDirectory READ get_OutputDirectory WRITE set_OutputDirectory)
50 // QCEP_STRING_PROPERTY(OutputDirectory)
51 
52  Q_PROPERTY(QString fileName READ get_FileName WRITE set_FileName STORED false)
53  QCEP_STRING_PROPERTY(FileName)
54 
55  Q_PROPERTY(QString dataPath READ get_DataPath WRITE set_DataPath)
56  QCEP_STRING_PROPERTY(DataPath)
57 
58  Q_PROPERTY(QString darkImagePath READ get_DarkImagePath WRITE set_DarkImagePath)
59  QCEP_STRING_PROPERTY(DarkImagePath)
60 
61  Q_PROPERTY(QString badPixelsPath READ get_BadPixelsPath WRITE set_BadPixelsPath)
62  QCEP_STRING_PROPERTY(BadPixelsPath)
63 
64  Q_PROPERTY(QString gainMapPath READ get_GainMapPath WRITE set_GainMapPath)
65  QCEP_STRING_PROPERTY(GainMapPath)
66 
67  Q_PROPERTY(QString maskPath READ get_MaskPath WRITE set_MaskPath)
68  QCEP_STRING_PROPERTY(MaskPath)
69 
70  Q_PROPERTY(QString scriptPath READ get_ScriptPath WRITE set_ScriptPath)
71  QCEP_STRING_PROPERTY(ScriptPath)
72 
73  Q_PROPERTY(bool performDarkSubtraction READ get_PerformDarkSubtraction WRITE set_PerformDarkSubtraction)
74  QCEP_BOOLEAN_PROPERTY(PerformDarkSubtraction)
75 
76  Q_PROPERTY(bool saveRawImages READ get_SaveRawImages WRITE set_SaveRawImages)
77  QCEP_BOOLEAN_PROPERTY(SaveRawImages)
78 
79  Q_PROPERTY(bool saveDarkImages READ get_SaveDarkImages WRITE set_SaveDarkImages)
80  QCEP_BOOLEAN_PROPERTY(SaveDarkImages)
81 
82  Q_PROPERTY(bool performBadPixels READ get_PerformBadPixels WRITE set_PerformBadPixels)
83  QCEP_BOOLEAN_PROPERTY(PerformBadPixels)
84 
85  Q_PROPERTY(bool performGainCorrection READ get_PerformGainCorrection WRITE set_PerformGainCorrection)
86  QCEP_BOOLEAN_PROPERTY(PerformGainCorrection)
87 
88  Q_PROPERTY(bool saveSubtracted READ get_SaveSubtracted WRITE set_SaveSubtracted)
89  QCEP_BOOLEAN_PROPERTY(SaveSubtracted)
90 
91  Q_PROPERTY(bool saveAsText READ get_SaveAsText WRITE set_SaveAsText)
92  QCEP_BOOLEAN_PROPERTY(SaveAsText)
93 
94  Q_PROPERTY(QString saveAsTextSeparator READ get_SaveAsTextSeparator WRITE set_SaveAsTextSeparator)
95  QCEP_STRING_PROPERTY(SaveAsTextSeparator)
96 
97  Q_PROPERTY(int saveAsTextPerLine READ get_SaveAsTextPerLine WRITE set_SaveAsTextPerLine)
98  QCEP_INTEGER_PROPERTY(SaveAsTextPerLine)
99 
100  Q_PROPERTY(bool saveOverflowFiles READ get_SaveOverflowFiles WRITE set_SaveOverflowFiles)
101  QCEP_BOOLEAN_PROPERTY(SaveOverflowFiles)
102 
103  Q_PROPERTY(bool performIntegration READ get_PerformIntegration WRITE set_PerformIntegration)
104  QCEP_BOOLEAN_PROPERTY(PerformIntegration)
105 
106  Q_PROPERTY(bool displayIntegratedData READ get_DisplayIntegratedData WRITE set_DisplayIntegratedData)
107  QCEP_BOOLEAN_PROPERTY(DisplayIntegratedData)
108 
109  Q_PROPERTY(bool saveIntegratedData READ get_SaveIntegratedData WRITE set_SaveIntegratedData)
110  QCEP_BOOLEAN_PROPERTY(SaveIntegratedData)
111 
112  Q_PROPERTY(QString saveIntegratedPath READ get_SaveIntegratedPath WRITE set_SaveIntegratedPath)
113  QCEP_STRING_PROPERTY(SaveIntegratedPath)
114 
115  Q_PROPERTY(bool saveDarkInSubdirectory READ get_SaveDarkInSubdirectory WRITE set_SaveDarkInSubdirectory)
116  QCEP_BOOLEAN_PROPERTY(SaveDarkInSubdirectory)
117 
118  Q_PROPERTY(QString saveDarkSubdirectory READ get_SaveDarkSubdirectory WRITE set_SaveDarkSubdirectory)
119  QCEP_STRING_PROPERTY(SaveDarkSubdirectory)
120 
121  Q_PROPERTY(bool saveRawInSubdirectory READ get_SaveRawInSubdirectory WRITE set_SaveRawInSubdirectory)
122  QCEP_BOOLEAN_PROPERTY(SaveRawInSubdirectory)
123 
124  Q_PROPERTY(QString saveRawSubdirectory READ get_SaveRawSubdirectory WRITE set_SaveRawSubdirectory)
125  QCEP_STRING_PROPERTY(SaveRawSubdirectory)
126 
127  Q_PROPERTY(bool saveSubtractedInSubdirectory READ get_SaveSubtractedInSubdirectory WRITE set_SaveSubtractedInSubdirectory)
128  QCEP_BOOLEAN_PROPERTY(SaveSubtractedInSubdirectory)
129 
130  Q_PROPERTY(QString saveSubtractedSubdirectory READ get_SaveSubtractedSubdirectory WRITE set_SaveSubtractedSubdirectory)
131  QCEP_STRING_PROPERTY(SaveSubtractedSubdirectory)
132 
133  Q_PROPERTY(bool saveIntegratedInSeparateFiles READ get_SaveIntegratedInSeparateFiles WRITE set_SaveIntegratedInSeparateFiles)
134  QCEP_BOOLEAN_PROPERTY(SaveIntegratedInSeparateFiles)
135 
136  Q_PROPERTY(bool saveIntegratedInSubdirectory READ get_SaveIntegratedInSubdirectory WRITE set_SaveIntegratedInSubdirectory)
137  QCEP_BOOLEAN_PROPERTY(SaveIntegratedInSubdirectory)
138 
139  Q_PROPERTY(QString saveIntegratedSubdirectory READ get_SaveIntegratedSubdirectory WRITE set_SaveIntegratedSubdirectory)
140  QCEP_STRING_PROPERTY(SaveIntegratedSubdirectory)
141 
142  Q_PROPERTY(bool accumulateIntegrated2D READ get_AccumulateIntegrated2D WRITE set_AccumulateIntegrated2D)
143  QCEP_BOOLEAN_PROPERTY(AccumulateIntegrated2D)
144 
145  Q_PROPERTY(QString accumulateIntegratedName READ get_AccumulateIntegratedName WRITE set_AccumulateIntegratedName)
146  QCEP_STRING_PROPERTY(AccumulateIntegratedName)
147 
148  Q_PROPERTY(QString accumulateIntegratedDirectory READ get_AccumulateIntegratedDirectory WRITE set_AccumulateIntegratedDirectory)
149  QCEP_STRING_PROPERTY(AccumulateIntegratedDirectory)
150 
151  Q_PROPERTY(QString accumulateIntegratedFileName READ get_AccumulateIntegratedFileName WRITE set_AccumulateIntegratedFileName)
152  QCEP_STRING_PROPERTY(AccumulateIntegratedFileName)
153 
154  Q_PROPERTY(QString accumulateIntegratedFormat READ get_AccumulateIntegratedFormat WRITE set_AccumulateIntegratedFormat)
155  QCEP_STRING_PROPERTY(AccumulateIntegratedFormat)
156 
157  Q_PROPERTY(double performDarkSubtractionTime READ get_PerformDarkSubtractionTime WRITE set_PerformDarkSubtractionTime)
158  QCEP_DOUBLE_PROPERTY(PerformDarkSubtractionTime)
159 
160  Q_PROPERTY(double performBadPixelsTime READ get_PerformBadPixelsTime WRITE set_PerformBadPixelsTime)
161  QCEP_DOUBLE_PROPERTY(PerformBadPixelsTime)
162 
163  Q_PROPERTY(double performGainCorrectionTime READ get_PerformGainCorrectionTime WRITE set_PerformGainCorrectionTime)
164  QCEP_DOUBLE_PROPERTY(PerformGainCorrectionTime)
165 
166  Q_PROPERTY(double saveSubtractedTime READ get_SaveSubtractedTime WRITE set_SaveSubtractedTime)
167  QCEP_DOUBLE_PROPERTY(SaveSubtractedTime)
168 
169  Q_PROPERTY(double saveAsTextTime READ get_SaveAsTextTime WRITE set_SaveAsTextTime)
170  QCEP_DOUBLE_PROPERTY(SaveAsTextTime)
171 
172  Q_PROPERTY(double performIntegrationTime READ get_PerformIntegrationTime WRITE set_PerformIntegrationTime)
173  QCEP_DOUBLE_PROPERTY(PerformIntegrationTime)
174 
175  Q_PROPERTY(double displayIntegratedDataTime READ get_DisplayIntegratedDataTime WRITE set_DisplayIntegratedDataTime)
176  QCEP_DOUBLE_PROPERTY(DisplayIntegratedDataTime)
177 
178  Q_PROPERTY(double saveIntegratedDataTime READ get_SaveIntegratedDataTime WRITE set_SaveIntegratedDataTime)
179  QCEP_DOUBLE_PROPERTY(SaveIntegratedDataTime)
180 
181  Q_PROPERTY(double estimatedProcessingTime READ get_EstimatedProcessingTime WRITE set_EstimatedProcessingTime)
182  QCEP_DOUBLE_PROPERTY(EstimatedProcessingTime)
183 
184  Q_PROPERTY(double averagingRatio READ get_AveragingRatio WRITE set_AveragingRatio)
185  QCEP_DOUBLE_PROPERTY(AveragingRatio)
186 
187 // Q_PROPERTY(QString fileName READ get_FileName WRITE set_FileName)
188 // QCEP_STRING_PROPERTY(FileName)
189 
190  Q_PROPERTY(double maskMinimumValue READ get_MaskMinimumValue WRITE set_MaskMinimumValue)
191  QCEP_DOUBLE_PROPERTY(MaskMinimumValue)
192 
193  Q_PROPERTY(double maskMaximumValue READ get_MaskMaximumValue WRITE set_MaskMaximumValue)
194  QCEP_DOUBLE_PROPERTY(MaskMaximumValue)
195 
196  Q_PROPERTY(double maskCircleRadius READ get_MaskCircleRadius WRITE set_MaskCircleRadius)
197  QCEP_DOUBLE_PROPERTY(MaskCircleRadius)
198 
199  Q_PROPERTY(bool maskSetPixels READ get_MaskSetPixels WRITE set_MaskSetPixels)
200  QCEP_BOOLEAN_PROPERTY(MaskSetPixels)
201 
202 // Q_PROPERTY(bool compressImages READ get_CompressImages WRITE set_CompressImages)
203 // QCEP_BOOLEAN_PROPERTY(CompressImages)
204 
205  Q_PROPERTY(double average READ get_Average WRITE set_Average STORED false)
206  QCEP_DOUBLE_PROPERTY(Average)
207 
208  Q_PROPERTY(double averageDark READ get_AverageDark WRITE set_AverageDark STORED false)
209  QCEP_DOUBLE_PROPERTY(AverageDark)
210 
211  Q_PROPERTY(double averageRaw READ get_AverageRaw WRITE set_AverageRaw STORED false)
212  QCEP_DOUBLE_PROPERTY(AverageRaw)
213 
214  Q_PROPERTY(int correctionQueueLength READ get_CorrectionQueueLength WRITE set_CorrectionQueueLength STORED false)
215  QCEP_INTEGER_PROPERTY(CorrectionQueueLength)
216 
217  Q_PROPERTY(int integrationQueueLength READ get_IntegrationQueueLength WRITE set_IntegrationQueueLength STORED false)
218  QCEP_INTEGER_PROPERTY(IntegrationQueueLength)
219 
220  Q_PROPERTY(int saverQueueLength READ get_SaverQueueLength WRITE set_SaverQueueLength STORED false)
221  QCEP_INTEGER_PROPERTY(SaverQueueLength)
222 
223  Q_PROPERTY(int zingerAlgorithm READ get_ZingerAlgorithm WRITE set_ZingerAlgorithm)
224  QCEP_INTEGER_PROPERTY(ZingerAlgorithm)
225 
226  Q_PROPERTY(int zingerMask READ get_ZingerMask WRITE set_ZingerMask)
227  QCEP_INTEGER_PROPERTY(ZingerMask)
228 
229  Q_PROPERTY(int zingerDestination READ get_ZingerDestination WRITE set_ZingerDestination)
230  QCEP_INTEGER_PROPERTY(ZingerDestination)
231 
232  Q_PROPERTY(int zingerSize1 READ get_ZingerSize1 WRITE set_ZingerSize1)
233  QCEP_INTEGER_PROPERTY(ZingerSize1)
234 
235  Q_PROPERTY(int zingerSize2 READ get_ZingerSize2 WRITE set_ZingerSize2)
236  QCEP_INTEGER_PROPERTY(ZingerSize2)
237 
238  Q_PROPERTY(double zingerThreshold READ get_ZingerThreshold WRITE set_ZingerThreshold)
239  QCEP_DOUBLE_PROPERTY(ZingerThreshold)
240 
241 public:
242  enum {
245  };
246 
247 signals:
249 
250 public slots:
251  void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
252  void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
253  void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const;
254 
255 public slots:
256  void shutdown();
257 
258  void showMaskRange();
259  void hideMaskRange();
260  void showMaskRange(double min, double max);
261  void hideMaskRange(double min, double max);
262  void showMaskAll();
263  void hideMaskAll();
264  void invertMask();
265  void growMask();
266  void shrinkMask();
267  void maskCircle(QRectF pt);
268  void maskPolygon(QVector<QPointF> poly);
269 
270  void measurePolygon(QVector<QPointF> poly);
271  virtual void slicePolygon(QVector<QPointF> poly) = 0;
272  void printMeasuredPolygon(QVector<QPointF> poly);
273  void summarizeMeasuredPolygon(QVector<QPointF> poly);
274  virtual void integrateSaveAndDisplay() = 0;
275 
276  QString pwd() const;
277 // void cd(QString path);
278  QStringList ls() const;
279  QStringList ls(QString pattern) const;
280 
281  void loadData(QString name);
282  void saveData(QString name, int canOverwrite=NoOverwrite);
283  void saveData(QcepDataObjectPtr object, QString name, int canOverwrite=NoOverwrite);
284 // void saveData(QcepDoubleImageDataPtr data, QString name, int canOverwrite=NoOverwrite);
285 
286  void loadDark(QString name);
287  void saveDark(QString name, int canOverwrite=NoOverwrite);
288  void loadMask(QString name);
289  void saveMask(QString name, int canOverwrite=NoOverwrite);
290  void loadBadPixels(QString name);
291  void saveBadPixels(QString name, int canOverwrite=NoOverwrite);
292  void loadGainMap(QString name);
293  void saveGainMap(QString name, int canOverwrite=NoOverwrite);
294  void saveCachedGeometry(QString name);
295  void saveCachedIntensity(QString name);
296  void clearDark();
297  void clearMask();
298  void clearBadPixels();
299  void clearGainMap();
300 
301  void subtractDark();
302  void unsubtractDark();
303  void multiplyData(double scalar);
304  void offsetData(double offset);
305 
306  int maskStackSize();
307  int maskStackPosition(int pos);
308  void newMaskStack();
310  void popMaskStack(int amount=1);
311  void clearMaskStack();
312  void clearMaskStackTop();
313  void rollMaskStack(int amount);
314  void exchangeMaskStack(int pos);
315  void andMaskStack(int pos);
316  void orMaskStack(int pos);
317  void xorMaskStack(int pos);
318  void andNotMaskStack(int pos);
319  void orNotMaskStack(int pos);
320  void xorNotMaskStack(int pos);
321  void invertMaskStack(int pos);
322  void growMaskStack(int pos);
323  void shrinkMaskStack(int pos);
324  void hideMaskAllStack(int pos);
325  void showMaskAllStack(int pos);
326  void hideMaskRangeStack(int pos);
327  void showMaskRangeStack(int pos);
328  void findZingers();
329 
330  void newImage(int ncols, int nrows);
331  void exponentialTail(double cx, double cy, double width, int oversample);
332  void reciprocalTail(double cx, double cy, double strength, int oversample);
333  void powderRing(double cx, double cy, double radius, double width, double strength, int oversample);
334  void ellipse(double cx, double cy, double a, double e, double ang, double width, double strength, int oversample);
335 
337 
338  void fileWriteTest(int dim, QString path);
339  int status(double delay);
340 
341  void calculateROI();
342  void calculateHistogram();
343 
346 
347  void newOutputScan(QString title);
348  void appendToOutputScan(double x, double y);
349  void plotOutputScan();
350  void saveOutputScan(QString fileName);
351 
352  QStringList integrateRectangle(int x0, int y0, int x1, int y1);
353 
354  QString existingOutputDirectory(QString dir, QString subdir) const;
355  QString filePathInExperimentDirectory(QString name) const;
356  QString filePathInDataDirectory(QString name) const;
357  QString filePathInDarkOutputDirectory(QString name) const;
358  QString filePathInRawOutputDirectory(QString name) const;
359  QString filePathInSubtractedOutputDirectory(QString name) const;
360  QString filePathInIntegratedOutputDirectory(QString name) const;
361  QString experimentDirectory() const;
362  QString dataDirectory() const;
363  QString darkOutputDirectory() const;
364  QString rawOutputDirectory() const;
365  QString subtractedOutputDirectory() const;
366  QString integratedOutputDirectory() const;
367 
373  QcepMaskDataPtr mask() const;
374  QcepMaskDataPtr overflow() const;
375 
376 public:
377  enum {
381  } ZingerConstants;
382 
383  void loadDefaultImages();
384 
385  QcepDoubleImageDataPtr takeNextFreeImage(int width, int height);
386 
387  void readSettings(QSettings *settings, QString section);
388  void writeSettings(QSettings *settings, QString section);
389 
391  void setWindow(QxrdWindowWPtr win);
392 
393 // QcepSettingsSaver *saver();
394 
395 
396  void createMaskIfNeeded();
397 
399 
405 
407 
409 
410  void newMask();
411 
412  void updateEstimatedTime(QcepDoubleProperty *prop, int msec);
413 
414 public slots:
416 
417 protected:
418  void saveNamedImageData(QString name, QcepDoubleImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite);
419  void saveNamedImageData(QString name, QcepInt16ImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite);
420  void saveNamedImageData(QString name, QcepInt32ImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite);
423  void saveNamedMaskData(QString name, QcepMaskDataPtr mask, int canOverwrite=NoOverwrite);
425  void writeOutputScan(QVector<double> x, QVector<double> y);
426 
431 
434 
437 
438  double estimatedProcessingTime(double estSerTime, double estParallelTime);
439 
440 protected:
444 
445  int newMaskWidth() const;
446  int newMaskHeight() const;
447 
448 protected:
451  int getAcquiredCount();
452 
458 
459 
460 private:
461  mutable QMutex m_Mutex;
462 
463 protected:
469  QWaitCondition m_ProcessWaiting;
477 // QcepMaskDataPtr m_Mask;
479 
481 
482  QAtomicInt m_AcquiredCount;
483 
488 
490 
492 
494 };
495 
496 #endif
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
QxrdPolarTransformPtr polarTransform() const
QSharedPointer< QxrdCenterFinder > QxrdCenterFinderPtr
void multiplyData(double scalar)
QcepMaskDataPtr mask() const
QcepDoubleImageDataPtr m_BadPixels
void powderRing(double cx, double cy, double radius, double width, double strength, int oversample)
QString experimentDirectory() const
QcepInt32ImageQueue m_AcquiredInt32Images
void newBadPixelsImage(QcepDoubleImageDataPtr image)
void subtractDarkImage(QcepDoubleImageDataPtr image, QcepDoubleImageDataPtr dark)
QcepDoubleImageDataPtr m_GainMap
QxrdPolarNormalizationPtr m_PolarNormalization
QcepDoubleImageDataPtr darkImage() const
#define QCEP_DOUBLE_PROPERTY(propname)
Definition: qcepproperty.h:629
QString rawOutputDirectory() const
QxrdCenterFinderPtr m_CenterFinder
void newDarkImage(QcepInt16ImageDataPtr image)
void saveOutputScan(QString fileName)
QxrdAcquisitionWPtr m_Acquisition
QcepDoubleImageDataPtr processAcquiredImage(QcepDoubleImageDataPtr processed, QcepDoubleImageDataPtr dimg, QcepDoubleImageDataPtr dark, QcepMaskDataPtr mask, QcepMaskDataPtr overflow, QcepDoubleList v=QcepDoubleList())
void saveNamedImageDataAsText(QString name, QcepDoubleImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite)
QcepDoubleImageDataPtr takeNextFreeImage(int width, int height)
void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
QString filePathInSubtractedOutputDirectory(QString name) const
QxrdDistortionCorrectionPtr distortionCorrection() const
void appendToOutputScan(double x, double y)
QxrdGenerateTestImageWPtr generateTestImage() const
QcepInt16ImageQueue m_AcquiredInt16Images
QString filePathInExperimentDirectory(QString name) const
void saveDark(QString name, int canOverwrite=NoOverwrite)
void newData(QcepDoubleImageDataPtr image, QcepMaskDataPtr overflow)
void newOutputScan(QString title)
void setWindow(QxrdWindowWPtr win)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
void newImage(int ncols, int nrows)
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
void popMaskStack(int amount=1)
QxrdGenerateTestImagePtr m_GenerateTestImage
void saveCachedIntensity(QString name)
void updateEstimatedTime(QcepDoubleProperty *prop, int msec)
QxrdDataProcessorBase(QcepSettingsSaverWPtr saver, QxrdExperimentWPtr doc, QxrdAcquisitionWPtr acq, QxrdFileSaverWPtr filesaver)
void saveData(QString name, int canOverwrite=NoOverwrite)
void ellipse(double cx, double cy, double a, double e, double ang, double width, double strength, int oversample)
void readSettings(QSettings *settings, QString section)
void newGainMapImage(QcepDoubleImageDataPtr image)
void writeSettings(QSettings *settings, QString section)
QcepDoubleImageDataPtr m_DarkFrame
void maskPolygon(QVector< QPointF > poly)
QcepDoubleImageDataPtr gainMap() const
QxrdIntegratorPtr integrator() const
void printMeasuredPolygon(QVector< QPointF > poly)
#define QCEP_INTEGER_PROPERTY(propname)
Definition: qcepproperty.h:698
QSharedPointer< QxrdPolarTransform > QxrdPolarTransformPtr
QcepDoubleImageDataPtr badPixels() const
QWeakPointer< QxrdWindow > QxrdWindowWPtr
Definition: qxrdwindow-ptr.h:9
QSharedPointer< QxrdGenerateTestImage > QxrdGenerateTestImagePtr
void saveGainMap(QString name, int canOverwrite=NoOverwrite)
void newIntegrationAvailable(QcepIntegratedDataPtr data)
QString existingOutputDirectory(QString dir, QString subdir) const
enum QxrdDataProcessorBase::@7 ZingerConstants
QcepDoubleImageDataPtr data() const
virtual void integrateSaveAndDisplay()=0
void loadBadPixels(QString name)
QSharedPointer< QxrdPolarNormalization > QxrdPolarNormalizationPtr
void saveCachedGeometry(QString name)
void measurePolygon(QVector< QPointF > poly)
QWeakPointer< QxrdFileSaver > QxrdFileSaverWPtr
QString filePathInDarkOutputDirectory(QString name) const
QStringList integrateRectangle(int x0, int y0, int x1, int y1)
QWeakPointer< QxrdGenerateTestImage > QxrdGenerateTestImageWPtr
QList< double > QcepDoubleList
Definition: qcepmacros.h:28
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
QxrdExperimentWPtr m_Experiment
QcepIntegratedDataPtr m_OutputScan
void correctBadPixels(QcepDoubleImageDataPtr image)
QcepDoubleImageDataPtr m_Data
QSharedPointer< QxrdIntegrator > QxrdIntegratorPtr
void performImageCorrections(QcepDoubleImageDataPtr image)
void summarizeMeasuredPolygon(QVector< QPointF > poly)
QxrdIntegratorPtr m_Integrator
QcepDoubleImageDataPtr processAcquiredDoubleImage(QcepDoubleImageDataPtr processed, QcepDoubleImageDataPtr image, QcepDoubleImageDataPtr dark, QcepMaskDataPtr mask, QcepMaskDataPtr overflow)
virtual void slicePolygon(QVector< QPointF > poly)=0
void writeOutputScan(QcepIntegratedDataPtr d)
#define QCEP_BOOLEAN_PROPERTY(propname)
Definition: qcepproperty.h:732
void pushMaskStack(QcepMaskDataPtr mask=QcepMaskDataPtr())
QxrdPolarTransformPtr m_PolarTransform
void saveNamedMaskData(QString name, QcepMaskDataPtr mask, int canOverwrite=NoOverwrite)
void offsetData(double offset)
void setAcquisition(QxrdAcquisitionWPtr acq)
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QcepDoubleImageDataPtr m_LiveData
QString subtractedOutputDirectory() const
void unsubtractDarkImage(QcepDoubleImageDataPtr image, QcepDoubleImageDataPtr dark)
QxrdPolarNormalizationPtr polarNormalization() const
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
QSharedPointer< QcepInt32ImageData > QcepInt32ImageDataPtr
QcepDoubleImageDataPtr processAcquiredInt16Image(QcepDoubleImageDataPtr processed, QcepInt16ImageDataPtr image, QcepDoubleImageDataPtr dark, QcepMaskDataPtr mask, QcepMaskDataPtr overflow)
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime()) const
QxrdDistortionCorrectionPtr m_DistortionCorrection
QString name
Definition: qcepobject.h:49
QString darkOutputDirectory() const
QString filePathInDataDirectory(QString name) const
void saveNamedImageData(QString name, QcepDoubleImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite)
QxrdCenterFinderPtr centerFinder() const
void reciprocalTail(double cx, double cy, double strength, int oversample)
QxrdExperimentPtr experiment() const
void loadGainMap(QString name)
QString filePathInIntegratedOutputDirectory(QString name) const
QcepDoubleImageDataPtr processAcquiredInt32Image(QcepDoubleImageDataPtr processed, QcepInt32ImageDataPtr image, QcepDoubleImageDataPtr dark, QcepMaskDataPtr mask, QcepMaskDataPtr overflow)
QSharedPointer< QcepInt16ImageData > QcepInt16ImageDataPtr
void fileWriteTest(int dim, QString path)
QSharedPointer< QcepMaskData > QcepMaskDataPtr
QxrdFileSaverWPtr m_FileSaver
QcepMaskDataPtr overflow() const
QcepSettingsSaverWPtr m_Saver
QcepDoubleImageDataPtr liveData() const
QSharedPointer< QxrdDistortionCorrection > QxrdDistortionCorrectionPtr
void saveMask(QString name, int canOverwrite=NoOverwrite)
void exponentialTail(double cx, double cy, double width, int oversample)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
QString filePathInRawOutputDirectory(QString name) const
void saveNamedRawImageData(QString name, QcepInt16ImageDataPtr image, QcepMaskDataPtr overflow, int canOverwrite=NoOverwrite)
void correctImageGains(QcepDoubleImageDataPtr image)
void saveBadPixels(QString name, int canOverwrite=NoOverwrite)
QSharedPointer< QcepDoubleImageData > QcepDoubleImageDataPtr
QString integratedOutputDirectory() const