/******************************************************************* | |
* morpho_easy_hdr.h | |
* [CP932/CRLF] { »û®©®»èp } | |
*------------------------------------------------------------------ | |
* Copyright (C) 2010-2012 Morpho,Inc. | |
*******************************************************************/ | |
#ifndef MORPHO_EASY_HDR_H | |
#define MORPHO_EASY_HDR_H | |
/*******************************************************************/ | |
#include "morpho_api.h" | |
#include "morpho_error.h" | |
#include "morpho_image_data.h" | |
#include "morpho_rect_int.h" | |
/*******************************************************************/ | |
#define MORPHO_EASY_HDR_VER "Morpho EasyHDR Ver.2.0.1 2012/07/18" | |
/*-----------------------------------------------------------------*/ | |
/* (input-limitaion) */ | |
#define MORPHO_EASY_HDR_MIN_IMAGE_WIDTH 100 | |
#define MORPHO_EASY_HDR_MAX_IMAGE_WIDTH 8192 | |
#define MORPHO_EASY_HDR_MIN_IMAGE_HEIGHT 100 | |
#define MORPHO_EASY_HDR_MAX_IMAGE_HEIGHT 8192 | |
#define MORPHO_EASY_HDR_MIN_NIMAGES 2 | |
#define MORPHO_EASY_HDR_MAX_NIMAGES 10 | |
/*-----------------------------------------------------------------*/ | |
/* (parameter) */ | |
#define MORPHO_EASY_HDR_DISABLED 0 | |
#define MORPHO_EASY_HDR_ENABLED 1 | |
#define MORPHO_EASY_HDR_IMAGE_ALIGNMENT_DEFAULT MORPHO_EASY_HDR_ENABLED | |
#define MORPHO_EASY_HDR_GHOST_REMOVAL_DEFAULT MORPHO_EASY_HDR_ENABLED | |
#define MORPHO_EASY_HDR_AUTO_SCALING_DEFAULT MORPHO_EASY_HDR_ENABLED | |
#define MORPHO_EASY_HDR_FACE_DETECTION_DEFAULT MORPHO_EASY_HDR_ENABLED | |
#define MORPHO_EASY_HDR_FAIL_SOFT_MERGING_DEFAULT MORPHO_EASY_HDR_ENABLED | |
#define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_MIN 0 | |
#define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_MAX 10 | |
#define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_DEFAULT 7 | |
#define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_MIN 0 | |
#define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_MAX 10 | |
#define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_DEFAULT 6 | |
#define MORPHO_EASY_HDR_MERGE_PARAM_MIN 0 | |
#define MORPHO_EASY_HDR_MERGE_PARAM_MAX 255 | |
#define MORPHO_EASY_HDR_MERGE_PARAM1_DEFAULT 0 | |
#define MORPHO_EASY_HDR_MERGE_PARAM2_DEFAULT 128 | |
#define MORPHO_EASY_HDR_MERGE_PARAM3_DEFAULT 0 | |
#define MORPHO_EASY_HDR_MERGE_PARAM4_DEFAULT 255 | |
#define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_MIN 0 | |
#define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_MAX 100 | |
#define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_DEFAULT 80 | |
#define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_MIN 0 | |
#define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_MAX 100 | |
#define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_DEFAULT 90 | |
#define MORPHO_EASY_HDR_CC_OFFSET_MIN 0 | |
#define MORPHO_EASY_HDR_CC_OFFSET_MAX 255 | |
#define MORPHO_EASY_HDR_CC_Y_OFFSET_DEFAULT 0 | |
#define MORPHO_EASY_HDR_CC_C_OFFSET_DEFAULT 0 | |
#define MORPHO_EASY_HDR_CC_GAIN_MIN 100 | |
#define MORPHO_EASY_HDR_CC_GAIN_MAX 2000 | |
#define MORPHO_EASY_HDR_CC_Y_GAIN_DEFAULT 1000 | |
#define MORPHO_EASY_HDR_CC_C_GAIN_DEFAULT 1000 | |
#define MORPHO_EASY_HDR_CC_GAMMA_MIN 100 | |
#define MORPHO_EASY_HDR_CC_GAMMA_MAX 2000 | |
#define MORPHO_EASY_HDR_CC_Y_GAMMA_DEFAULT 1000 | |
#define MORPHO_EASY_HDR_CC_C_GAMMA_DEFAULT 1000 | |
/*-----------------------------------------------------------------*/ | |
/* (merge-status) */ | |
#define MORPHO_EASY_HDR_OK 0x00000000 | |
#define MORPHO_EASY_HDR_ERROR_IMAGE_ALIGNMENT_FAILURE 0x00000001 | |
#define MORPHO_EASY_HDR_ERROR_EXP_ESTIMATION_FAILURE 0x00000002 | |
#define MORPHO_EASY_HDR_ERROR_MOSTLY_GHOST 0x00000004 | |
#define MORPHO_EASY_HDR_ERROR_INTERNAL 0x80000000 | |
/*******************************************************************/ | |
typedef struct _morpho_EasyHDR morpho_EasyHDR; | |
typedef struct _morpho_EasyHDR_Callback morpho_EasyHDR_Callback; | |
/*-----------------------------------------------------------------*/ | |
/** EasyHDR */ | |
struct _morpho_EasyHDR | |
{ | |
void *p; /**< à\¢ÌÖÌ|C^ */ | |
}; | |
/** EasyHDR Callback (for multi-thread processing) */ | |
struct _morpho_EasyHDR_Callback | |
{ | |
void *p; /**< R[obNÖÌæêøƵÄn³êél */ | |
void * (* thread_create )(void *p, int index, void *(*start_routine)(void *arg), void *arg); | |
int (* thread_destroy)(void *p, void *thread); | |
int (* thread_join )(void *p, void *thread, void **value_ptr); | |
void * (* mutex_create )(void *p); | |
int (* mutex_destroy)(void *p, void *mutex); | |
int (* mutex_lock )(void *p, void *mutex); | |
int (* mutex_trylock)(void *p, void *mutex); | |
int (* mutex_unlock )(void *p, void *mutex); | |
void * (* cond_create )(void *p); | |
int (* cond_destroy )(void *p, void *cond); | |
int (* cond_wait )(void *p, void *cond, void *lock); | |
int (* cond_signal )(void *p, void *cond); | |
int (* cond_broadcast)(void *p, void *cond); | |
}; | |
/*******************************************************************/ | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
/*-----------------------------------------------------------------*/ | |
/** | |
* o[W¶ñðæ¾ | |
* | |
* @return o[W¶ñ(MORPHO_EASY_HDR_VER) | |
*/ | |
MORPHO_API(char const *) | |
morpho_EasyHDR_getVersion(void); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* KvÈTCYðæ¾ | |
* | |
* @param[in] max_width üÍæÌÅå | |
* @param[in] max_height üÍæÌÅå³ | |
* @param[in] format ætH[}bg¶ñ | |
* | |
* @return KvÈTCY(byte) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getBufferSize( | |
int max_width, | |
int max_height, | |
char const *format); | |
/** | |
* ú» | |
* | |
* gpXbhÉ0ȺÌlðÝèµ½êA | |
* ªÀsðs¤B | |
* | |
* gpXbhÉ1ÈãÌlðÝèµ½êA | |
* êÀsðs¤B | |
* | |
* gpXbhÉ2ÈãÌlðÝèµ½êA | |
* }`XbhÉæéÀñÀs(êÀs)ðs¤B | |
* callback ÉKØÈlðÝè·éKv èB | |
* | |
* yÀsóÔÌJÚz | |
* ?_UNKNOWN ¨ 0_INITIALIZED | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] buffer EasyHDRÉèÄéÖÌ|C^ | |
* @param[in] buffer_size EasyHDRÉèÄéÌTCY | |
* @param[in] nthreads gpXbh (RA) | |
* @param[in] callback R[obNÖQ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_initialize( | |
morpho_EasyHDR *p, | |
void *buffer, | |
int buffer_size, | |
int nthreads, | |
morpho_EasyHDR_Callback const *callback); | |
/** | |
* N[Abv | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_finalize( | |
morpho_EasyHDR *p); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬ÌJnEÀs | |
* setImageFormat() ÀsãÉÀsÂ\ | |
* | |
* yÀsóÔÌJÚ (êÀs)z | |
* 0_INITIALIZED ¨ (1_PROCESSING) ¨ 0_INITIALIZED (®¹) | |
* ¨ 2_SUSPENDED (suspend()ÄÑoµ) | |
* | |
* yÀsóÔÌJÚ (ªÀs)z | |
* 0_INITIALIZED ¨ 3_PAUSED () | |
* ¨ 0_INITIALIZED (®¹) | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] output_image Êæ (u1ÚvÌüÍæðwèÂ\) | |
* @param[in,out] input_images üÍæQ (GWÉæÁÄ«·¦çêé) | |
* @param[in] nimages üÍæÌ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_merge( | |
morpho_EasyHDR *p, | |
morpho_ImageData *output_image, | |
morpho_ImageData *input_images[], | |
int nimages); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬Ìp±Às | |
* | |
* merge() ÀsãÉÀsÂ\ | |
* | |
* ªÀs(initialize() Å nthreads É 0 ðw赽ƫ)ÌÝLø | |
* | |
* yÀsóÔÌJÚ (ªÀs)z | |
* 3_PAUSED ¨ 3_PAUSED () | |
* ¨ 0_INITIALIZED (®¹) | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_process( | |
morpho_EasyHDR *p); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬Ìf (ÊReLXg©çÌÄÑoµÉæé) | |
* merge() ÀsÉÀsÂ\ | |
* | |
* yÀsóÔÌJÚ (êÀs)z | |
* 1_PROCESSING ¨ 2_SUSPENDED | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_suspend( | |
morpho_EasyHDR *p); | |
/** | |
* ¬ÌÄJ | |
* suspend() ÀsãÉÀsÂ\ | |
* | |
* yÀsóÔÌJÚ (êÀs)z | |
* 2_SUSPENDED ¨ (1_PROCESSING) ¨ 0_INITIALIZED (®¹) | |
* ¨ 2_SUSPENDED (suspend()ÄÑoµ) | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_resume( | |
morpho_EasyHDR *p); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ætH[}bgÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] format ætH[}bgð çí·¶ñ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setImageFormat( | |
morpho_EasyHDR *p, | |
char const *format); | |
/** | |
* ætH[}bgÌæ¾ | |
* setImageFormat() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] buffer ætH[}bgð çí·¶ñªi[³êéobt@ | |
* @param[in] buffer_size obt@ÌTCY(I[¶ÜÞ) | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getImageFormat( | |
morpho_EasyHDR *p, | |
char *buffer, | |
int buffer_size); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* Êuí¹(èÔêâ³)ÌL³ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* value: | |
* MOR_EASY_HDR_ENABLED : Êuí¹ è | |
* MOR_EASY_HDR_DISABLED : Êuí¹Èµ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setImageAlignmentStatus( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* Êuí¹(èÔêâ³)ÌL³Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getImageAlignmentStatus( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* S[Xg(íÊÌÔêâ³)ÌL³ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* value: | |
* MOR_EASY_HDR_ENABLED : S[Xg è | |
* MOR_EASY_HDR_DISABLED : S[Xgȵ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setGhostRemovalStatus( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* S[Xg(íÊÌÔêâ³)ÌL³Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getGhostRemovalStatus( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ©®gå(NbsO)ÌL³ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* value: | |
* MOR_EASY_HDR_ENABLED : ©®gå è | |
* MOR_EASY_HDR_DISABLED : ©®gåȵ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setAutoScalingStatus( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* ©®gå(NbsO)ÌL³Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getAutoScalingStatus( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* çoâ³ÌL³ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* value: | |
* MOR_EASY_HDR_ENABLED : çoâ³ è | |
* MOR_EASY_HDR_DISABLED : çoâ³Èµ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setFaceDetectionStatus( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* çoâ³ÌL³Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getFaceDetectionStatus( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* Fail-soft-merging ÌL³ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* value: | |
* MOR_EASY_HDR_ENABLED : Fail-soft-merging è | |
* MOR_EASY_HDR_DISABLED : Fail-soft-merging ȵ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setFailSoftMergingStatus( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* Fail-soft-merging ÌL³Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getFailSoftMergingStatus( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* S[Xg»è´xxÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setGhostDetectionSensitivityLevel( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* S[Xg»è´xxÌæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getGhostDetectionSensitivityLevel( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬Èß穳ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setMergeSmoothnessLevel( | |
morpho_EasyHDR *p, | |
int value); | |
/** | |
* ¬Èß穳Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getMergeSmoothnessLevel( | |
morpho_EasyHDR *p, | |
int *value); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬p[^ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] value1 Ýèl | |
* @param[in] value2 Ýèl | |
* @param[in] value3 Ýèl | |
* @param[in] value4 Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setMergeParameters( | |
morpho_EasyHDR *p, | |
int value1, | |
int value2, | |
int value3, | |
int value4); | |
/** | |
* ¬p[^Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] value1 Ýèli[æ | |
* @param[out] value2 Ýèli[æ | |
* @param[out] value3 Ýèli[æ | |
* @param[out] value4 Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getMergeParameters( | |
morpho_EasyHDR *p, | |
int *value1, | |
int *value2, | |
int *value3, | |
int *value4); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* LøÌæèlÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] rate Ýèl ( rate % é`) | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setReliableRectRateThreshold( | |
morpho_EasyHDR *p, | |
int rate); | |
/** | |
* LøÌæèlÌæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] rate Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getReliableRectRateThreshold( | |
morpho_EasyHDR *p, | |
int *rate); | |
/** | |
* LøÌæÌæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* (LøÈlªZbg³êéÌÍ merge() ã) | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] rect Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getReliableRect( | |
morpho_EasyHDR *p, | |
morpho_RectInt *rect); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* S[XgèlÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] rate Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setGhostRateThreshold( | |
morpho_EasyHDR *p, | |
int rate); | |
/** | |
* S[XgèlÌæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] rate Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getGhostRateThreshold( | |
morpho_EasyHDR *p, | |
int *rate); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* Fâ³p[^ÌÝè | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[in] y_offset Ýèl | |
* @param[in] y_gain Ýèl | |
* @param[in] y_gamma Ýèl | |
* @param[in] c_offset Ýèl | |
* @param[in] c_gain Ýèl | |
* @param[in] c_gamma Ýèl | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_setColorCorrectionParameters( | |
morpho_EasyHDR *p, | |
int y_offset, | |
int y_gain, | |
int y_gamma, | |
int c_offset, | |
int c_gain, | |
int c_gamma); | |
/** | |
* Fâ³p[^Ìæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] y_offset Ýèli[æ | |
* @param[out] y_gain Ýèli[æ | |
* @param[out] y_gamma Ýèli[æ | |
* @param[out] c_offset Ýèli[æ | |
* @param[out] c_gain Ýèli[æ | |
* @param[out] c_gamma Ýèli[æ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getColorCorrectionParameters( | |
morpho_EasyHDR *p, | |
int *y_offset, | |
int *y_gain, | |
int *y_gamma, | |
int *c_offset, | |
int *c_gain, | |
int *c_gamma); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* ¬Xe[^XÌæ¾ | |
* initialize() ÀsãÉÀsÂ\ | |
* | |
* Xe[^XR[h | |
* MORPHO_EASY_HDR_OK | |
* MORPHO_EASY_HDR_ERROR_* | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* | |
* @return Xe[^XR[h (MORPHO_EASMORPHO_EASY_HDR_ERROR_ | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_getMergeStatus( | |
morpho_EasyHDR *p); | |
/*-----------------------------------------------------------------*/ | |
/** | |
* TlCÌì¬ (oÍæÌk¬) | |
* morpho_EasyHDR_setImageFormat() ÀsãÉÀsÂ\ | |
* | |
* @param[in,out] p EasyHDR CX^X | |
* @param[out] thumbnail_image oÍæ | |
* @param[in] output_image üÍæ | |
* | |
* @return G[R[h (see morpho_error.h) | |
*/ | |
MORPHO_API(int) | |
morpho_EasyHDR_makeThumbnail( | |
morpho_EasyHDR *p, | |
morpho_ImageData *thumbnail_image, | |
morpho_ImageData const *output_image); | |
/*-----------------------------------------------------------------*/ | |
#ifdef __cplusplus | |
} /* extern "C" */ | |
#endif | |
/*******************************************************************/ | |
#endif /* !MORPHO_EASY_HDR_H */ | |
/*******************************************************************/ | |
/* [EOF] */ |