blob: 662cfc1b4e32e321cb1e41a58346e5eaabff00df [file] [log] [blame]
/*******************************************************************
* morpho_hdr_checker.h
* [CP932/CRLF] { ‚  •„†‰»•ûŽ®Ž©“®”»’è—p }
*------------------------------------------------------------------
* Copyright (C) 2011-2012 Morpho,Inc.
*******************************************************************/
#ifndef MORPHO_HDR_CHECKER_H
#define MORPHO_HDR_CHECKER_H
/*******************************************************************/
#include "morpho_api.h"
#include "morpho_error.h"
#include "morpho_image_data.h"
/*******************************************************************/
#define MORPHO_HDR_CHECKER_VER "Morpho DR Checker Ver.1.1.0 2012/1/17"
/*-----------------------------------------------------------------*/
#define MORPHO_HDR_CHECKER_MIN_IMAGE_WIDTH 2
#define MORPHO_HDR_CHECKER_MAX_IMAGE_WIDTH 8192
#define MORPHO_HDR_CHECKER_MIN_IMAGE_HEIGHT 2
#define MORPHO_HDR_CHECKER_MAX_IMAGE_HEIGHT 8192
/*******************************************************************/
typedef struct _morpho_HDRChecker morpho_HDRChecker;
/* HDRŽw•W•]‰¿Ší */
struct _morpho_HDRChecker
{
void *p; /**< “à•”\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */
};
/* ”’”ò‚сE•‚‚Ԃꔻ’è‚Ì•qŠ´“x */
typedef enum {
MORPHO_HDR_CHECKER_SENSITIVITY_SENSITIVE,
MORPHO_HDR_CHECKER_SENSITIVITY_NORMAL,
MORPHO_HDR_CHECKER_SENSITIVITY_INSENSITIVE,
} MORPHO_HDR_CHECKER_SENSITIVITY;
/*******************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/**
* ƒo[ƒWƒ‡ƒ“•¶Žš—ñ‚ðŽæ“¾
*
* @return ƒo[ƒWƒ‡ƒ“•¶Žš—ñ(MORPHO_EASY_HDR_VER)
*/
MORPHO_API(const char*)
morpho_HDRChecker_getVersion(void);
/**
* •K—v‚ȃƒ‚ƒŠƒTƒCƒY‚ðŽæ“¾
*
* @param[in] width “ü—͉摜‚Ì•
* @param[in] height “ü—͉摜‚̍‚‚³
* @param[in] format “ü—͉摜‚̃tƒH[ƒ}ƒbƒg
* @return •K—v‚ȃƒ‚ƒŠƒTƒCƒY(byte)
*/
MORPHO_API(int)
morpho_HDRChecker_getBufferSize(
int width,
int height,
const char *format);
/**
* ‰Šú‰»
*
* @param[in,out] p HDRCheckerƒCƒ“ƒXƒ^ƒ“ƒX
* @param[in] buffer HDRChecker‚ÉŠ„‚è“–‚Ă郁ƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^
* @param[in] buffer_size HDRChecker‚ÉŠ„‚è“–‚Ă郁ƒ‚ƒŠ‚̃TƒCƒY
* @param[in] width “ü—͉摜‚Ì•
* @param[in] height “ü—͉摜‚̍‚‚³
* @param[in] format “ü—͉摜‚̃tƒH[ƒ}ƒbƒg
* @return ƒGƒ‰[ƒR[ƒh (see morpho_error.h)
*/
MORPHO_API(int)
morpho_HDRChecker_initialize(
morpho_HDRChecker * const p,
void * const buffer,
const int buffer_size,
const int width,
const int height,
const char *format);
/**
* ƒNƒŠ[ƒ“ƒAƒbƒv
* initialize()ŽÀsŒã‚ÉŽÀs‰Â”\
*
* @param[in,out] p HDRCheckerƒCƒ“ƒXƒ^ƒ“ƒX
* @return ƒGƒ‰[ƒR[ƒh (see morpho_error.h)
*/
MORPHO_API(int)
morpho_HDRChecker_finalize(
morpho_HDRChecker *p);
/*-----------------------------------------------------------------*/
/**
* HDRŽw•WŒvŽZ‚Ì•qŠ´«‚̐ݒè
* initialize()ŽÀsŒã‚ÉŽÀs‰Â”\
*
* @param[in,out] p HDRCheckerƒCƒ“ƒXƒ^ƒ“ƒX
* @param[in] sensitivity •qŠ´«(MORPHO_HDR_CHECKER_SENSITIVIY—ñ‹“‘Ì‚ÅŽw’è)
* @return ƒGƒ‰[ƒR[ƒh (see morpho_error.h)
*/
MORPHO_API(int)
morpho_HDRChecker_setSensitivity(
morpho_HDRChecker * const p,
MORPHO_HDR_CHECKER_SENSITIVITY sensitivity);
/**
* HDRŽw•WŒvŽZ‚Ì•qŠ´«‚̎擾
* initialize()ŽÀsŒã‚ÉŽÀs‰Â”\
*
* @param[in,out] p HDRCheckerƒCƒ“ƒXƒ^ƒ“ƒX
* @param[out] sensitivity •qŠ´«‚ւ̃|ƒCƒ“ƒ^
* @return ƒGƒ‰[ƒR[ƒh (see morpho_error.h)
*/
MORPHO_API(int)
morpho_HDRChecker_getSensitivity(
morpho_HDRChecker * const p,
MORPHO_HDR_CHECKER_SENSITIVITY *sensitivity);
/**
* HDRŽw•W‚Ì•]‰¿
* initialize()ŽÀsŒã‚ÉŽÀs‰Â”\
*
* @param[in,out] p HDRCheckerƒCƒ“ƒXƒ^ƒ“ƒX
* @param[out] result •]‰¿Œ‹‰Ê‚ðŠi”[‚·‚é”z—ñ(—v‘f”4‚Ì”z—ñ)
* —v‘f‚ª”ñƒ[ƒ‚̏ꍇ‚ɑΉž‚·‚鉺‹L‚̘Io‚̉摜‚ª•K—v‚Æ”»’è
* {+2, +1, -1, -2}‚̏‡‚É”»’茋‰Ê‚ªŠi”[‚³‚ê‚é
* @param[in] input_image “ü—͉摜
* @return ƒGƒ‰[ƒR[ƒh (see morpho_error.h)
*/
MORPHO_API(int)
morpho_HDRChecker_evaluate(
morpho_HDRChecker * const p,
int * const result,
const morpho_ImageData * const input_image);
/*-----------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif /* MORPHO_HDR_CHECKER_H */