cacao  Release 0.1.03-dev
Compute And Control For Adaptive Optics
image_basic.c File Reference

basic image functions More...

#include <stdint.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sched.h>
#include <fitsio.h>
#include "CommandLineInterface/CLIcore.h"
#include "00CORE/00CORE.h"
#include "COREMOD_tools/COREMOD_tools.h"
#include "COREMOD_memory/COREMOD_memory.h"
#include "COREMOD_iofits/COREMOD_iofits.h"
#include "COREMOD_arith/COREMOD_arith.h"
#include "info/info.h"
#include "fft/fft.h"
#include "image_gen/image_gen.h"
#include "statistic/statistic.h"
#include "linopt_imtools/linopt_imtools.h"
#include "image_filter/image_filter.h"
#include "kdtree/kdtree.h"
#include "image_basic/image_basic.h"
Include dependency graph for image_basic.c:

Macros

#define MODULE_SHORTNAME_DEFAULT   ""
 
#define MODULE_DESCRIPTION   "Common image operations"
 
#define MODULE_APPLICATION   "milk"
 
#define SBUFFERSIZE   1000
 
#define SWAP(x, y)   temp=(x);x=(y);y=temp;
 
#define M_PI   3.14159265358979323846
 

Functions

errno_t image_basic_expand_cli ()
 
errno_t image_basic_expand3D_cli ()
 
errno_t image_basic_resize_cli ()
 
errno_t image_basic_rotate_cli ()
 
errno_t image_basic_3Dto2D_cli ()
 
errno_t image_basic_SwapAxis2D_cli ()
 
errno_t image_basic_add_cli ()
 
errno_t image_basic_add3D_cli ()
 
errno_t image_basic_contract_cli ()
 
errno_t image_basic_contract3D_cli ()
 
errno_t IMAGE_BASIC_get_assym_component_cli ()
 
errno_t IMAGE_BASIC_get_sym_component_cli ()
 
errno_t image_basic_load_fitsimages_cube_cli ()
 
errno_t image_basic_cubecollapse_cli ()
 
errno_t image_basic_indexmap_cli ()
 
errno_t image_basic_streamaverage_cli ()
 
errno_t image_basic_streamfeed_cli ()
 
errno_t IMAGE_BASIC_streamrecord_cli ()
 
static errno_t init_module_CLI ()
 
int basic_naninf2zero (const char *ID_name)
 
int basic_mincontract (__attribute__((unused)) const char *ID_name, __attribute__((unused)) uint8_t axis, __attribute__((unused)) const char *out_name)
 
int basic_lmin_im (const char *ID_name, const char *out_name)
 
int basic_lmax_im (const char *ID_name, const char *out_name)
 
imageID basic_add (const char *ID_name1, const char *ID_name2, const char *ID_name_out, long off1, long off2)
 
imageID basic_add3D (const char *ID_name1, const char *ID_name2, const char *ID_name_out, long off1, long off2, long off3)
 
long basic_diff (const char *ID_name1, const char *ID_name2, const char *ID_name_out, long off1, long off2)
 
int basic_add_cst (const char *ID_name, float f1, int sign)
 
long basic_extract (const char *ID_in_name, const char *ID_out_name, long n1, long n2, long n3, long n4)
 
int basic_trunc_circ (const char *ID_name, float f1)
 
long basic_expand (const char *ID_name, const char *ID_name_out, int n1, int n2)
 
long basic_expand3D (const char *ID_name, const char *ID_name_out, int n1, int n2, int n3)
 
long basic_zoom2 (const char *ID_name, const char *ID_name_out)
 
long basic_contract (const char *ID_name, const char *ID_name_out, int n1, int n2)
 
imageID basic_contract3D (const char *ID_name, const char *ID_name_out, int n1, int n2, int n3)
 
long basic_average_column (__attribute__((unused)) const char *ID_name, __attribute__((unused)) const char *IDout_name)
 
imageID basic_padd (const char *ID_name, const char *ID_name_out, int n1, int n2)
 
imageID basic_fliph (const char *ID_name)
 
imageID basic_flipv (const char *ID_name)
 
imageID basic_fliphv (const char *ID_name)
 
int basic_median (const char *ID_name, const char *options)
 
imageID basic_renorm_max (const char *ID_name)
 
imageID basic_rotate (const char *ID_name, const char *IDout_name, float angle)
 
int basic_rotate90 (const char *ID_name, const char *ID_out_name)
 
int basic_rotate_int (const char *ID_name, const char *ID_out_name, long nbstep)
 
int basic_translate (const char *ID_name, const char *ID_out, float xtransl, float ytransl)
 
