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  < 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...
class  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...
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...

Defines

#define stdColorComplexValue(buf, p, x, y, c)
 Access to the complex value of a pixel in the spectrum.
#define GET_SAMPLE(s, p, x, y, w)
 Convenience macro for accessing a sample plane with the required precision.
#define SET_SAMPLE(s, p, x, y, w, v)
 Convenience macro for accessing a sample plane with the required precision.
#define stdColorValue(buf, prec, x, y, c)
 Access to one color component of a pixel.
 LynkeosFourierBuffer::stdColorComplexValue(buf, p, x, y, c)
 Access to the complex value of a pixel in the spectrum.
 LynkeosStandardImageBuffer::stdColorValue(buf, prec, x, y, c)
 Access to one color component of a pixel.

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  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.
void correlate_spectrums (LynkeosFourierBuffer *s1, LynkeosFourierBuffer *s2, LynkeosFourierBuffer *r)
 Correlate two spectrums.
void corelation_peak (LynkeosFourierBuffer *result, CORRELATION_PEAK *peak)
 Search the correlation peak in the correlation data.
u_short adjustFFTside (u_short n)
 Adjust a value to the nearest power of 2, 3, 5, 7 for efficient FFT.
void adjustFFTrect (LynkeosIntegerRect *r)
 Adjust a rectangle size for efficient FFT (keeping the same center).
void initializeProcessing (void)
 Processing initialization.
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.

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

Define 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:
s Sample plane ("planes[color]" in saveXXX context)
p precision ("precision" in saveXXX context)
x X coordinate of pixel
y Y coordinate of pixel
w The 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:
s Sample plane ("planes[color]" in convertToPlanar context)
p precision ("precision" in convertToPlanar context)
x X coordinate of pixel
y Y coordinate of pixel
w The pixels line width of the samples buffer ("lineW" in convertToPlanar context)
v The value to store in the output buffer

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

- stdColorComplexValue ( buf,
p,
x,
y,
 )  [related, inherited]

Access to the complex value of a pixel in the spectrum.

This method is provided as a macro for speed purpose.

Parameters:
buf The fourier buffer
p The processing precision
x The X coordinate of the pixel
y The Y coordinate of the pixel
c The color plane

#define stdColorComplexValue ( buf,
p,
x,
y,
 )  [related]

Value:

(p == SINGLE_PRECISION ? \
    (((float _Complex*)(buf)->_data)[((y)+(c)*(buf)->_h)*(buf)->_spadw+(x)]) : \
    (((double _Complex*)(buf)->_data)[((y)+(c)*(buf)->_h)*(buf)->_spadw+(x)]) )
Access to the complex value of a pixel in the spectrum.

This method is provided as a macro for speed purpose.

Parameters:
buf The fourier buffer
p The processing precision
x The X coordinate of the pixel
y The Y coordinate of the pixel
c The color plane

- stdColorValue ( buf,
prec,
x,
y,
 )  [related, inherited]

Access to one color component of a pixel.

This method is implemented as a macro for speed purpose

Parameters:
buf An instance of LynkeosStandardImageBuffer
prec The precision in which we are working
x Pixel's x coordinate
y Pixel's y coordinate
c Color plane
Returns:
The access for this pixel (it can be used as an lvalue)

#define stdColorValue ( buf,
prec,
x,
y,
 )  [related]

Value:

(prec==SINGLE_PRECISION ? \
      (((float*)(buf)->_data)[((y)+(c)*(buf)->_h)*(buf)->_padw+(x)]) : \
      (((double*)(buf)->_data)[((y)+(c)*(buf)->_h)*(buf)->_padw+(x)]) )
Access to one color component of a pixel.

This method is implemented as a macro for speed purpose

Parameters:
buf An instance of LynkeosStandardImageBuffer
prec The precision in which we are working
x Pixel's x coordinate
y Pixel's y coordinate
c Color plane
Returns:
The access for this pixel (it can be used as an lvalue)


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:
r the 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:
n the 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:
result Correlation data (result from one correlate call)
peak Array 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:
s1 First image
s2 Second image
r Image of the correlation data

References correlate_spectrums(), and LynkeosFourierBuffer::directTransform.

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

Correlate two spectrums.

Parameters:
s1 First spectrum
s2 Second spectrum
r Image 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] planes The planes to fill with the gaussian
width The image width
height The image height
nPlanes The number of planes to fill
lineWidth The number of "REAL" in a line
radius The gaussian radius


Generated on Fri Dec 19 16:35:30 2008 for Lynkeos by  doxygen 1.5.7.1