結果利用
[カメラキャリブレーション]


関数

INT FVALGAPI fnFIE_calib_undistort_points (F_CAMERA_PARAM camera, DPNT_T *src_points, DPNT_T *dst_points, INT num_points)
  [[OSS]] 点列を歪み補正画像座標へ変換
INT FVALGAPI fnFIE_calib_undistort_image_map (F_CAMERA_PARAM camera, FHANDLE map)
  [[OSS]] 画像の歪み補正マップ生成
INT FVALGAPI fnFIE_calib_undistort_image_map_scale (F_CAMERA_PARAM camera, DPNT_T offset, DOUBLE scale, FHANDLE map)
  [[OSS]] 画像の歪み補正マップ生成(スケール・オフセット付き)
INT FVALGAPI fnFIE_calib_undistort_fit_scale (F_CAMERA_PARAM camera, INT src_width, INT src_height, INT mode, DOUBLE *fit_scale, DPNT_T *fit_offset, INT *fit_width, INT *fit_height)
  [[OSS]] 歪み補正画像の内接矩形画像や外接矩形画像作成のための係数の算出
INT FVALGAPI fnFIE_calib_undistort_fit_rect (F_CAMERA_PARAM camera, INT src_width, INT src_height, INT mode, DOUBLE scale, DPNT_T *fit_offset, INT *fit_width, INT *fit_height)
  [[OSS]] 歪み補正画像の内接矩形画像や外接矩形画像作成のための係数の算出2
INT FVALGAPI fnFIE_calib_distort_points (F_CAMERA_PARAM camera, DPNT_T *src_points, DPNT_T *dst_points, INT num_points)
  [[OSS]] 点列を歪んだ座標へ変換
INT FVALGAPI fnFIE_calib_distort_image_map (F_CAMERA_PARAM camera, FHANDLE map)
  [[OSS]] 画像の歪みシミュレーションマップ生成
INT FVALGAPI fnFIE_calib_rectify_matrix (FMATRIX *homography, DOUBLE origin_x, DOUBLE origin_y, DOUBLE ppm, FMATRIX *rectify)
  [[OSS]] 画像を正対変換するための射影行列の生成
INT FVALGAPI fnFIE_calib_rectify_matrix_inv (FMATRIX *homography, DOUBLE origin_x, DOUBLE origin_y, DOUBLE ppm, FMATRIX *rect_inv)
  [[OSS]] 画像を逆正対変換するための射影行列の生成
INT FVALGAPI fnFIE_calib_rectify_ud_image_map (F_CAMERA_PARAM camera, FMATRIX *homography, DOUBLE origin_x, DOUBLE origin_y, DOUBLE ppm, FHANDLE map)
  [[OSS]] 画像の正対変換と歪み補正を同時に行う座標変換マップの生成

関数

INT FVALGAPI fnFIE_calib_undistort_points ( F_CAMERA_PARAM  camera,
DPNT_T src_points,
DPNT_T dst_points,
INT  num_points 
)

[[OSS]] 点列を歪み補正画像座標へ変換

カメラ内部パラメータによる座標変換を行います。 カメラ画像座標系から理想画像座標系への変換になります。

演算式
カメラ画像座標系での座標 src_points$\breve{u}, \breve{v}$ 、 理想画像座標系での座標 dst_points$u, v$ とすると、その対応は次式により定義されています。

\[ \begin{array}{l} \breve{u} = u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \\ \breve{v} = v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \end{array} \]

ただし、
$u_0, v_0$ :カメラ内部パラメータ(光軸移動係数)
$k_1, k_2$ :カメラ内部パラメータ(放射歪係数)
$x, y$ :正規化画像座標系での座標
また、$x, y$ はカメラ内部パラメータ行列 $A^{-1}$ により $\breve{u}, \breve{v}$ を射影変換した座標です。

本関数ではこの関係式より、

\[ \begin{array}{l} u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] - \breve{u}\\ v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] - \breve{v} \end{array} \]

が最小になるような $u,v$ を非線形最適化を用いて推定し、出力します。

引数:
[in] camera カメラ内部パラメータ構造体
[in] src_points カメラ画像座標系における点の配列
[out] dst_points 歪み補正画像座標系における点の配列
[in] num_points src_points, dst_points の点数
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_distort_points()

INT FVALGAPI fnFIE_calib_undistort_image_map ( F_CAMERA_PARAM  camera,
FHANDLE  map 
)

[[OSS]] 画像の歪み補正マップ生成

カメラ内部パラメータによる座標変換マップを生成します。 本関数によって生成される座標変換マップは、 カメラ画像座標系から理想画像座標系への変換を行います。

calib_undis0.png

歪み補正の実施例

mapfnFIE_geotrans_warpping() と同じ形式の座標変換マップ画像で、 画像型 F_IMG_DOUBLE または F_IMG_FLOAT、チャネル数2の画像を入力します。 map の画像サイズは後で fnFIE_geotrans_warpping() に渡して 変換する際の処理結果画像と画像サイズが同じである必要があります。 また、カメラ内部パラメータ算出時の画像サイズと同じであることを 想定していますが、異なっていても実行は可能です。

カメラ画像座標と理想画像座標で光軸中心付近の スケール係数が1対1になるように変換マップは生成されます。 そのため、画像の外周では変換後に補正前には視野の外だったピクセルが 画像中に出たり、補正前に視野にあったピクセルが画像外に出たりすることがあります。

注意:
カメラ内部パラメータ内の光軸中心の値は fnFIE_calib_add_data() で与えた特徴点の座標系での値となります。 通常はカメラ画像座標系と同じ座標系であり、カメラ画像の中心付近に現れます。 当関数にカメラ画像と異なったサイズの座標変換マップを渡すと、 光軸中心は動かないために画像中心と大きく異なった場所を基準に 歪み補正が行われてしまいますので、注意する必要があります。
演算式
カメラ画像座標系での座標を $\breve{u}, \breve{v}$ 、 理想画像座標系での座標を $u, v$ とすると、本関数は次式により表される変換マップを生成します。

\[ \begin{array}{l} \breve{u} = u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \\ \breve{v} = v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \end{array} \]

ただし、
$u_0, v_0$ :カメラ内部パラメータ(光軸移動係数)
$k_1, k_2$ :カメラ内部パラメータ(放射歪係数)
$x, y$ :正規化画像座標系での座標
また、$x, y$ はカメラ内部パラメータ行列 $A^{-1}$ により $\breve{u}, \breve{v}$ を射影変換した座標です。

引数:
[in] camera カメラ内部パラメータ構造体
[out] map 歪み補正画像作成用map ( type:double, float / ch:2 )
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_IMAGE 画像異常
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_CALC_IMPOSSIBLE カメラ内部パラメータの逆行列が計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_geotrans_warpping()

INT FVALGAPI fnFIE_calib_undistort_image_map_scale ( F_CAMERA_PARAM  camera,
DPNT_T  offset,
DOUBLE  scale,
FHANDLE  map 
)

[[OSS]] 画像の歪み補正マップ生成(スケール・オフセット付き)

カメラ内部パラメータによる座標変換マップを生成します。 本関数によって生成される座標変換マップは、カメラ画像座標系から、 理想画像座標系にスケールとオフセットを加えた座標系への変換を行います。

本関数と fnFIE_calib_undistort_image_map() との違いは、 fnFIE_calib_undistort_image_map() がカメラ内部パラメータによる変換結果をそのまま 使用するのに対して、本関数ではそれにスケールとオフセットを付加できる点です。 その他の部分は fnFIE_calib_undistort_image_map() と同一仕様ですので、 そちらのリファレンスをあわせて参照してください。

スケール scale およびオフセット offset は理想画像座標を $x, y$ 、 理想画像座標にスケールとオフセットを加えた座標を $x', y'$ としたときに、

\[ \begin{array}{l} x' = x / scale - offset.x \\ y' = y / scale - offset.y \end{array} \]

となるように適用されます。 つまり fnFIE_calib_undistort_image_map() の出力する座標変換マップと 本関数によって生成された座標変換マップを比較したときに、 fnFIE_geotrans_warpping() で使用した結果の画像が (0,0) を基準に scale 倍された後で offset だけ平行移動 するような違いが生まれます。

mapfnFIE_geotrans_warpping() と同じ形式の座標変換マップ画像で、 画像型 F_IMG_DOUBLE または F_IMG_FLOAT、チャネル数2の画像を入力します。 map の画像サイズは後で fnFIE_geotrans_warpping() に渡して 変換する際の処理結果画像と画像サイズが同じである必要があります。

引数:
[in] camera カメラ内部パラメータ構造体
[in] offset 原点のオフセット
[in] scale 拡大倍率 ( scale > 0 )
[out] map 歪み補正画像作成用map ( type:double, float / ch:2 )
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_IMAGE 画像異常
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_CALC_IMPOSSIBLE カメラ内部パラメータの逆行列が計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_geotrans_warpping() , fnFIE_calib_undistort_image_map()

INT FVALGAPI fnFIE_calib_undistort_fit_scale ( F_CAMERA_PARAM  camera,
INT  src_width,
INT  src_height,
INT  mode,
DOUBLE *  fit_scale,
DPNT_T fit_offset,
INT *  fit_width,
INT *  fit_height 
)

[[OSS]] 歪み補正画像の内接矩形画像や外接矩形画像作成のための係数の算出

幅が src_width, 高さが src_height のカメラ撮像画像を カメラ内部パラメータ camera にて変換する際に、 その変換結果に対してフィットするような 座標変換マップのサイズとオフセットを計算します。 計算されたパラメータ fit_offset, fit_width, fit_width は スケール・オフセット付き画像ひずみ補正関数 fnFIE_calib_undistort_image_map_scale() にて使用できます。

本関数では変換マップの幅または高さのうち、 スケール変化の小さくなる方をカメラ撮像画像のそれと 同一になるように固定したときの各パラメータを算出します。

mode パラメータの指定値により動作が異なり、 次のように処理が行われます。

mode 0
mode == 0 の場合、歪み補正を行った理想画像の補正結果内部に 無効領域が現れないように画像が作成されるパラメータを算出します。
calib_fit0.png
mode 1
mode == 1 の場合、理想画像の出力時に無効領域を作ってでも 元々のカメラ画像の全てのピクセルが変換先に現れるように 画像が作成されるパラメータを算出します。
calib_fit1.png
計算の結果、出力すべき画像の縦横比が変わってしまうことがあります。 外接するモードで縦横比が変わった場合には、fit_width または fit_height の どちらかに src_widthsrc_height より小さい値が入ります。 内接するモードで縦横比が変わった場合には、fit_width または fit_height の どちらかに src_widthsrc_height より大きい値が入ります。

本関数と fnFIE_calib_undistort_fit_rect() との違いは、 本関数がカメラ撮像画像の幅または高さを基準として パラメータを算出するのに対し fnFIE_calib_undistort_fit_rect() では 画像のスケール変化率を基準としてパラメータを算出する点です。

引数:
[in] camera カメラ内部パラメータ構造体
[in] src_width カメラ画像とワープ変換先画像の横幅
[in] src_height カメラ画像とワープ変換先画像の縦幅
[in] mode 計算モード指定
  • 0 内接する:ワープ変換後の画像は無効領域を持たない
  • 1 外接する:ワープ変換前の画素は全てワープ変換後の画像に出現する
[out] fit_scale スケール係数
[out] fit_offset オフセット
[out] fit_width 内接または外接する領域を最大限にとったときの横幅
[out] fit_height 内接または外接する領域を最大限にとったときの縦幅
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_undistort_image_map_scale()

INT FVALGAPI fnFIE_calib_undistort_fit_rect ( F_CAMERA_PARAM  camera,
INT  src_width,
INT  src_height,
INT  mode,
DOUBLE  scale,
DPNT_T fit_offset,
INT *  fit_width,
INT *  fit_height 
)

[[OSS]] 歪み補正画像の内接矩形画像や外接矩形画像作成のための係数の算出2

幅が src_width, 高さが src_height のカメラ撮像画像を カメラ内部パラメータ camera にて画像を変換する際に、 scale パラメータで入力したスケール係数の画像に対してフィットするような 座標変換マップのサイズとオフセットを計算します。

計算されたパラメータ fit_offset, fit_width, fit_width は スケール・オフセット付き画像ひずみ補正関数 fnFIE_calib_undistort_image_map_scale() にて使用できます。

mode パラメータの指定値により動作が異なり、 次のように処理が行われます。

mode 0
mode == 0 の場合、歪み補正を行った理想画像の補正結果内部に 無効領域が現れないように画像が作成されるパラメータを算出します。
calib_fit0.png
mode 1
mode == 1 の場合、理想画像の出力時に無効領域を作ってでも 元々のカメラ画像の全てのピクセルが変換先に現れるように 画像が作成されるパラメータを算出します。
calib_fit1.png
本関数と fnFIE_calib_undistort_fit_scale() との違いは、 本関数が画像のスケール変化率を基準としてパラメータを算出する のに対し fnFIE_calib_undistort_fit_scale() では カメラ撮像画像の幅または高さを基準としてパラメータを算出する点です。

引数:
[in] camera カメラ内部パラメータ構造体
[in] src_width カメラ画像とワープ変換先画像の横幅
[in] src_height カメラ画像とワープ変換先画像の縦幅
[in] mode 計算モード指定
  • 0 内接する:ワープ変換後の画像は無効領域を持たない
  • 1 外接する:ワープ変換前の画素は全てワープ変換後の画像に出現する
[in] scale スケール係数 ( scale > 0 )
[out] fit_offset オフセット
[out] fit_width 内接または外接する領域を最大限にとったときの横幅
[out] fit_height 内接または外接する領域を最大限にとったときの縦幅
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NOMEMORY メモリ不足
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_undistort_image_map_scale()

INT FVALGAPI fnFIE_calib_distort_points ( F_CAMERA_PARAM  camera,
DPNT_T src_points,
DPNT_T dst_points,
INT  num_points 
)

[[OSS]] 点列を歪んだ座標へ変換

カメラ内部パラメータと放射歪み係数を用いて点列の歪みシミュレーションを行います。 理想画像座標系からカメラ画像座標系への変換です。

src_points で与えられる理想画像座標系での座標を $u, v$ と表すと、本関数は下式により dst_points で出力される カメラ画像座標系での座標 $\breve{u},\breve{v}$ を計算します。

\[ \begin{array}{l} \breve{u} = u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \\ \breve{v} = v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \end{array} \]

ただし、 $x, y$ :正規化画像座標系での座標
$u_0, v_0$ :カメラ内部パラメータ
$k_1, k_2$ :放射歪系数

引数:
[in] camera カメラ内部パラメータ構造体
[in] src_points 理想画像座標系における点の配列( $u, v$ )
[out] dst_points カメラ画像座標系における点の配列( $\breve{u}, \breve{v}$ )
[in] num_points src_points, dst_points の点数
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_CALC_IMPOSSIBLE カメラ内部パラメータの逆行列が計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_undistort_points()

INT FVALGAPI fnFIE_calib_distort_image_map ( F_CAMERA_PARAM  camera,
FHANDLE  map 
)

[[OSS]] 画像の歪みシミュレーションマップ生成

画像の歪みシミュレーションをするための座標変換マップを生成します。 カメラ内部パラメータ構造体の歪み補正係数を用いて、 画像の歪み補正前にどのような画像だったかシミュレーションするための 座標変換マップを生成します。 理想画像座標系からカメラ画像座標系への変換になります。

mapfnFIE_geotrans_warpping() と同じ形式の座標変換マップ画像で、 画像型 F_IMG_DOUBLE または F_IMG_FLOAT、チャネル数2の画像を入力します。 map の画像サイズは後で fnFIE_geotrans_warpping() に渡して変換する際の 処理結果画像と画像サイズが同じである必要があります。 また map の画像サイズは、カメラ内部パラメータ算出時の画像サイズと 同じであることを想定していますが、異なっていても実行は可能です。

引数:
[in] camera カメラ内部パラメータ構造体
[out] map 歪み画像作成用座標変換マップ ( type:double, float / ch:2 )
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_IMAGE 画像異常
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_geotrans_warpping(), fnFIE_calib_undistort_image_map()

INT FVALGAPI fnFIE_calib_rectify_matrix ( FMATRIX homography,
DOUBLE  origin_x,
DOUBLE  origin_y,
DOUBLE  ppm,
FMATRIX rectify 
)

[[OSS]] 画像を正対変換するための射影行列の生成

カメラ混合パラメータに対して平行移動とスケール成分を付加した射影行列を計算します。 生成された行列は fnFIE_geotrans_perspective()fnFIE_geotrans_perspective_point() 等に 渡すことで、理想画像からワールド平面画像への変換に使用することが出来ます。 本処理は fnFIE_calib_rectify_matrix_inv() と逆方向の変換行列生成を行います。

calib_rectify0.png

正対変換の実施例

計算式
本関数による rectify の算出は下式によって行われます。

\[ rectify = \left[ homography \cdot \left[ \begin{array}{ccc} 1&0&origin\_x\\ 0&1&origin\_y\\ 0&0&1 \end{array}\right] \left[\begin{array}{ccc} 1/ppm & 0 & 0\\ 0 & 1/ppm & 0\\ 0 & 0 & 1\end{array} \right] \right]^{-1} \]

引数:
[in] homography カメラ混合パラメータ(3x3行列)
通常は fnFIE_calib_calc_extrinsic_parameters() で生成された行列を使用します。
[in] origin_x ワールド平面座標原点と map 原点のX方向オフセット。
ワールド平面座標系の単位で指定します。
[in] origin_y ワールド平面座標原点と map 原点のY方向オフセット。
ワールド平面座標系の単位で指定します。
[in] ppm map での出力画素数とワールド平面座標系の単位長さとの比( ppm > 1e-9 )
( pixel/mm, pixel/inchなど )
[out] rectify 正対変換のための射影行列
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_rectify_matrix_inv(), fnFIE_geotrans_perspective()

INT FVALGAPI fnFIE_calib_rectify_matrix_inv ( FMATRIX homography,
DOUBLE  origin_x,
DOUBLE  origin_y,
DOUBLE  ppm,
FMATRIX rect_inv 
)

[[OSS]] 画像を逆正対変換するための射影行列の生成

カメラ混合パラメータに対して平行移動とスケール成分を付加した射影行列を計算します。 生成された行列は fnFIE_geotrans_perspective()fnFIE_geotrans_perspective_point() 等に 渡すことで、ワールド平面画像から理想画像への変換に使用することが出来ます。 本処理は fnFIE_calib_rectify_matrix() と逆方向の変換行列生成を行います。

計算式
本関数による $rectify^{-1}$ ( rect_inv ) の算出は下式によって行われます。

\[ rectity^{-1} = homography \cdot \left[ \begin{array}{ccc} 1 & 0 & origin\_x\\ 0 & 1 & origin\_y\\ 0 & 0 & 1 \end{array} \right] \left[ \begin{array}{ccc} 1/ppm & 0 & 0\\ 0 & 1/ppm & 0\\ 0 & 0 & 1 \end{array} \right] \]

引数:
[in] homography カメラ混合パラメータ(3x3行列)
通常は fnFIE_calib_calc_extrinsic_parameters() で生成された行列を使用します。
[in] origin_x ワールド平面座標原点と map 原点のX方向オフセット。
ワールド平面座標系の単位で指定します。
[in] origin_y ワールド平面座標原点と map 原点のY方向オフセット。
ワールド平面座標系の単位で指定します。
[in] ppm map での出力画素数とワールド平面座標系の単位長さとの比( ppm > 1e-9 )
( pixel/mm, pixel/inchなど )
[out] rect_inv 逆正対変換のための射影行列
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_calib_rectify_matrix(), fnFIE_geotrans_perspective()

INT FVALGAPI fnFIE_calib_rectify_ud_image_map ( F_CAMERA_PARAM  camera,
FMATRIX homography,
DOUBLE  origin_x,
DOUBLE  origin_y,
DOUBLE  ppm,
FHANDLE  map 
)

[[OSS]] 画像の正対変換と歪み補正を同時に行う座標変換マップの生成

カメラの内部パラメータによる変換と、外部パラメータによる変換を 同時に行う座標変換マップを生成します。 生成された座標マップは fnFIE_geotrans_warpping() にて使用します。 この座標変換マップにて変換を行うと、 カメラ画像座標系からワールド平面座標系への正対変換が行えます。

calib_rectify0.png

正対変換の実施例

注意:
カメラ混合パラメータ$\bf{H}$ homography を求める時に 算出されたカメラ内部パラメータ$\bf{A}$と、 本関数に指定されるカメラ内部パラメータ $\bf{A}$ camera は 同一の物でなければなりません。
演算式
座標変換前の座標を $\breve{u} , \breve{v}$ 、 座標変換後の座標を $X, Y$ とおくと、 本関数は下式の関係に対応する座標変換マップを生成します。

\[ \left[ \begin{array}{ccc} W u & W v & W \end{array} \right]^t = \bf{H} \left[ \begin{array}{ccc} X & Y & 1 \end{array} \right]^t \]

\[ \left[ \begin{array}{ccc} W' x & W' y & W' \end{array} \right]^t = \bf{Rt} \left[ \begin{array}{ccc} X & Y & 1 \end{array} \right]^t \]

\[ \begin{array}{l} \breve{u} = u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \\ \breve{v} = v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2] \end{array} \]

ただし、 $ k_1, k_2 $ :放射歪み係数
$(u_0, v_0)$ :理想画像座標上での光軸中心座標
$\bf{A}$ :カメラ内部パラメータ行列
$\bf{H}$ :カメラ混合パラメータ行列
$(u, v)$ :理想画像座標上での点座標
$(\breve{u}, \breve{v})$ :カメラ画像座標上での点座標
$(x, y)$$(u, v)$ を正規化画像座標系へ変換した座標

また、本関数ではカメラ混合パラメータ$H$を求める際の カメラ内部パラメータ行列は camera にて指定された カメラ内部パラメータ行列$A$ は同一で有ると仮定しているので、 カメラ外部行列は次式により算出しています。

\[ \begin{array}{ll} Rt &= A^{-1} \bf{H} \\ ( &= A^{-1} \bf{A} \bf{Rt}) \end{array} \]

引数:
[in] camera カメラ内部パラメータ
[in] homography カメラ混合パラメータ(3x3行列)
[in] origin_x ワールド平面座標系と map 原点のX方向オフセット。
ワールド平面座標系の単位で指定します。
[in] origin_y ワールド平面座標系と map 原点のY方向オフセット。
ワールド平面座標系の単位で指定します。
[in] ppm map での出力画素数とワールド平面座標系の単位長さとの比( ppm > 1e-9 )
( pixel/mm, pixel/inchなど )
[out] map 座標変換マップ ( type:double, float / ch:2 )
fnFIE_geotrans_warpping() の座標変換マップと同じものです。
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ異常
F_ERR_INVALID_IMAGE 画像オブジェクト異常
F_ERR_NOMEMORY メモリ不足
F_ERR_CALC_IMPOSSIBLE 計算不能
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
参照:
fnFIE_geotrans_warpping(), fnFIE_calib_undistort_image_map()


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