float basic_correlation (const char *ID_name1, const char *ID_name2)
 
imageID IMAGE_BASIC_get_assym_component (const char *ID_name, const char *ID_out_name, float xcenter, float ycenter, const char *options)
 
imageID IMAGE_BASIC_get_sym_component (const char *ID_name, const char *ID_out_name, float xcenter, float ycenter)
 
int basic_rotate2 (const char *ID_name_in, const char *ID_name_out, float angle)
 
int basic_rotate3 (const char *ID_name_in, const char *ID_name_out, float angle)
 
int basic_stretch (const char *name_in, const char *name_out, float coeff, long Xcenter, long Ycenter)
 
int basic_stretch_range (const char *name_in, const char *name_out, float coeff1, float coeff2, long Xcenter, long Ycenter, long NBstep, float ApoCoeff)
 
int basic_stretchc (const char *name_in, const char *name_out, float coeff)
 
int gauss_histo_image (const char *ID_name, const char *ID_out_name, float sigma, float center)
 
long load_fitsimages (const char *strfilter)
 
long load_fitsimages_cube (const char *strfilter, const char *ID_out_name)
 
imageID basic_cube_center (const char *ID_in_name, const char *ID_out_name)
 
imageID cube_average (const char *ID_in_name, const char *ID_out_name, float alpha)
 
imageID cube_collapse (const char *ID_in_name, const char *ID_out_name)
 
imageID image_basic_indexmap (char *ID_index_name, char *ID_values_name, char *IDout_name)
 
long basic_addimagesfiles (const char *strfilter, const char *outname)
 
long basic_aveimagesfiles (const char *strfilter, const char *outname)
 
long basic_addimages (const char *prefix, const char *ID_out)
 
long basic_pasteimages (const char *prefix, long NBcol, const char *IDout_name)
 
long basic_averageimages (const char *prefix, const char *ID_out)
 
long basic_resizeim (const char *imname_in, const char *imname_out, long xsizeout, long ysizeout)
 
imageID image_basic_3Dto2D (const char *IDname)
 
imageID image_basic_SwapAxis2D (const char *IDin_name, const char *IDout_name)
 
imageID basic_tableto2Dim (const char *fname, float xmin, float xmax, float ymin, float ymax, long xsize, long ysize, const char *ID_name, float convsize)
 
imageID basic_2Dextrapolate_nearestpixel (const char *IDin_name, const char *IDmask_name, const char *IDout_name)
 
double basic_measure_transl (const char *ID_name1, const char *ID_name2, long tmax)
 
imageID IMAGE_BASIC_streamaverage (const char *IDname, long NBcoadd, const char *IDoutname, int mode, int semindex)
 Average an image stream. More...
 
long IMAGE_BASIC_streamfeed (const char *IDname, const char *streamname, float frequ)
 
imageID IMAGE_BASIC_streamrecord (const char *streamname, long NBframes, const char *IDname)
 

Variables

char errmsg [SBUFFERSIZE]
 

Detailed Description

basic image functions

Simple image routines

Macro Definition Documentation

◆ M_PI

#define M_PI   3.14159265358979323846

◆ MODULE_APPLICATION

#define MODULE_APPLICATION   "milk"

◆ MODULE_DESCRIPTION

#define MODULE_DESCRIPTION   "Common image operations"

◆ MODULE_SHORTNAME_DEFAULT

#define MODULE_SHORTNAME_DEFAULT   ""

◆ SBUFFERSIZE

#define SBUFFERSIZE   1000

◆ SWAP

#define SWAP (   x,
 
)    temp=(x);x=(y);y=temp;

Function Documentation

◆ basic_2Dextrapolate_nearestpixel()

imageID basic_2Dextrapolate_nearestpixel ( const char *  IDin_name,
const char *  IDmask_name,
const char *  IDout_name 
)

◆ basic_add()

imageID basic_add ( const char *  ID_name1,
const char *  ID_name2,
const char *  ID_name_out,
long  off1,
long  off2 
)

◆ basic_add3D()

imageID basic_add3D ( const char *  ID_name1,
const char *  ID_name2,
const char *  ID_name_out,
long  off1,
long  off2,
long  off3 
)

◆ basic_add_cst()

int basic_add_cst ( const char *  ID_name,
float  f1,
int  sign 
)

◆ basic_addimages()

long basic_addimages ( const char *  prefix,
const char *  ID_out 
)

◆ basic_addimagesfiles()

long basic_addimagesfiles ( const char *  strfilter,
const char *  outname 
)

◆ basic_aveimagesfiles()

long basic_aveimagesfiles ( const char *  strfilter,
const char *  outname 
)

◆ basic_average_column()

long basic_average_column ( __attribute__((unused)) const char *  ID_name,
__attribute__((unused)) const char *  IDout_name 
)

◆ basic_averageimages()

long basic_averageimages ( const char *  prefix,
const char *  ID_out 
)

◆ basic_contract()

long basic_contract ( const char *  ID_name,
const char *  ID_name_out,
int  n1,
int  n2 
)

◆ basic_contract3D()

imageID basic_contract3D ( const char *  ID_name,
const char *  ID_name_out,
int  n1,
int  n2,
int  n3 
)

◆ basic_correlation()

float basic_correlation ( const char *  ID_name1,
const char *  ID_name2 
)

◆ basic_cube_center()

imageID basic_cube_center ( const char *  ID_in_name,
const char *  ID_out_name 
)

◆ basic_diff()

long basic_diff ( const char *  ID_name1,
const char *  ID_name2,
const char *  ID_name_out,
long  off1,
long  off2 
)

◆ basic_expand()

long basic_expand ( const char *  ID_name,
const char *  ID_name_out,
int  n1,
int  n2 
)

◆ basic_expand3D()

long basic_expand3D ( const char *  ID_name,
const char *  ID_name_out,
int  n1,
int  n2,
int  n3 
)

◆ basic_extract()

long basic_extract ( const char *  ID_in_name,
const char *  ID_out_name,
long  n1,
long  n2,
long  n3,
long  n4 
)

◆ basic_fliph()

imageID basic_fliph ( const char *  ID_name)

◆ basic_fliphv()

imageID basic_fliphv ( const char *  ID_name)

◆ basic_flipv()

imageID basic_flipv ( const char *  ID_name)

◆ basic_lmax_im()

int basic_lmax_im ( const char *  ID_name,
const char *  out_name 
)

◆ basic_lmin_im()

int basic_lmin_im ( const char *  ID_name,
const char *  out_name 
)

◆ basic_measure_transl()

double basic_measure_transl ( const char *  ID_name1,
const char *  ID_name2,
long  tmax 
)

◆ basic_median()

int basic_median ( const char *  ID_name,
const char *  options 
)

◆ basic_mincontract()

int basic_mincontract ( __attribute__((unused)) const char *  ID_name,
__attribute__((unused)) uint8_t  axis,
__attribute__((unused)) const char *  out_name 
)

◆ basic_naninf2zero()

int basic_naninf2zero ( const char *  ID_name)

◆ basic_padd()

imageID basic_padd ( const char *  ID_name,
const char *  ID_name_out,
int  n1,
int  n2 
)

◆ basic_pasteimages()

long basic_pasteimages ( const char *  prefix,
long  NBcol,
const char *  IDout_name 
)

◆ basic_renorm_max()

imageID basic_renorm_max ( const char *  ID_name)

◆ basic_resizeim()

long basic_resizeim ( const char *  imname_in,
const char *  imname_out,
long  xsizeout,
long  ysizeout 
)

◆ basic_rotate()

imageID basic_rotate ( const char *  ID_name,
const char *  IDout_name,
float  angle 
)

◆ basic_rotate2()

int basic_rotate2 ( const char *  ID_name_in,
const char *  ID_name_out,
float  angle 
)

◆ basic_rotate3()

int basic_rotate3 ( const char *  ID_name_in,
const char *  ID_name_out,
float  angle 
)

◆ basic_rotate90()

int basic_rotate90 ( const char *  ID_name,
const char *  ID_out_name 
)

◆ basic_rotate_int()

int basic_rotate_int ( const char *  ID_name,
const char *  ID_out_name,
long  nbstep 
)

◆ basic_stretch()

int basic_stretch ( const char *  name_in,
const char *  name_out,
float  coeff,
long  Xcenter,
long  Ycenter 
)

◆ basic_stretch_range()

int basic_stretch_range ( const char *  name_in,
const char *  name_out,
float  coeff1,
float  coeff2,
long  Xcenter,
long  Ycenter,
long  NBstep,
float  ApoCoeff 
)

◆ basic_stretchc()

int basic_stretchc ( const char *  name_in,
const char *  name_out,
float  coeff 
)

◆ basic_tableto2Dim()

imageID basic_tableto2Dim ( const char *  fname,
float  xmin,
float  xmax,
float  ymin,
float  ymax,
long  xsize,
long  ysize,
const char *  ID_name,
float  convsize 
)

◆ basic_translate()

int basic_translate ( const char *  ID_name,
const char *  ID_out,
float  xtransl,
float  ytransl 
)

◆ basic_trunc_circ()

int basic_trunc_circ ( const char *  ID_name,
float  f1 
)

◆ basic_zoom2()

long basic_zoom2 ( const char *  ID_name,
const char *  ID_name_out 
)

◆ cube_average()

imageID cube_average ( const char *  ID_in_name,
const char *  ID_out_name,
float  alpha 
)

◆ cube_collapse()

imageID cube_collapse ( const char *  ID_in_name,
const char *  ID_out_name 
)

◆ gauss_histo_image()

int gauss_histo_image ( const char *  ID_name,
const char *  ID_out_name,
float  sigma,
float  center 
)

◆ image_basic_3Dto2D()

imageID image_basic_3Dto2D ( const char *  IDname)

◆ image_basic_3Dto2D_cli()

errno_t image_basic_3Dto2D_cli ( )

◆ image_basic_add3D_cli()

errno_t image_basic_add3D_cli ( )

◆ image_basic_add_cli()

errno_t image_basic_add_cli ( )

◆ image_basic_contract3D_cli()

errno_t image_basic_contract3D_cli ( )

◆ image_basic_contract_cli()

errno_t image_basic_contract_cli ( )

◆ image_basic_cubecollapse_cli()

errno_t image_basic_cubecollapse_cli ( )

◆ image_basic_expand3D_cli()

errno_t image_basic_expand3D_cli ( )

◆ image_basic_expand_cli()

errno_t image_basic_expand_cli ( )

◆ IMAGE_BASIC_get_assym_component()

imageID IMAGE_BASIC_get_assym_component ( const char *  ID_name,
const char *  ID_out_name,
float  xcenter,
float  ycenter,
const char *  options 
)

◆ IMAGE_BASIC_get_assym_component_cli()

errno_t IMAGE_BASIC_get_assym_component_cli ( )

◆ IMAGE_BASIC_get_sym_component()

imageID IMAGE_BASIC_get_sym_component ( const char *  ID_name,
const char *  ID_out_name,
float  xcenter,
float  ycenter 
)

◆ IMAGE_BASIC_get_sym_component_cli()

errno_t IMAGE_BASIC_get_sym_component_cli ( )

◆ image_basic_indexmap()

imageID image_basic_indexmap ( char *  ID_index_name,
char *  ID_values_name,
char *  IDout_name 
)

◆ image_basic_indexmap_cli()

errno_t image_basic_indexmap_cli ( )

◆ image_basic_load_fitsimages_cube_cli()

errno_t image_basic_load_fitsimages_cube_cli ( )

◆ image_basic_resize_cli()

errno_t image_basic_resize_cli ( )

◆ image_basic_rotate_cli()

errno_t image_basic_rotate_cli ( )

◆ IMAGE_BASIC_streamaverage()

imageID IMAGE_BASIC_streamaverage ( const char *  IDname,
long  NBcoadd,
const char *  IDoutname,
int  mode,
int  semindex 
)

Average an image stream.

coadd frames from image stream output is by default float type mode : 0 : simple average 1 : average + std dev (std dev in "imgstreamrms") 2 : average + std dev -> badpix map for detector calibration ("badpixmap") 3 : same as 1

Note
Averaging will stop when receiving signal SIGUSR1
If semindex<0, use counter instead of semaphore

◆ image_basic_streamaverage_cli()

errno_t image_basic_streamaverage_cli ( )

◆ IMAGE_BASIC_streamfeed()

long IMAGE_BASIC_streamfeed ( const char *  IDname,
const char *  streamname,
float  frequ 
)

◆ image_basic_streamfeed_cli()

errno_t image_basic_streamfeed_cli ( )

◆ IMAGE_BASIC_streamrecord()

imageID IMAGE_BASIC_streamrecord ( const char *  streamname,
long  NBframes,
const char *  IDname 
)

◆ IMAGE_BASIC_streamrecord_cli()

errno_t IMAGE_BASIC_streamrecord_cli ( )

◆ image_basic_SwapAxis2D()

imageID image_basic_SwapAxis2D ( const char *  IDin_name,
const char *  IDout_name 
)

◆ image_basic_SwapAxis2D_cli()

errno_t image_basic_SwapAxis2D_cli ( )

◆ init_module_CLI()

static errno_t init_module_CLI ( )
static

◆ load_fitsimages()

long load_fitsimages ( const char *  strfilter)

◆ load_fitsimages_cube()

long load_fitsimages_cube ( const char *  strfilter,
const char *  ID_out_name 
)

Variable Documentation

◆ errmsg

char errmsg[SBUFFERSIZE]