Lynkeos
Classes | Macros | Typedefs | Enumerations | Functions | Variables
Processing classes

Classes

class  LynkeosFourierBuffer
 Class used to wrap the Fourier transform with FFTW library. More...
 
protocol  <LynkeosImageBuffer>
 Generic image management. More...
 
protocol  <LynkeosProcessingParameter>
 Processing parameter. More...
 
protocol  <LynkeosAlignResult>
 The alignment result for an image. More...
 
class  LynkeosImageProcessingParameter
 Processing parameter for image processing. More...
 
protocol  <LynkeosProcessable>
 This protocol is implemented by the classes which store and provide parameters. More...
 
protocol  <LynkeosProcessableItem>
 This protocol is implemented by the classes that can be the target of a processing. More...
 
protocol  <LynkeosImageList>
 Base protocol for an image list. More...
 
protocol  <LynkeosDocument>
 This protocol gathers the methods provided to the processing classes by the document. More...
 
protocol  <LynkeosProcessing>
 Common protocol for all processing classes. More...
 
protocol  <LynkeosViewAlignResult>
 Part of the alignment result needed for display. More...
 
protocol  <LynkeosViewDocument>
 Protocol implemented by the document for processing views. More...
 
protocol  <LynkeosImageViewDelegate>
 Delegate to the image view. More...
 
protocol  <LynkeosImageView>
 Protocol implemented by the window image view for processing views. More...
 
protocol  <LynkeosWindowController>
 This protocol is provided by the document window controller. More...
 
protocol  <LynkeosProcessingView>
 Protocol implemented by the "view" part of each processing. More...
 
category  NSObject(LynkeosProcessingViewAdditions)
 Informal protocol for validating the process view. More...
 
union  ArithmeticOperand_t
 Internal type used for arithmetic operators. More...
 
class  LynkeosStandardImageBuffer
 Class used for floating precision images. More...
 
class  MyChromaticAlignParameter
 Chromatic alignment offsets. More...
 
class  MyChromaticAlignerView
 View controlling the chromatic alignment. More...
 
class  MyChromaticLevelsView
 View and process for modifying an image levels and gamma. More...
 
class  MyDeconvolutionParameters
 Deconvolution processing parameters. More...
 
class  MyDeconvolution
 Deconvolution processing class. More...
 
class  MyDeconvolutionView
 View controller of the deconvolution processing. More...
 
class  MyImageAlignerParameters
 General entry parameters for alignment. More...
 
class  MyImageAlignerListParameters
 Alignment parameters saved at the document level. More...
 
class  MyImageAligner
 Image aligner class. More...
 
class  MyImageAlignerView
 Aligner view controller class. More...
 
class  MyImageAlignerMonitor
 Lightweight object for validating and redraw. More...
 
class  MyImageAnalyzerParameters
 General entry parameters for image quality analysis. More...
 
class  MyImageAnalyzerResult
 Result of the analysis process (entry data for further processing) More...
 
class  MyAutoselectParams
 Autoselect parameters. More...
 
class  MyImageAnalyzer
 Image analysis processing class. More...
 
class  MyImageAnalyzerView
 View controller of the wavelet processing. More...
 
class  MyImageAnalyzerMonitor
 Lightweight object for validating. More...
 
class  MyImageStackerParameters
 Stacking parameters. More...
 
protocol  <MyImageStackerModeStrategy>
 Strategy for the stacking mode. More...
 
class  MyImageStackerList
 Call param which indicates which list to process. More...
 
class  MyImageStacker
 Stacker class. More...
 
class  MyImageStackerView
 View controller of the image stacking. More...
 
class  MyImageStackerMonitor
 Lightweight object for validating. More...
 
protocol  <MyLucyRichardsonDelegate>
 This protocol is used to inform the view about the progress. More...
 
class  MyLucyRichardsonParameters
 Lucy Richardson deconvolution parameters. More...
 
class  MyLucyRichardson
 Lucy Richardson deconvolution class. More...
 
class  MyLucyRichardsonViewParameters
 Derived parameter type which stores also some view info. More...
 
class  MyLucyRichardsonView
 View controller for Lucy/Richardson deconvolution. More...
 
class  MyLucyRichardsonMonitor
 Lightweight object for monitoring image size change. More...
 
class  MyUnsharpMaskParameters
 Unsharp mask processing parameters. More...
 
class  MyUnsharpMask
 Unsharp mask processing. More...
 
class  MyUnsharpMaskView
 View controller of the deconvolution processing. More...
 
struct  wavelet_t
 One wavelet definition. More...
 
class  MyWaveletParameters
 Wavelet processing parameters. More...
 
class  MyWavelet
 Wavelet processing. More...
 
class  MyWaveletView
 View controller of the deconvolution processing. More...
 
class  ProcessStackManager
 This class ensures the processing of the whole stack. More...
 
struct  CORRELATION_PEAK
 Description of the peak in the correlation data. More...
 

Macros

#define GET_SAMPLE(s, p, x, y, w)
 Convenience macro for accessing a sample plane with the required precision. More...
 
#define SET_SAMPLE(s, p, x, y, w, v)
 Convenience macro for accessing a sample plane with the required precision. More...
 

Typedefs

typedef REAL REALVECT __attribute__ ((vector_size(16)))
 Vector type.
 

Enumerations

enum  floating_precision_t { SINGLE_PRECISION, DOUBLE_PRECISION }
 Floating point precision of images.
 
enum  ProcessingViewKind_t { ListManagementKind, ListProcessingKind, ImageProcessingKind, OtherProcessingKind }
 Processing kind of the controller. More...
 
enum  ListMode_t { DarkFrameMode = 1, FlatFieldMode = 2, ImageMode = 4 }
 List working mode. More...
 
enum  DataMode_t { ListData = 8, ResultData = 16 }
 Which data is used. More...
 
enum  LynkeosProcessingViewFrame_t { BottomTab = 1, BottomTab_NoList = 2, SeparateView = 4, SeparateView_NoList = 8 }
 Prefered way of displaying the view. More...
 
enum  ImageOperatorsStrategy_t { StandardStrategy, ParallelizedStrategy }
 Strategy used for arithmetic operators. More...
 
enum  Stack_Mode_t { Stacking_Standard, Stacking_Sigma_Reject, Stacking_Extremum }
 Mode of stacking.
 
enum  PostStack_t { NoPostStack, MeanStack, NormalizeStack }
 Kind of postprocessing after stacking (for calibration frames) More...
 
enum  PsfKind_t { GaussianPSF = 0, SelectionPSF, ImageFilePSF }
 Kind of PSF.
 
enum  wavelet_kind_t { FrequencySawtooth_Wavelet, ESO_Wavelet }
 Kind of wavelet.
 
enum  MyAnalysisMethod { EntropyAnalysis, SpectrumAnalysis }
 Analysis method enumeration.
 

Functions

void correlate (LynkeosFourierBuffer *s1, LynkeosFourierBuffer *s2, LynkeosFourierBuffer *r)
 Correlate two images. More...
 
void correlate_spectrums (LynkeosFourierBuffer *s1, LynkeosFourierBuffer *s2, LynkeosFourierBuffer *r)
 Correlate two spectrums. More...
 
void corelation_peak (LynkeosFourierBuffer *result, CORRELATION_PEAK *peak)
 Search the correlation peak in the correlation data. More...
 
u_short adjustFFTside (u_short n)
 Adjust a value to the nearest power of 2, 3, 5, 7 for efficient FFT. More...
 
void adjustFFTrect (LynkeosIntegerRect *r)
 Adjust a rectangle size for efficient FFT (keeping the same center) More...
 
void initializeProcessing (void)
 Processing initialization. More...
 
void MakeGaussian (REAL *const *const planes, u_short width, u_short height, u_short nPlanes, u_short lineWidth, double radius)
 Create a bidimensional gaussian curve. More...
 

Variables

NSString *const LynkeosAlignRef
 Process string for the align result.
 
NSString *const LynkeosAlignResultRef
 Reference for reading/setting the alignment result.
 
NSString *const myChromaticAlignerRef
 Reference string for this process.
 
NSString *const myChromaticAlignerOffsetsRef
 Reference for reading/setting the chromatic dispersion results.
 
NSString *const myImageAlignerRef
 Reference string for this process.
 
NSString *const myImageAlignerParametersRef
 Reference for reading/setting the alignment entry parameters.
 
NSString *const myImageAnalyzerRef
 Reference string for this process.
 
NSString *const myImageAnalyzerParametersRef
 Reference for reading/setting the analysis entry parameters.
 
NSString *const myImageAnalyzerResultRef
 Reference for reading/setting the analysis result.
 
NSString *const myAutoselectParameterRef
 Reference for reading/setting the autoselect parameter.
 
NSString *const myImageStackerRef
 Reference string for this process.
 
NSString *const myImageStackerParametersRef
 Reference for reading/setting the stacking parameters.
 

Detailed Description

The processing classes provides image processing functions to the controler classes

Macro Definition Documentation

#define GET_SAMPLE (   s,
  p,
  x,
  y,
 
)
Value:
( (p) == SINGLE_PRECISION ? \
((float*)s)[(y)*(w)+(x)] : ((double*)s)[(y)*(w)+(x)] )

Convenience macro for accessing a sample plane with the required precision.

Parameters
sSample plane ("planes[color]" in saveXXX context)
pprecision ("precision" in saveXXX context)
xX coordinate of pixel
yY coordinate of pixel
wThe pixels line width of the samples buffer ("lineW" in saveXXX context)
#define SET_SAMPLE (   s,
  p,
  x,
  y,
  w,
 
)
Value:
if ( (p) == SINGLE_PRECISION ) \
{ \
((float*)s)[(y)*(w)+(x)] = (float)(v); \
} \
else \
{ \
((double*)s)[(y)*(w)+(x)] = (double)(v); \
}

Convenience macro for accessing a sample plane with the required precision.

Parameters
sSample plane ("planes[color]" in convertToPlanar context)
pprecision ("precision" in convertToPlanar context)
xX coordinate of pixel
yY coordinate of pixel
wThe pixels line width of the samples buffer ("lineW" in convertToPlanar context)
vThe value to store in the output buffer

Referenced by LynkeosStandardImageBuffer::extractSample:atX:Y:withWidth:height:withPlanes:lineWidth:.

Enumeration Type Documentation

enum DataMode_t

Which data is used.

Enumerator
ListData 

Working on the lists.

ResultData 

Working on the stacked result.

Strategy used for arithmetic operators.

Enumerator
StandardStrategy 

Operation is performed in the current thread.

ParallelizedStrategy 

Operation is parallelized in many threads.

enum ListMode_t

List working mode.

Enumerator
DarkFrameMode 

Currently working on dark frames.

FlatFieldMode 

Currently working on flat fields.

ImageMode 

Currently working on the images.

Prefered way of displaying the view.

Enumerator
BottomTab 

Processing view is displayed in the main window, at the bottom left.

BottomTab_NoList 

Processing view occupies all the left margin of the main window.

SeparateView 

Processing view is displayed in a separate window.

SeparateView_NoList 

Processing view is displayed in a separate window and the main window displays only the image

Kind of postprocessing after stacking (for calibration frames)

Enumerator
NoPostStack 

Leave stack as it is.

MeanStack 

Pixel value is the mean of all images.

NormalizeStack 

Normalize so that max value = 1.

Processing kind of the controller.

This is used for GUI organization

Enumerator
ListManagementKind 

Acts on the lists contents or organization.

ListProcessingKind 

Acts on a list without changing the images.

ImageProcessingKind 

Acts on an image.

OtherProcessingKind 

Something not falling in above categories.

Function Documentation

void adjustFFTrect ( LynkeosIntegerRect r)

Adjust a rectangle size for efficient FFT (keeping the same center)

Parameters
rthe rectangle to adjust
Returns
The adjusted rectangle

References adjustFFTside(), LynkeosIntegerSize::height, LynkeosIntegerRect::origin, LynkeosIntegerRect::size, LynkeosIntegerSize::width, LynkeosIntegerPoint::x, and LynkeosIntegerPoint::y.

Referenced by MyImageStackerView::cropRectangleChange:.

u_short adjustFFTside ( u_short  n)

Adjust a value to the nearest power of 2, 3, 5, 7 for efficient FFT.

Parameters
nthe value to adjust
Returns
The adjusted value

Referenced by adjustFFTrect().

void corelation_peak ( LynkeosFourierBuffer result,
CORRELATION_PEAK peak 
)

Search the correlation peak in the correlation data.

Parameters
resultCorrelation data (result from one correlate call)
peakArray of CORRELATION_PEAK (one entry per plane in result)

References LynkeosStandardImageBuffer::_h, LynkeosStandardImageBuffer::_nPlanes, LynkeosStandardImageBuffer::_w, colorValue, CORRELATION_PEAK::sigma_x, CORRELATION_PEAK::sigma_y, CORRELATION_PEAK::val, CORRELATION_PEAK::x, and CORRELATION_PEAK::y.

void correlate ( LynkeosFourierBuffer s1,
LynkeosFourierBuffer s2,
LynkeosFourierBuffer r 
)

Correlate two images.

Parameters
s1First image
s2Second image
rImage of the correlation data

References correlate_spectrums(), and LynkeosFourierBuffer::directTransform.

void correlate_spectrums ( LynkeosFourierBuffer s1,
LynkeosFourierBuffer s2,
LynkeosFourierBuffer r 
)

Correlate two spectrums.

Parameters
s1First spectrum
s2Second spectrum
rImage of the correlation data

References LynkeosFourierBuffer::inverseTransform, and LynkeosFourierBuffer::multiplyWithConjugateOf:result:.

Referenced by correlate().

void initializeProcessing ( void  )

Processing initialization.

Returns
None

To initialize the processing, we need to check if the processor support Altivec instructions and configure FFTW3 calls accordingly ; and then to retrieve the number of processors.

void MakeGaussian ( REAL *const *const  planes,
u_short  width,
u_short  height,
u_short  nPlanes,
u_short  lineWidth,
double  radius 
)

Create a bidimensional gaussian curve.

Parameters
[out]planesThe planes to fill with the gaussian
widthThe image width
heightThe image height
nPlanesThe number of planes to fill
lineWidthThe number of "REAL" in a line
radiusThe gaussian radius