WPOCT Software Developer's Kit (SDK)
SDK For using Wasatch Photonics OCT Spectrometers
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ScanProcessor Class Reference

Class that processes scans. More...

#include <ScanProcessor.h>

Inheritance diagram for ScanProcessor:
Inheritance graph
[legend]
Collaboration diagram for ScanProcessor:
Collaboration graph
[legend]

Public Member Functions

 ScanProcessor (IWPOCTConverter *scanConverter)
 
 ScanProcessor (IWPOCTConverter *scanConverter, int width, int height)
 
size_t GetProcessedDataSizeBytes ()
 
size_t GetProcessedDataSizeNative ()
 
int GetHeight ()
 
int GetWidth ()
 
int GetHalfHeight ()
 
int GetDepth ()
 
float GetAutoScaleMin ()
 
float GetAutoScaleMax ()
 
int GetAScanAverage ()
 
bool IsConvertingImage () const
 
IWPOCTConverter::ErrorCode GetLastError () const
 
bool GetIsZeroPad () const
 
DispersionGetDispersion () const
 
std::vector< float > GetDispersionCoefficients ()
 
void AdjustForBackground (const U16 *raw, SGL *&inputData)
 
void SetAutoScaleMin (float value)
 
void SetAutoScaleMax (float value)
 
bool SetAScanAverage (int value)
 
void SetIsZeroPad (bool value)
 
bool SetWidth (int value)
 
bool SetHeight (int value)
 
bool SetWidthAndHeight (int width, int height)
 
void SetDepth (int value)
 
int ComputeForDispersion (const unsigned short *inData, float *interim, float *&outData)
 Use this for Dispersion Compensation.
 
bool CalcDispersionCoefficients (const unsigned short *inData, int width, int height, float *coefficients)
 
bool SetDispersionOptimizationParameters (int numCoefficients, int maxIterations, float *initialGuesses, int startLine, int stopLine, int offset)
 
virtual GPUManagerGetGPUManager ()
 
virtual bool ComputeIntensity (IWPOCTInOutData *inOutData)
 
virtual bool ComputeIntensity (const unsigned short *inData, float *outIntensity)
 
virtual bool ComputePhaseIntensity (IWPOCTInOutData *inOutData, bool outputPhase)
 
virtual bool ComputePhaseIntensity (const unsigned short *inData, float *outIntensity, float *outPhase, bool outputPhase)
 This is the big one – the one that converts spectral data into an output intensity and phase.
 
virtual int GetFFTLength () const
 
virtual void SetScaleType (int sMethod)
 
virtual bool SetDispersionCoefficients (const float *dispersionCoeffients, int length)
 Set the dispersion coefficients.
 
bool UpdateBackgroundImage ()
 
bool GetBackgroundImage (float *buffer, int size)
 
bool SetBackgroundImage (float *buffer, int size)
 

Static Public Member Functions

static size_t GetPreFFTDataSize ()
 
static bool GetShiftUpLines ()
 
static int GetTopLinesToIgnore ()
 
static int GetBotLinesToIgnore ()
 
static bool GetOutputLogValues ()
 
static bool GetUseAutoContrast ()
 
static bool GetUseScaling ()
 
static bool GetUseApodization ()
 
static float GetAutoScaleUserMin ()
 
static float GetAutoScaleUserMax ()
 
static bool GetUseMovingAverage ()
 
static int GetMovingAverageWindowSize ()
 
static void SetShiftUpLines (bool value)
 
static bool SetTopLinesToIgnore (int value)
 
static bool SetBotLinesToIgnore (int value)
 
static bool SetOutputLogValues (bool value)
 
static bool SetUseAutoContrast (bool value)
 
static bool SetUseScaling (bool value)
 
static bool SetUseApodization (bool value)
 
static void SetAutoScaleUserMin (float value)
 
static void SetAutoScaleUserMax (float value)
 
static bool SetUseMovingAverage (bool value)
 
static bool SetMovingAverageWindowSize (int value)
 
static bool ResetMovingAverage ()
 

Public Attributes

boost::signals2::signal< void(int width, int height)> SignalWidthHeightChanged
 

Protected Member Functions

void Init ()
 
void SetScale (float minScale, float maxScale)
 
void SetNoiseStep ()
 
void SetScaleStep ()
 
void SetZeroPadRunFFT ()
 
void RunAssembly (bool withPhase)
 
virtual void CalcMemoryNeeded ()
 
virtual void ComputeFFT (WPFFT::FFTType type)
 
virtual void CorrectDispersion ()
 
virtual int PerformAveraging ()
 
virtual int ApplyHanningAndFringe ()
 
virtual int InitStorage ()
 
virtual void ReleaseStorage ()
 
virtual void InitInOutArrays ()
 
virtual void ReleaseInOutArrays ()
 
virtual void InitHelpers ()
 
virtual void ReleaseHelpers ()
 
virtual int CreateAnalyticPhase ()
 
virtual int AssembleIntensity (bool withPhase)
 
virtual int AssembleIntensityNoiseScale ()
 
virtual int ZeroPad ()
 
virtual int ContrastScale ()
 
virtual int TransferOutputAndPhase (float *outData, float *phaseData, bool outputPhase)
 
virtual int TransferOutputAndInterim (float *&outData, float *interim)
 
virtual void OnWidthHeightChanged (int width, int height)
 

Protected Attributes

IWPOCTConverter_scanConverter
 
int _width
 
int _height
 
int _halfHeight
 
int _depth
 
float _minNoise
 
float _maxNoise
 
float _noiseStep
 
float _minScale
 
float _maxScale
 
float _scaleStep
 
bool _isZeroPad
 
IWPOCTConverter::ErrorCode _lastError
 
bool _memAllocated
 
bool _initialized
 
bool _testCPU
 
bool _filenameSet
 
bool _padInit
 
float _autoScaleMin
 
float _autoScaleMax
 
std::atomic< bool > _convertingImage
 
float * _dummyFloat
 
Background_background
 
Dispersion_dispersion
 
Resampler_resampler
 
Averager_averager
 
WPFFT_fft
 
size_t _outputDataSize
 

Static Protected Attributes

static int _scaleType = 1
 
static int _refCount = 0
 
static std::atomic< int > _topLinesToIgnore = 10
 
static std::atomic< int > _botLinesToIgnore = 20
 
static std::atomic< bool > _outputLogValues = true
 
static std::atomic< bool > _useAutoContrast = false
 
static std::atomic< bool > _useScaling = true
 
static std::atomic< bool > _useApodization = false
 
static std::atomic< bool > _shiftUpLines = true
 
static std::atomic< float > _userAutoScaleMax = 0
 
static std::atomic< float > _userAutoScaleMin = 0
 
static MovingAverage_movingAverage = nullptr
 
static size_t _preFFT1DataSize = 0
 

Detailed Description

Class that processes scans.


The documentation for this class was generated from the following files: