初期化
[カメラキャリブレーション]


関数

FHANDLE FVALGAPI fnFIE_calib_open (DPNT_T *model, INT num_model, INT *status)
  [[OSS]] カメラキャリブレーションデータオブジェクトの作成
INT FVALGAPI fnFIE_calib_add_data (FHANDLE hcalib, DPNT_T *points, INT num_points)
  [[OSS]] モデル撮像結果の追加
INT FVALGAPI fnFIE_calib_get_model_points (FHANDLE hcalib, DPNT_T **model, INT *num_model)
  [[OSS]] 基準モデル座標列の取得
INT FVALGAPI fnFIE_calib_get_marker_points (FHANDLE hcalib, INT view_num, DPNT_T **points, INT *num_points)
  [[OSS]] 格納済みモデル撮像結果座標列の取得
INT FVALGAPI fnFIE_calib_get_num_view (FHANDLE hcalib, INT *num_view)
  [[OSS]] モデル撮像結果の格納回数の取得
INT FVALGAPI fnFIE_calib_get_num_model (FHANDLE hcalib, INT *num_model)
  [[OSS]] 基準モデル座標列の座標点数を取得
FHANDLE FVALGAPI fnFIE_calib_open2 (INT type, INT n, DOUBLE unit, DPNT_T offset, INT *status)
  [[OSS]] カメラキャリブレーションデータオブジェクトの作成2
INT FVALGAPI fnFIE_calib_detect (FHANDLE hcalib, FHANDLE image, DPNT_T **points, INT *num_points)
  [[OSS]] 特徴点の検出
INT FVALGAPI fnFIE_calib_add_data2 (FHANDLE hcalib, FHANDLE image)
  [[OSS]] 特徴点の検出と追加

関数

FHANDLE FVALGAPI fnFIE_calib_open ( DPNT_T model,
INT  num_model,
INT *  status 
)

[[OSS]] カメラキャリブレーションデータオブジェクトの作成

カメラキャリブレーションに使用する基準モデル座標列とその個数を与え、 カメラキャリブレーションデータオブジェクトを作成します。 座標値はワールド座標系の単位で与えてください。

calib_model0.png

基準モデル

利用を終了するなどしてカメラキャリブレーションデータオブジェクトが 不要になった場合は fnFIE_free_object() で解放してください。

引数:
[in] model 基準モデル座標列
[in] num_model model 配列が含む座標の個数 (4以上)
[out] status エラーコードを格納する変数のポインタ。
必要のない場合はNULLを入れてください。
  • F_ERR_NONE 正常終了
  • F_ERR_NOMEMORY メモリ不足
  • F_ERR_INVALID_PARAM 引数異常
    model が NULL
    num_model < 4
  • F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
戻り値:
正常終了した場合は、内部で確保したカメラキャリブレーションデータオブジェクトのハンドルを返します。 異常終了により生成できなかったときはNULLを返します。
参照:
fnFIE_free_object()

INT FVALGAPI fnFIE_calib_add_data ( FHANDLE  hcalib,
DPNT_T points,
INT  num_points 
)

[[OSS]] モデル撮像結果の追加

撮像結果から得られたモデル座標列を カメラキャリブレーションデータオブジェクトに追加します。

points にて与える座標列は fnFIE_calib_open() で設定した 基準モデル座標列と同じ数でなければなりません。 またその順序は、基準モデル座標列の指定時と同じ順序でなければなりません。 なお、points の座標はカメラ画像の座標系 (画像左上を原点として単位はピクセル)で与えてください。

calib_add_data.png

特徴点の追加

fnFIE_calib_calc_1shot() を実行したい場合には当関数を少なくとも 1回呼んでキャリブレーション実行の準備をします。 fnFIE_calib_calc_intrinsic_parameters() を実行したい場合には 当関数を複数回(最低3回)呼び、 様々な位置や姿勢の点列をオブジェクトに追加して キャリブレーション実行の準備をします。

引数:
[in,out] hcalib カメラキャリブレーションデータオブジェクト
[in] points 画像から検出したモデル座標の配列
[in] num_points points の要素数
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_OBJECT 引数オブジェクト異常
F_ERR_INVALID_PARAM 引数異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_get_model_points ( FHANDLE  hcalib,
DPNT_T **  model,
INT *  num_model 
)

[[OSS]] 基準モデル座標列の取得

カメラキャリブレーションデータオブジェクトから基準モデル座標列の複製を取得します。 *model はNULLで初期化して与えてください。 内部でメモリ確保した配列を返します。基準モデル座標列が不要になった場合は fnOAL_free() で解放してください。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[out] model 基準モデル座標配列
[out] num_model model 配列が含む座標の個数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_INVALID_PARAM パラメータ異常
  • num_model がNULL
  • model がNULL
  • *model がNULLで初期化されていない
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_get_marker_points ( FHANDLE  hcalib,
INT  view_num,
DPNT_T **  points,
INT *  num_points 
)

[[OSS]] 格納済みモデル撮像結果座標列の取得

カメラキャリブレーションデータオブジェクトから、格納済みのモデル撮像結果座標列の複製を取得します。 *points で得たモデル撮像結果座標列のn番目と fnFIE_calib_get_model_points() で得た基準モデル座標配列のn番目は対応した座標データになります。 *points はNULLで初期化して与えてください。 内部でメモリ確保した配列を返します。モデル撮像結果座標列が不要になった場合は fnOAL_free() で解放してください。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[in] view_num hcalib に何番目に追加したデータを取得するか.
(0 <= view_num < fnFIE_calib_add_data() を呼んだ回数)
[out] points モデル撮像結果座標配列
[out] num_points points が含む座標の個数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_INVALID_PARAM パラメータ異常
  • num_points がNULL
  • points がNULL
  • *points がNULLで初期化されていない
  • view_num が範囲外
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_get_num_view ( FHANDLE  hcalib,
INT *  num_view 
)

[[OSS]] モデル撮像結果の格納回数の取得

カメラキャリブレーションデータオブジェクトから、 モデル撮像結果座標列を今までに fnFIE_calib_add_data()fnFIE_calib_add_data2() で何回追加したかを取得します。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[out] num_view モデル撮像結果の格納回数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_get_num_model ( FHANDLE  hcalib,
INT *  num_model 
)

[[OSS]] 基準モデル座標列の座標点数を取得

カメラキャリブレーションデータオブジェクトから、 基準モデル座標列の座標点数を取得します。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[out] num_model 基準モデル座標列の座標点数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT オブジェクト異常
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

FHANDLE FVALGAPI fnFIE_calib_open2 ( INT  type,
INT  n,
DOUBLE  unit,
DPNT_T  offset,
INT *  status 
)

[[OSS]] カメラキャリブレーションデータオブジェクトの作成2

カメラキャリブレーションに使用する基準モデルのデータを与え、 カメラキャリブレーションデータオブジェクトを作成します。 利用を終了するなどしてカメラキャリブレーションデータオブジェクトが 不要になった場合は fnFIE_free_object() で解放してください。

円モデルについて
F_CALIB_MODEL_CIRCLE の場合、次のようなキャリブレーションテンプレートを用います。
circle_model.png

円モデルのキャリブレーションテンプレート

図中の数値に unit を乗算したサイズのテンプレートを用います。 また、縦横方向の円の数を n として与えます。上図の場合4です。 白地に黒色の円と枠でなければなりません。 モデルの原点はテンプレートの中心にあります。 別の位置に指定したい場合には offset にその座標値を与えてください。
引数:
[in] type モデルの種別 (下記の値を指定してください。)
  • F_CALIB_MODEL_CIRCLE
[in] n 円の縦横方向個数
  • type が F_CALIB_MODEL_CIRCLE の場合、 n > 2
[in] unit モデルの単位長さ。ワールド座標系の単位(ミリメートル等)で与えます。 ( unit > 0.0 )
[in] offset モデル原点とワールド座標系原点のオフセット。ワールド座標系の単位(ミリメートル等)で与えます。
[out] status エラーコード。不要な場合はNULLを指定してください。
  • F_ERR_NONE 正常終了
  • F_ERR_NOMEMORY メモリ不足
  • F_ERR_INVALID_PARAM パラメータ異常
戻り値:
NULL 異常終了
NULL以外 カメラキャリブレーションデータオブジェクト
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_detect ( FHANDLE  hcalib,
FHANDLE  image,
DPNT_T **  points,
INT *  num_points 
)

[[OSS]] 特徴点の検出

カメラキャリブレーションデータオブジェクトに設定されているモデル種別に従って、 濃淡画像から基準モデル座標列に対応する特徴点座標を検出します。 カラー画像を与えた場合は内部で濃淡画像に変換してから処理をしています。
カメラキャリブレーションデータオブジェクトを fnFIE_calib_open2() で作成したときのみ検出できます。 fnFIE_calib_open() で作成されていた場合には処理を実行せず、 F_ERR_INVALID_OBJECT を返して終了します。
fnFIE_calib_open2() で F_CALIB_MODEL_CIRCLE のモデルでオブジェクトを作成していた場合、キャリブレーションテンプレートは白地に黒色の円と枠でなければなりません。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[in] image 入力画像 ( type:uc8 / ch:1,3, type:rgbq,s16,us16 / ch:1 )
[out] points 検出したモデル座標列。 points をNULLに初期化して入力すると内部でメモリ確保した配列を返します。 不要になった場合は fnOAL_free() で解放してください。
[out] num_points points のサイズ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 画像オブジェクト異常
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
  • 発見できなかった特徴点がひとつ以上あった
  • キャリブレーションテンプレート四隅の姿勢推定に失敗した
  • 特徴点座標検出の過程で円周辺のエッジが充分に取得できなかった
  • 特徴点座標検出の過程で円の中心推定に失敗した
F_ERR_INVALID_OBJECT オブジェクト異常
  • hcalib がNULL
  • hcalib のオブジェクト種別が異なる
  • hcalib に設定されているモデル種別では検出ができない
F_ERR_INVALID_PARAM パラメータ不正
  • points がNULL
  • *points がNULLでない
  • num_points がNULL
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_calib_add_data2 ( FHANDLE  hcalib,
FHANDLE  image 
)

[[OSS]] 特徴点の検出と追加

カメラキャリブレーションデータオブジェクトに設定されているモデル種別に従って、 濃淡画像から基準モデル座標列に対応する特徴点座標を検出し、カメラキャリブレーションデータオブジェクトに追加します。 カラー画像を与えた場合は内部で濃淡画像に変換してから処理をしています。
カメラキャリブレーションデータオブジェクトを fnFIE_calib_open2() で作成したときのみデータを追加できます。 fnFIE_calib_open() で作成されていた場合には処理を実行せず、 F_ERR_INVALID_OBJECT を返して終了します。
fnFIE_calib_open2() で F_CALIB_MODEL_CIRCLE のモデルでオブジェクトを作成していた場合、キャリブレーションテンプレートは白地に黒色の円と枠でなければなりません。

引数:
[in] hcalib カメラキャリブレーションデータオブジェクト
[in] image 入力画像 ( type:uc8 / ch:1,3, type:rgbq,s16,us16 / ch:1 )
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT オブジェクト異常
  • hcalib がNULL
  • hcalib のオブジェクト種別が異なる
  • hcalib に設定されているモデル種別では検出ができない
F_ERR_INVALID_IMAGE 画像オブジェクト異常
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
  • 発見できなかった特徴点がひとつ以上あった
  • キャリブレーションテンプレート四隅の姿勢推定に失敗した
  • 特徴点座標検出の過程で円周辺のエッジが充分に取得できなかった
  • 特徴点座標検出の過程で円の中心推定に失敗した
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:48 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2