1 /******************************************************************* 2 * morpho_easy_hdr.h 3 * [CP932/CRLF] { �� ������������������p } 4 *------------------------------------------------------------------ 5 * Copyright (C) 2010-2012 Morpho,Inc. 6 *******************************************************************/ 7 8 #ifndef MORPHO_EASY_HDR_H 9 #define MORPHO_EASY_HDR_H 10 11 /*******************************************************************/ 12 13 #include "morpho_api.h" 14 #include "morpho_error.h" 15 #include "morpho_image_data.h" 16 #include "morpho_rect_int.h" 17 18 /*******************************************************************/ 19 20 #define MORPHO_EASY_HDR_VER "Morpho EasyHDR Ver.2.0.1 2012/07/18" 21 22 /*-----------------------------------------------------------------*/ 23 24 /* (input-limitaion) */ 25 26 #define MORPHO_EASY_HDR_MIN_IMAGE_WIDTH 100 27 #define MORPHO_EASY_HDR_MAX_IMAGE_WIDTH 8192 28 #define MORPHO_EASY_HDR_MIN_IMAGE_HEIGHT 100 29 #define MORPHO_EASY_HDR_MAX_IMAGE_HEIGHT 8192 30 #define MORPHO_EASY_HDR_MIN_NIMAGES 2 31 #define MORPHO_EASY_HDR_MAX_NIMAGES 10 32 33 /*-----------------------------------------------------------------*/ 34 35 /* (parameter) */ 36 37 #define MORPHO_EASY_HDR_DISABLED 0 38 #define MORPHO_EASY_HDR_ENABLED 1 39 40 #define MORPHO_EASY_HDR_IMAGE_ALIGNMENT_DEFAULT MORPHO_EASY_HDR_ENABLED 41 42 #define MORPHO_EASY_HDR_GHOST_REMOVAL_DEFAULT MORPHO_EASY_HDR_ENABLED 43 44 #define MORPHO_EASY_HDR_AUTO_SCALING_DEFAULT MORPHO_EASY_HDR_ENABLED 45 46 #define MORPHO_EASY_HDR_FACE_DETECTION_DEFAULT MORPHO_EASY_HDR_ENABLED 47 48 #define MORPHO_EASY_HDR_FAIL_SOFT_MERGING_DEFAULT MORPHO_EASY_HDR_ENABLED 49 50 #define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_MIN 0 51 #define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_MAX 10 52 #define MORPHO_EASY_HDR_GHOST_DETECTION_SENSITIVITY_LEVEL_DEFAULT 7 53 54 #define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_MIN 0 55 #define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_MAX 10 56 #define MORPHO_EASY_HDR_MERGE_SMOOTHNESS_LEVEL_DEFAULT 6 57 58 #define MORPHO_EASY_HDR_MERGE_PARAM_MIN 0 59 #define MORPHO_EASY_HDR_MERGE_PARAM_MAX 255 60 #define MORPHO_EASY_HDR_MERGE_PARAM1_DEFAULT 0 61 #define MORPHO_EASY_HDR_MERGE_PARAM2_DEFAULT 128 62 #define MORPHO_EASY_HDR_MERGE_PARAM3_DEFAULT 0 63 #define MORPHO_EASY_HDR_MERGE_PARAM4_DEFAULT 255 64 65 #define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_MIN 0 66 #define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_MAX 100 67 #define MORPHO_EASY_HDR_RELIABLE_RECT_RATE_THRESHOLD_DEFAULT 80 68 69 #define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_MIN 0 70 #define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_MAX 100 71 #define MORPHO_EASY_HDR_GHOST_RATE_THRESHOLD_DEFAULT 90 72 73 #define MORPHO_EASY_HDR_CC_OFFSET_MIN 0 74 #define MORPHO_EASY_HDR_CC_OFFSET_MAX 255 75 #define MORPHO_EASY_HDR_CC_Y_OFFSET_DEFAULT 0 76 #define MORPHO_EASY_HDR_CC_C_OFFSET_DEFAULT 0 77 78 #define MORPHO_EASY_HDR_CC_GAIN_MIN 100 79 #define MORPHO_EASY_HDR_CC_GAIN_MAX 2000 80 #define MORPHO_EASY_HDR_CC_Y_GAIN_DEFAULT 1000 81 #define MORPHO_EASY_HDR_CC_C_GAIN_DEFAULT 1000 82 83 #define MORPHO_EASY_HDR_CC_GAMMA_MIN 100 84 #define MORPHO_EASY_HDR_CC_GAMMA_MAX 2000 85 #define MORPHO_EASY_HDR_CC_Y_GAMMA_DEFAULT 1000 86 #define MORPHO_EASY_HDR_CC_C_GAMMA_DEFAULT 1000 87 88 /*-----------------------------------------------------------------*/ 89 90 /* (merge-status) */ 91 92 #define MORPHO_EASY_HDR_OK 0x00000000 93 #define MORPHO_EASY_HDR_ERROR_IMAGE_ALIGNMENT_FAILURE 0x00000001 94 #define MORPHO_EASY_HDR_ERROR_EXP_ESTIMATION_FAILURE 0x00000002 95 #define MORPHO_EASY_HDR_ERROR_MOSTLY_GHOST 0x00000004 96 #define MORPHO_EASY_HDR_ERROR_INTERNAL 0x80000000 97 98 /*******************************************************************/ 99 100 typedef struct _morpho_EasyHDR morpho_EasyHDR; 101 typedef struct _morpho_EasyHDR_Callback morpho_EasyHDR_Callback; 102 103 /*-----------------------------------------------------------------*/ 104 105 /** EasyHDR */ 106 struct _morpho_EasyHDR 107 { 108 void *p; /**< �����\���̂ւ̃|�C���^ */ 109 }; 110 111 /** EasyHDR Callback (for multi-thread processing) */ 112 struct _morpho_EasyHDR_Callback 113 { 114 void *p; /**< �R�[���o�b�N���̑������Ƃ��ēn�����l */ 115 116 void * (* thread_create )(void *p, int index, void *(*start_routine)(void *arg), void *arg); 117 int (* thread_destroy)(void *p, void *thread); 118 int (* thread_join )(void *p, void *thread, void **value_ptr); 119 120 void * (* mutex_create )(void *p); 121 int (* mutex_destroy)(void *p, void *mutex); 122 int (* mutex_lock )(void *p, void *mutex); 123 int (* mutex_trylock)(void *p, void *mutex); 124 int (* mutex_unlock )(void *p, void *mutex); 125 126 void * (* cond_create )(void *p); 127 int (* cond_destroy )(void *p, void *cond); 128 int (* cond_wait )(void *p, void *cond, void *lock); 129 int (* cond_signal )(void *p, void *cond); 130 int (* cond_broadcast)(void *p, void *cond); 131 }; 132 133 /*******************************************************************/ 134 135 #ifdef __cplusplus 136 extern "C" 137 { 138 #endif 139 140 /*-----------------------------------------------------------------*/ 141 142 /** 143 * �o�[�W������������擾 144 * 145 * @return �o�[�W����������(MORPHO_EASY_HDR_VER) 146 */ 147 MORPHO_API(char const *) 148 morpho_EasyHDR_getVersion(void); 149 150 /*-----------------------------------------------------------------*/ 151 152 /** 153 * �K�v�ȃ������T�C�Y���擾 154 * 155 * @param[in] max_width ���͉摜�̍ő啝 156 * @param[in] max_height ���͉摜�̍ő卂�� 157 * @param[in] format �摜�t�H�[�}�b�g������ 158 * 159 * @return �K�v�ȃ������T�C�Y(byte) 160 */ 161 MORPHO_API(int) 162 morpho_EasyHDR_getBufferSize( 163 int max_width, 164 int max_height, 165 char const *format); 166 167 /** 168 * ������ 169 * 170 * �g�p�X���b�h����0�ȉ��̒l��ݒ肵���ꍇ�A 171 * �������s���s���B 172 * 173 * �g�p�X���b�h����1�ȏ�̒l��ݒ肵���ꍇ�A 174 * �ꊇ���s���s���B 175 * 176 * �g�p�X���b�h����2�ȏ�̒l��ݒ肵���ꍇ�A 177 * �}���`�X���b�h�ɂ�������s(�ꊇ���s)���s���B 178 * callback �ɓK�Ȓl��ݒ肷��K�v����B 179 * 180 * �y���s��Ԃ̑J�ځz 181 * ?_UNKNOWN �� 0_INITIALIZED 182 * 183 * @param[in,out] p EasyHDR �C���X�^���X 184 * @param[out] buffer EasyHDR�Ɋ��蓖�Ă郁�����ւ̃|�C���^ 185 * @param[in] buffer_size EasyHDR�Ɋ��蓖�Ă郁�����̃T�C�Y 186 * @param[in] nthreads �g�p�X���b�h�� (�R�A��) 187 * @param[in] callback �R�[���o�b�N���Q 188 * 189 * @return �G���[�R�[�h (see morpho_error.h) 190 */ 191 MORPHO_API(int) 192 morpho_EasyHDR_initialize( 193 morpho_EasyHDR *p, 194 void *buffer, 195 int buffer_size, 196 int nthreads, 197 morpho_EasyHDR_Callback const *callback); 198 199 /** 200 * �N���[���A�b�v 201 * initialize() ���s��Ɏ��s�\ 202 * 203 * @param[in,out] p EasyHDR �C���X�^���X 204 * 205 * @return �G���[�R�[�h (see morpho_error.h) 206 */ 207 MORPHO_API(int) 208 morpho_EasyHDR_finalize( 209 morpho_EasyHDR *p); 210 211 /*-----------------------------------------------------------------*/ 212 213 /** 214 * �����̊J�n�E���s 215 * setImageFormat() ���s��Ɏ��s�\ 216 * 217 * �y���s��Ԃ̑J�� (�ꊇ���s��)�z 218 * 0_INITIALIZED �� (1_PROCESSING) �� 0_INITIALIZED (��������) 219 * �� 2_SUSPENDED (suspend()�Ăяo��) 220 * 221 * �y���s��Ԃ̑J�� (�������s��)�z 222 * 0_INITIALIZED �� 3_PAUSED (������) 223 * �� 0_INITIALIZED (��������) 224 * 225 * @param[in,out] p EasyHDR �C���X�^���X 226 * @param[out] output_image ���ʉ摜 (�u1���ځv�̓��͉摜���w��\) 227 * @param[in,out] input_images ���͉摜�Q (�G���W���ɂ���ď�����������) 228 * @param[in] nimages ���͉摜�̐� 229 * 230 * @return �G���[�R�[�h (see morpho_error.h) 231 */ 232 MORPHO_API(int) 233 morpho_EasyHDR_merge( 234 morpho_EasyHDR *p, 235 morpho_ImageData *output_image, 236 morpho_ImageData *input_images[], 237 int nimages); 238 239 /*-----------------------------------------------------------------*/ 240 241 /** 242 * �����̌p�����s 243 * 244 * merge() ���s��Ɏ��s�\ 245 * 246 * �������s��(initialize() �� nthreads �� 0 ���w�肵���Ƃ�)�̂ݗL�� 247 * 248 * �y���s��Ԃ̑J�� (�������s��)�z 249 * 3_PAUSED �� 3_PAUSED (������) 250 * �� 0_INITIALIZED (��������) 251 * 252 * @param[in,out] p EasyHDR �C���X�^���X 253 * 254 * @return �G���[�R�[�h (see morpho_error.h) 255 */ 256 MORPHO_API(int) 257 morpho_EasyHDR_process( 258 morpho_EasyHDR *p); 259 260 /*-----------------------------------------------------------------*/ 261 262 /** 263 * �����̒��f (�ʃR���e�L�X�g����̌Ăяo���ɂ��) 264 * merge() ���s���Ɏ��s�\ 265 * 266 * �y���s��Ԃ̑J�� (�ꊇ���s��)�z 267 * 1_PROCESSING �� 2_SUSPENDED 268 * 269 * @param[in,out] p EasyHDR �C���X�^���X 270 * 271 * @return �G���[�R�[�h (see morpho_error.h) 272 */ 273 MORPHO_API(int) 274 morpho_EasyHDR_suspend( 275 morpho_EasyHDR *p); 276 277 /** 278 * �����̍ĊJ 279 * suspend() ���s��Ɏ��s�\ 280 * 281 * �y���s��Ԃ̑J�� (�ꊇ���s��)�z 282 * 2_SUSPENDED �� (1_PROCESSING) �� 0_INITIALIZED (��������) 283 * �� 2_SUSPENDED (suspend()�Ăяo��) 284 * 285 * @param[in,out] p EasyHDR �C���X�^���X 286 * 287 * @return �G���[�R�[�h (see morpho_error.h) 288 */ 289 MORPHO_API(int) 290 morpho_EasyHDR_resume( 291 morpho_EasyHDR *p); 292 293 /*-----------------------------------------------------------------*/ 294 295 /** 296 * �摜�t�H�[�}�b�g�̐ݒ� 297 * initialize() ���s��Ɏ��s�\ 298 * 299 * @param[in,out] p EasyHDR �C���X�^���X 300 * @param[in] format �摜�t�H�[�}�b�g������킷������ 301 * 302 * @return �G���[�R�[�h (see morpho_error.h) 303 */ 304 MORPHO_API(int) 305 morpho_EasyHDR_setImageFormat( 306 morpho_EasyHDR *p, 307 char const *format); 308 309 /** 310 * �摜�t�H�[�}�b�g�̎擾 311 * setImageFormat() ���s��Ɏ��s�\ 312 * 313 * @param[in,out] p EasyHDR �C���X�^���X 314 * @param[out] buffer �摜�t�H�[�}�b�g������킷�����i�[�����o�b�t�@ 315 * @param[in] buffer_size �o�b�t�@�̃T�C�Y(�I�[�����܂�) 316 * 317 * @return �G���[�R�[�h (see morpho_error.h) 318 */ 319 MORPHO_API(int) 320 morpho_EasyHDR_getImageFormat( 321 morpho_EasyHDR *p, 322 char *buffer, 323 int buffer_size); 324 325 /*-----------------------------------------------------------------*/ 326 327 /** 328 * �ʒu���킹(��Ԃ�)�̗L���̐ݒ� 329 * initialize() ���s��Ɏ��s�\ 330 * 331 * value: 332 * MOR_EASY_HDR_ENABLED : �ʒu���킹���� 333 * MOR_EASY_HDR_DISABLED : �ʒu���킹�Ȃ� 334 * 335 * @param[in,out] p EasyHDR �C���X�^���X 336 * @param[in] value �ݒ�l 337 * 338 * @return �G���[�R�[�h (see morpho_error.h) 339 */ 340 MORPHO_API(int) 341 morpho_EasyHDR_setImageAlignmentStatus( 342 morpho_EasyHDR *p, 343 int value); 344 345 /** 346 * �ʒu���킹(��Ԃ�)�̗L���̎擾 347 * initialize() ���s��Ɏ��s�\ 348 * 349 * @param[in,out] p EasyHDR �C���X�^���X 350 * @param[out] value �ݒ�l�i�[�� 351 * 352 * @return �G���[�R�[�h (see morpho_error.h) 353 */ 354 MORPHO_API(int) 355 morpho_EasyHDR_getImageAlignmentStatus( 356 morpho_EasyHDR *p, 357 int *value); 358 359 /*-----------------------------------------------------------------*/ 360 361 /** 362 * �S�[�X�g����(��ʑ̂Ԃ�)�̗L���̐ݒ� 363 * initialize() ���s��Ɏ��s�\ 364 * 365 * value: 366 * MOR_EASY_HDR_ENABLED : �S�[�X�g�������� 367 * MOR_EASY_HDR_DISABLED : �S�[�X�g�����Ȃ� 368 * 369 * @param[in,out] p EasyHDR �C���X�^���X 370 * @param[in] value �ݒ�l 371 * 372 * @return �G���[�R�[�h (see morpho_error.h) 373 */ 374 MORPHO_API(int) 375 morpho_EasyHDR_setGhostRemovalStatus( 376 morpho_EasyHDR *p, 377 int value); 378 379 /** 380 * �S�[�X�g����(��ʑ̂Ԃ�)�̗L���̎擾 381 * initialize() ���s��Ɏ��s�\ 382 * 383 * @param[in,out] p EasyHDR �C���X�^���X 384 * @param[out] value �ݒ�l�i�[�� 385 * 386 * @return �G���[�R�[�h (see morpho_error.h) 387 */ 388 MORPHO_API(int) 389 morpho_EasyHDR_getGhostRemovalStatus( 390 morpho_EasyHDR *p, 391 int *value); 392 393 /*-----------------------------------------------------------------*/ 394 395 /** 396 * �����g��(�N���b�s���O)�̗L���̐ݒ� 397 * initialize() ���s��Ɏ��s�\ 398 * 399 * value: 400 * MOR_EASY_HDR_ENABLED : �����g�傠�� 401 * MOR_EASY_HDR_DISABLED : �����g��Ȃ� 402 * 403 * @param[in,out] p EasyHDR �C���X�^���X 404 * @param[in] value �ݒ�l 405 * 406 * @return �G���[�R�[�h (see morpho_error.h) 407 */ 408 MORPHO_API(int) 409 morpho_EasyHDR_setAutoScalingStatus( 410 morpho_EasyHDR *p, 411 int value); 412 413 /** 414 * �����g��(�N���b�s���O)�̗L���̎擾 415 * initialize() ���s��Ɏ��s�\ 416 * 417 * @param[in,out] p EasyHDR �C���X�^���X 418 * @param[out] value �ݒ�l�i�[�� 419 * 420 * @return �G���[�R�[�h (see morpho_error.h) 421 */ 422 MORPHO_API(int) 423 morpho_EasyHDR_getAutoScalingStatus( 424 morpho_EasyHDR *p, 425 int *value); 426 427 /*-----------------------------------------------------------------*/ 428 429 /** 430 * �猟�o��̗L���̐ݒ� 431 * initialize() ���s��Ɏ��s�\ 432 * 433 * value: 434 * MOR_EASY_HDR_ENABLED : �猟�o����� 435 * MOR_EASY_HDR_DISABLED : �猟�o��Ȃ� 436 * 437 * @param[in,out] p EasyHDR �C���X�^���X 438 * @param[in] value �ݒ�l 439 * 440 * @return �G���[�R�[�h (see morpho_error.h) 441 */ 442 MORPHO_API(int) 443 morpho_EasyHDR_setFaceDetectionStatus( 444 morpho_EasyHDR *p, 445 int value); 446 447 /** 448 * �猟�o��̗L���̎擾 449 * initialize() ���s��Ɏ��s�\ 450 * 451 * @param[in,out] p EasyHDR �C���X�^���X 452 * @param[out] value �ݒ�l�i�[�� 453 * 454 * @return �G���[�R�[�h (see morpho_error.h) 455 */ 456 MORPHO_API(int) 457 morpho_EasyHDR_getFaceDetectionStatus( 458 morpho_EasyHDR *p, 459 int *value); 460 461 /*-----------------------------------------------------------------*/ 462 463 /** 464 * Fail-soft-merging �̗L���̐ݒ� 465 * initialize() ���s��Ɏ��s�\ 466 * 467 * value: 468 * MOR_EASY_HDR_ENABLED : Fail-soft-merging ���� 469 * MOR_EASY_HDR_DISABLED : Fail-soft-merging �Ȃ� 470 * 471 * @param[in,out] p EasyHDR �C���X�^���X 472 * @param[in] value �ݒ�l 473 * 474 * @return �G���[�R�[�h (see morpho_error.h) 475 */ 476 MORPHO_API(int) 477 morpho_EasyHDR_setFailSoftMergingStatus( 478 morpho_EasyHDR *p, 479 int value); 480 481 /** 482 * Fail-soft-merging �̗L���̎擾 483 * initialize() ���s��Ɏ��s�\ 484 * 485 * @param[in,out] p EasyHDR �C���X�^���X 486 * @param[out] value �ݒ�l�i�[�� 487 * 488 * @return �G���[�R�[�h (see morpho_error.h) 489 */ 490 MORPHO_API(int) 491 morpho_EasyHDR_getFailSoftMergingStatus( 492 morpho_EasyHDR *p, 493 int *value); 494 495 /*-----------------------------------------------------------------*/ 496 497 /** 498 * �S�[�X�g���芴�x���x���̐ݒ� 499 * initialize() ���s��Ɏ��s�\ 500 * 501 * @param[in,out] p EasyHDR �C���X�^���X 502 * @param[in] value �ݒ�l 503 * 504 * @return �G���[�R�[�h (see morpho_error.h) 505 */ 506 MORPHO_API(int) 507 morpho_EasyHDR_setGhostDetectionSensitivityLevel( 508 morpho_EasyHDR *p, 509 int value); 510 511 /** 512 * �S�[�X�g���芴�x���x���̎擾 513 * initialize() ���s��Ɏ��s�\ 514 * 515 * @param[in,out] p EasyHDR �C���X�^���X 516 * @param[out] value �ݒ�l�i�[�� 517 * 518 * @return �G���[�R�[�h (see morpho_error.h) 519 */ 520 MORPHO_API(int) 521 morpho_EasyHDR_getGhostDetectionSensitivityLevel( 522 morpho_EasyHDR *p, 523 int *value); 524 525 /*-----------------------------------------------------------------*/ 526 527 /** 528 * �����Ȃ߂炩���̐ݒ� 529 * initialize() ���s��Ɏ��s�\ 530 * 531 * @param[in,out] p EasyHDR �C���X�^���X 532 * @param[in] value �ݒ�l 533 * 534 * @return �G���[�R�[�h (see morpho_error.h) 535 */ 536 MORPHO_API(int) 537 morpho_EasyHDR_setMergeSmoothnessLevel( 538 morpho_EasyHDR *p, 539 int value); 540 541 /** 542 * �����Ȃ߂炩���̎擾 543 * initialize() ���s��Ɏ��s�\ 544 * 545 * @param[in,out] p EasyHDR �C���X�^���X 546 * @param[out] value �ݒ�l�i�[�� 547 * 548 * @return �G���[�R�[�h (see morpho_error.h) 549 */ 550 MORPHO_API(int) 551 morpho_EasyHDR_getMergeSmoothnessLevel( 552 morpho_EasyHDR *p, 553 int *value); 554 555 /*-----------------------------------------------------------------*/ 556 557 /** 558 * �����p�����[�^�̐ݒ� 559 * initialize() ���s��Ɏ��s�\ 560 * 561 * @param[in,out] p EasyHDR �C���X�^���X 562 * @param[in] value1 �ݒ�l 563 * @param[in] value2 �ݒ�l 564 * @param[in] value3 �ݒ�l 565 * @param[in] value4 �ݒ�l 566 * 567 * @return �G���[�R�[�h (see morpho_error.h) 568 */ 569 MORPHO_API(int) 570 morpho_EasyHDR_setMergeParameters( 571 morpho_EasyHDR *p, 572 int value1, 573 int value2, 574 int value3, 575 int value4); 576 577 /** 578 * �����p�����[�^�̎擾 579 * initialize() ���s��Ɏ��s�\ 580 * 581 * @param[in,out] p EasyHDR �C���X�^���X 582 * @param[out] value1 �ݒ�l�i�[�� 583 * @param[out] value2 �ݒ�l�i�[�� 584 * @param[out] value3 �ݒ�l�i�[�� 585 * @param[out] value4 �ݒ�l�i�[�� 586 * 587 * @return �G���[�R�[�h (see morpho_error.h) 588 */ 589 MORPHO_API(int) 590 morpho_EasyHDR_getMergeParameters( 591 morpho_EasyHDR *p, 592 int *value1, 593 int *value2, 594 int *value3, 595 int *value4); 596 597 /*-----------------------------------------------------------------*/ 598 599 /** 600 * �L���̈�臒l�̐ݒ� 601 * initialize() ���s��Ɏ��s�\ 602 * 603 * @param[in,out] p EasyHDR �C���X�^���X 604 * @param[in] rate �ݒ�l (���� rate % ��`) 605 * 606 * @return �G���[�R�[�h (see morpho_error.h) 607 */ 608 MORPHO_API(int) 609 morpho_EasyHDR_setReliableRectRateThreshold( 610 morpho_EasyHDR *p, 611 int rate); 612 613 /** 614 * �L���̈�臒l�̎擾 615 * initialize() ���s��Ɏ��s�\ 616 * 617 * @param[in,out] p EasyHDR �C���X�^���X 618 * @param[out] rate �ݒ�l�i�[�� 619 * 620 * @return �G���[�R�[�h (see morpho_error.h) 621 */ 622 MORPHO_API(int) 623 morpho_EasyHDR_getReliableRectRateThreshold( 624 morpho_EasyHDR *p, 625 int *rate); 626 627 /** 628 * �L���̈�̎擾 629 * initialize() ���s��Ɏ��s�\ 630 * (�L���Ȓl���Z�b�g�����̂� merge() ��) 631 * 632 * @param[in,out] p EasyHDR �C���X�^���X 633 * @param[out] rect �ݒ�l�i�[�� 634 * 635 * @return �G���[�R�[�h (see morpho_error.h) 636 */ 637 MORPHO_API(int) 638 morpho_EasyHDR_getReliableRect( 639 morpho_EasyHDR *p, 640 morpho_RectInt *rect); 641 642 /*-----------------------------------------------------------------*/ 643 644 /** 645 * �S�[�X�g����臒l�̐ݒ� 646 * initialize() ���s��Ɏ��s�\ 647 * 648 * @param[in,out] p EasyHDR �C���X�^���X 649 * @param[in] rate �ݒ�l 650 * 651 * @return �G���[�R�[�h (see morpho_error.h) 652 */ 653 MORPHO_API(int) 654 morpho_EasyHDR_setGhostRateThreshold( 655 morpho_EasyHDR *p, 656 int rate); 657 658 /** 659 * �S�[�X�g����臒l�̎擾 660 * initialize() ���s��Ɏ��s�\ 661 * 662 * @param[in,out] p EasyHDR �C���X�^���X 663 * @param[out] rate �ݒ�l�i�[�� 664 * 665 * @return �G���[�R�[�h (see morpho_error.h) 666 */ 667 MORPHO_API(int) 668 morpho_EasyHDR_getGhostRateThreshold( 669 morpho_EasyHDR *p, 670 int *rate); 671 672 /*-----------------------------------------------------------------*/ 673 674 /** 675 * �F��p�����[�^�̐ݒ� 676 * initialize() ���s��Ɏ��s�\ 677 * 678 * @param[in,out] p EasyHDR �C���X�^���X 679 * @param[in] y_offset �ݒ�l 680 * @param[in] y_gain �ݒ�l 681 * @param[in] y_gamma �ݒ�l 682 * @param[in] c_offset �ݒ�l 683 * @param[in] c_gain �ݒ�l 684 * @param[in] c_gamma �ݒ�l 685 * 686 * @return �G���[�R�[�h (see morpho_error.h) 687 */ 688 MORPHO_API(int) 689 morpho_EasyHDR_setColorCorrectionParameters( 690 morpho_EasyHDR *p, 691 int y_offset, 692 int y_gain, 693 int y_gamma, 694 int c_offset, 695 int c_gain, 696 int c_gamma); 697 698 /** 699 * �F��p�����[�^�̎擾 700 * initialize() ���s��Ɏ��s�\ 701 * 702 * @param[in,out] p EasyHDR �C���X�^���X 703 * @param[out] y_offset �ݒ�l�i�[�� 704 * @param[out] y_gain �ݒ�l�i�[�� 705 * @param[out] y_gamma �ݒ�l�i�[�� 706 * @param[out] c_offset �ݒ�l�i�[�� 707 * @param[out] c_gain �ݒ�l�i�[�� 708 * @param[out] c_gamma �ݒ�l�i�[�� 709 * 710 * @return �G���[�R�[�h (see morpho_error.h) 711 */ 712 MORPHO_API(int) 713 morpho_EasyHDR_getColorCorrectionParameters( 714 morpho_EasyHDR *p, 715 int *y_offset, 716 int *y_gain, 717 int *y_gamma, 718 int *c_offset, 719 int *c_gain, 720 int *c_gamma); 721 722 /*-----------------------------------------------------------------*/ 723 724 /** 725 * �����X�e�[�^�X�̎擾 726 * initialize() ���s��Ɏ��s�\ 727 * 728 * �X�e�[�^�X�R�[�h 729 * MORPHO_EASY_HDR_OK 730 * MORPHO_EASY_HDR_ERROR_* 731 * 732 * @param[in,out] p EasyHDR �C���X�^���X 733 * 734 * @return �X�e�[�^�X�R�[�h (MORPHO_EASMORPHO_EASY_HDR_ERROR_ 735 */ 736 MORPHO_API(int) 737 morpho_EasyHDR_getMergeStatus( 738 morpho_EasyHDR *p); 739 740 /*-----------------------------------------------------------------*/ 741 742 /** 743 * �T���l�C���̍쐬 (�o�͉摜�̏k��) 744 * morpho_EasyHDR_setImageFormat() ���s��Ɏ��s�\ 745 * 746 * @param[in,out] p EasyHDR �C���X�^���X 747 * @param[out] thumbnail_image �o�͉摜 748 * @param[in] output_image ���͉摜 749 * 750 * @return �G���[�R�[�h (see morpho_error.h) 751 */ 752 MORPHO_API(int) 753 morpho_EasyHDR_makeThumbnail( 754 morpho_EasyHDR *p, 755 morpho_ImageData *thumbnail_image, 756 morpho_ImageData const *output_image); 757 758 /*-----------------------------------------------------------------*/ 759 760 #ifdef __cplusplus 761 } /* extern "C" */ 762 #endif 763 764 /*******************************************************************/ 765 766 #endif /* !MORPHO_EASY_HDR_H */ 767 768 /*******************************************************************/ 769 /* [EOF] */ 770