列挙型 | |
| enum | f_hdr_calibrate_method { F_HDR_CALIBRATE_LINEAR = 0, F_HDR_CALIBRATE_ROBERTSON } |
| 逆カメラ応答関数のキャリブレーション手法タイプ [詳細] | |
| enum | f_hdr_execute_method { F_HDR_EXECUTE_ROBERTSON = 0, F_HDR_EXECUTE_DEBEVEC } |
| HDR画像生成手法タイプ [詳細] | |
関数 | |
| FHANDLE FVALGAPI | fnFIE_hdr_calibrate_linear (INT img_type, INT channels, INT *exerr) |
| 線形応答を表す逆カメラ応答関数の生成 | |
| FHANDLE FVALGAPI | fnFIE_hdr_calibrate_robertson (FHANDLE imgstack, const DOUBLE *exposure_ratios, INT iter_limit, DOUBLE thresh, INT *exerr) |
| Robertsonによる逆カメラ応答関数推定 | |
| INT FVALGAPI | fnFIE_hdr_execute (FHANDLE hhdr, FHANDLE imgstack, FHANDLE hdr_img, const DOUBLE *exposure_ratios) |
| HDR画像生成 | |
| INT FVALGAPI | fnFIE_hdr_get_imgtype (FHANDLE hhdr) |
| 画像型の取得 | |
| INT FVALGAPI | fnFIE_hdr_get_num_images (FHANDLE hhdr) |
| 画像枚数の取得 | |
| INT FVALGAPI | fnFIE_hdr_get_channels (FHANDLE hhdr) |
| チャネル数の取得 | |
| INT FVALGAPI | fnFIE_hdr_get_icrf (FHANDLE hhdr, INT ch, DOUBLE *icrf_values, INT *num_values) |
| 逆カメラ応答関数の取得 | |
| DOUBLE FVALGAPI | fnFIE_hdr_get_gain (FHANDLE hhdr, INT ch) |
| ゲインの取得 | |
| INT FVALGAPI | fnFIE_hdr_set_gain (FHANDLE hhdr, INT ch, DOUBLE gain) |
| ゲインの設定 | |
| DOUBLE FVALGAPI | fnFIE_hdr_get_exposure_ratio (FHANDLE hhdr, INT img_index) |
| 露光量の比の取得 | |
| INT FVALGAPI | fnFIE_hdr_get_calibrate_method (FHANDLE hhdr) |
| キャリブレーション手法の取得 | |
| INT FVALGAPI | fnFIE_hdr_get_execute_method (FHANDLE hhdr) |
| HDR画像生成手法の取得 | |
| INT FVALGAPI | fnFIE_hdr_set_execute_method (FHANDLE hhdr, enum f_hdr_execute_method method) |
| HDR画像生成手法の設定 | |
| INT FVALGAPI | fnFIE_hdr_mertens (FHANDLE imgstack, FHANDLE hdst, INT pyramid_level_limit) |
| Mertensによる画像合成 (Exposure fusion) | |
| INT FVALGAPI | fnFIE_hdr_tonemap_gamma (FHANDLE hsrc, FHANDLE hdst, DOUBLE gamma) |
| ガンマ変換を利用したtonemapping | |
| INT FVALGAPI | fnFIE_hdr_tonemap_hood (FHANDLE hsrc, FHANDLE hdst, DOUBLE alpha) |
| Hoodによるtonemapping | |
| enum f_hdr_execute_method |
| FHANDLE FVALGAPI fnFIE_hdr_calibrate_linear | ( | INT | img_type, | |
| INT | channels, | |||
| INT * | exerr | |||
| ) |
線形応答を表す逆カメラ応答関数の生成
線形応答を表す逆カメラ応答関数を生成します。 手法の詳細については、カメラ応答関数を線形とした手法 をご覧ください。
パラメータ img_type および channels には、 HDR画像生成時に利用する入力画像の型とチャネル数を指定してください。 指定可能な入力画像の型は、 F_IMG_UC8 のみです。
生成された逆カメラ応答関数はハンドルオブジェクト(HDRオブジェクト)として返されます。 返されたHDRオブジェクトは不要になったら fnFIE_free_object() にて解放してください。 HDRオブジェクトの利用方法については HDR合成の使い方 をご覧ください。
| [in] | img_type | HDR画像生成時に入力する画像の型 |
| [in] | channels | HDR画像生成時に入力する画像のチャネル数 |
| [out] | exerr | エラーコード。エラーコードを受け取る必要の無い場合は、NULLを指定します。
|
| FHANDLE FVALGAPI fnFIE_hdr_calibrate_robertson | ( | FHANDLE | imgstack, | |
| const DOUBLE * | exposure_ratios, | |||
| INT | iter_limit, | |||
| DOUBLE | thresh, | |||
| INT * | exerr | |||
| ) |
Robertsonによる逆カメラ応答関数推定
Robertsonの手法により逆カメラ応答関数を推定します。 手法の詳細については、Robertsonによる逆カメラ応答関数の推定 をご覧ください。
入力画像スタックimgstack について、以下の全てを満たす必要があります。
exposure_ratios は露光量の比の配列です。入力画像スタックが保有する画像枚数と同じ長さのDOUBLE型配列を入力してください。 exposure_ratios[i] にはimgstack のi番目の画像の露光量の比(正の値)を入力してください。 露光量の比の例として、露光時間を利用できます(単位は問いません)。
iter_limit は、放射輝度推定と応答関数推定を繰り返す回数の上限です。0以上の整数を入力してください。 推奨値:30
thresh は、推定前後での各チャネルの応答関数をベクトルと見た時のノルムの差がthresh 以下の場合、 収束したとし推定を打ち止めするための閾値です。0以上の数値を入力してください。 値が小さいほど正確と思われる結果が得られますが、時間がかかります。 推奨値:0.01
推定された逆カメラ応答関数はハンドルオブジェクト(HDRオブジェクト)として返されます。 返されたHDRオブジェクトは不要になったら fnFIE_free_object() にて解放してください。 HDRオブジェクトの利用方法については HDR合成の使い方 をご覧ください。
画像スタックの画像枚数と画像1枚あたりの画素数の積がUI32_MAXを超える場合、F_ERR_INVALID_IMAGEを返します。
| [in] | imgstack | 入力画像スタック (type: uc8) |
| [in] | exposure_ratios | 露光量の比の配列 |
| [in] | iter_limit | 推定を繰り返す回数の上限 |
| [in] | thresh | 推定前後で推定値たちの差がthresh以下の場合、収束したとし推定を打ち止めします |
| [out] | exerr | エラーコード。エラーコードを受け取る必要の無い場合は、NULLを指定します。
|
| INT FVALGAPI fnFIE_hdr_execute | ( | FHANDLE | hhdr, | |
| FHANDLE | imgstack, | |||
| FHANDLE | hdr_img, | |||
| const DOUBLE * | exposure_ratios | |||
| ) |
HDR画像生成
HDRオブジェクト hhdr を用いてHDR合成を行い、HDR画像を生成します。 HDRオブジェクトの生成方法については HDR合成の使い方 をご覧ください。
入力画像スタックimgstack について、以下の全てを満たす必要があります。
出力画像 hdr_img について、以下の全てを満たす必要があります。
exposure_ratios は露光量の比の配列です。 入力画像スタックが格納する画像枚数と同じ長さのDOUBLE型配列を入力してください。 exposure_ratios[i] にはimgstack のi番目の画像の露光量の比(正の値)を入力してください。 露光量の比の例として、露光時間を利用できます(単位は問いません)。 HDRオブジェクト hhdr を生成する際に露光量の比の配列を指定しており、 かつ生成時の画像枚数が imgstack が格納する画像の数と一致する場合は、 exposure_ratios を NULL に指定することができます。 その場合、HDRオブジェクト生成時に指定した露光量の比が利用されます。
本関数の挙動は、HDRオブジェクト hhdr の設定に依存します。 必要に応じて、下記の関数によりHDRオブジェクトの設定を変更してください。
HDRオブジェクト hhdr には NULL を指定することができます。 NULL を指定した場合、 fnFIE_hdr_calibrate_linear() により生成されたHDRオブジェクトを指定した場合と同様に動作します。
| [in] | hhdr | HDRオブジェクト |
| [in] | imgstack | 入力画像スタック (type: uc8) |
| [out] | hdr_img | 出力画像 ( type: double ) |
| [in] | exposure_ratios | 露光量の比の配列 |
| F_ERR_NONE | 正常終了 | |
| F_ERR_NOMEMORY | メモリ不足で確保に失敗した | |
| F_ERR_INVALID_OBJECT | imgstack が画像スタックオブジェクトではない | |
| F_ERR_INVALID_IMAGE | 不正な画像が渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| INT FVALGAPI fnFIE_hdr_get_imgtype | ( | FHANDLE | hhdr | ) |
画像型の取得
HDRオブジェクトが格納する逆カメラ応答関数に対応する画像型を取得します。
| INT FVALGAPI fnFIE_hdr_get_num_images | ( | FHANDLE | hhdr | ) |
画像枚数の取得
HDRオブジェクトの生成に使用した画像枚数を取得します。 fnFIE_hdr_calibrate_linear() により生成されたHDRオブジェクトを指定した場合は、常に0が返ります。
| INT FVALGAPI fnFIE_hdr_get_channels | ( | FHANDLE | hhdr | ) |
チャネル数の取得
HDRオブジェクトが格納する逆カメラ応答関数に対応するチャネル数を取得します。
| INT FVALGAPI fnFIE_hdr_get_icrf | ( | FHANDLE | hhdr, | |
| INT | ch, | |||
| DOUBLE * | icrf_values, | |||
| INT * | num_values | |||
| ) |
逆カメラ応答関数の取得
HDRオブジェクトに格納されている逆カメラ応答関数 (ICRF) を取得します。
| [in] | hhdr | HDRオブジェクト |
| [in] | ch | 対象チャネル (0 <= ch < fnFIE_hdr_get_channels() で返される値) |
| [out] | icrf_values | 逆カメラ応答関数の出力配列。必要な要素数以上の配列を指定してください。 |
| [in,out] | num_values | 出力配列の長さ |
| F_ERR_NONE | 正常終了 | |
| F_ERR_INVALID_OBJECT | 不正なオブジェクトが渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| DOUBLE FVALGAPI fnFIE_hdr_get_gain | ( | FHANDLE | hhdr, | |
| INT | ch | |||
| ) |
ゲインの取得
HDRオブジェクトに格納されているゲインを取得します。
ゲインはチャネル間の画素値の比を調整するパラメータです。 各チャネルのゲインの初期値は1.0です。
| [in] | hhdr | HDRオブジェクト |
| [in] | ch | 対象チャネル (0 <= ch < fnFIE_hdr_get_channels() で返される値) |
| INT FVALGAPI fnFIE_hdr_set_gain | ( | FHANDLE | hhdr, | |
| INT | ch, | |||
| DOUBLE | gain | |||
| ) |
ゲインの設定
HDRオブジェクトにゲインを設定します。
ゲインはチャネル間の画素値の比を調整するパラメータです。 各チャネルのゲインの初期値は1.0です。 1.0より大きな値を設定することで、該当チャネルの放射輝度が大きいことを意味します。 反対に、1.0より小さな値を設定することで、該当チャネルの放射輝度が小さいことを意味します。
カラーキャリブレーション結果が利用できる場合など、チャネル間の画素値の比が既知の場合に本関数をご利用ください。
| [in] | hhdr | HDRオブジェクト |
| [in] | ch | 対象チャネル (0 <= ch < fnFIE_hdr_get_channels() で返される値) |
| [in] | gain | ゲイン値 (0 < gain) |
| F_ERR_NONE | 正常終了 | |
| F_ERR_INVALID_OBJECT | 不正なオブジェクトが渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| DOUBLE FVALGAPI fnFIE_hdr_get_exposure_ratio | ( | FHANDLE | hhdr, | |
| INT | img_index | |||
| ) |
露光量の比の取得
HDRオブジェクトに格納されている露光量の比を取得します。
| [in] | hhdr | HDRオブジェクト |
| [in] | img_index | 対象画像インデックス (0 <= img_index < fnFIE_hdr_get_num_images() で返される値) |
| INT FVALGAPI fnFIE_hdr_get_calibrate_method | ( | FHANDLE | hhdr | ) |
キャリブレーション手法の取得
HDRオブジェクトの生成に使用したキャリブレーション手法を表す定数を取得します。
| [in] | hhdr | HDRオブジェクト |
| INT FVALGAPI fnFIE_hdr_get_execute_method | ( | FHANDLE | hhdr | ) |
HDR画像生成手法の取得
HDRオブジェクトからHDR画像を生成する際の手法を表す定数を取得します。 初期値はHDRオブジェクトの生成方法によって異なり、下記の通りです。
| [in] | hhdr | HDRオブジェクト |
| INT FVALGAPI fnFIE_hdr_set_execute_method | ( | FHANDLE | hhdr, | |
| enum f_hdr_execute_method | method | |||
| ) |
HDR画像生成手法の設定
HDRオブジェクトにHDR画像の生成手法を設定します。 HDRオブジェクトの生成時に適切な初期値が設定されますが、状況によっては変更が好ましい場合があります。 本関数により手法を切り替えることができます。
設定できる手法は下記の通りです。
より詳しくは、 fnFIE_hdr_execute()について をご覧ください。
| [in] | hhdr | HDRオブジェクト |
| [in] | method | HDR画像生成手法
|
| F_ERR_NONE | 正常終了 | |
| F_ERR_INVALID_OBJECT | 不正なオブジェクトが渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| INT FVALGAPI fnFIE_hdr_mertens | ( | FHANDLE | imgstack, | |
| FHANDLE | hdst, | |||
| INT | pyramid_level_limit | |||
| ) |
Mertensによる画像合成 (Exposure fusion)
コントラストの高さと画素値が中間付近にあることを指標として重み付けをし、 複数の画像をピラミッド合成によって融合します。手法の詳細については、Mertensの手法 や HDR合成の各手法の性質 をご覧ください。
入力画像スタックimgstack について、以下の全てを満たす必要があります。
出力画像hdst について、以下の全てを満たす必要があります。
pyramid_level_limit は、ピラミッドの深さの上限を決めるパラメータです。1以上の整数値または-1を入力してください。 -1を入力した場合、画像サイズから計算されたデフォルト値となります。推奨値:-1
| [in] | imgstack | 入力画像スタック (type: uc8, ch: 1) |
| [out] | hdst | 出力画像 ( type: uc8, ch: 1 ) |
| [in] | pyramid_level_limit | ピラミッドの深さの上限を決めるパラメータ。 |
| F_ERR_NONE | 正常終了 | |
| F_ERR_NOMEMORY | メモリ不足で確保に失敗した | |
| F_ERR_INVALID_IMAGE | 不正な画像が渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| INT FVALGAPI fnFIE_hdr_tonemap_gamma | ( | FHANDLE | hsrc, | |
| FHANDLE | hdst, | |||
| DOUBLE | gamma | |||
| ) |
ガンマ変換を利用したtonemapping
ガンマ変換を利用したtonemappingを行います。入力画像の各チャネルで最小値最大値を[0,1]の範囲に正規化し、ガンマ変換を行い、 その後[0,UC8_MAX]の範囲に正規化します。
入出力画像について、以下の全てを満たす必要があります。
gamma はガンマ変換で用いる値です。0より大きい数値を入力してください。 推奨値:2.2
入力画像の画素値が全てほぼ同じ値である場合、出力画像の画素値は全て0になります。
| [in] | hsrc | 入力画像 ( type: double ) |
| [out] | hdst | 出力画像 ( type: uc8 ) |
| [in] | gamma | ガンマ値 ( gamma>0 ) |
| F_ERR_NONE | 正常終了 | |
| F_ERR_NOMEMORY | メモリ不足で確保に失敗した | |
| F_ERR_INVALID_IMAGE | 不正な画像が渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
| INT FVALGAPI fnFIE_hdr_tonemap_hood | ( | FHANDLE | hsrc, | |
| FHANDLE | hdst, | |||
| DOUBLE | alpha | |||
| ) |
Hoodによるtonemapping
Hoodの手法によるtonemappingを行います。
入出力画像について、以下の全てを満たす必要があります。
トーンマッピングは次式のように行われます。
xは正規化された画素値で、alpha は内部で変換に用いられるパラメータです。 alpha は-1または0以上1未満の値を入力してください。
-1を入力した場合、Reinhardの方法により画像から自動でalpha を計算し、その値で変換されます。 alpha の計算式は以下の通りです。
はそれぞれhsrc を正規化し、微小な正の値と最大をとった後の対数画像の最大画素値、最小画素値、平均画素値とし、
入力画像の画素値が全てほぼ同じ値である場合、出力画像の画素値は全て0になります。
| [in] | hsrc | 入力画像 (type: double ) |
| [out] | hdst | 出力画像 ( type: uc8 ) |
| [in] | alpha | 入力パラメータ( -1または0<=alpha<1を満たす数値 ) |
| F_ERR_NONE | 正常終了 | |
| F_ERR_NOMEMORY | メモリ不足で確保に失敗した | |
| F_ERR_INVALID_IMAGE | 不正な画像が渡された | |
| F_ERR_INVALID_PARAM | パラメータ不正 | |
| F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |