座標系変換行列生成
[ビジョンツール]


データ構造

struct  F_MODELVIEW
 座標系変換行列生成用の構造体 [詳細]

関数

F_MODELVIEW *FVALGAPI fnFIE_modelview_alloc_param (VOID)
 座標系変換行列生成用構造体のメモリ確保と初期化
INT FVALGAPI fnFIE_modelview_free_param (F_MODELVIEW *param)
 座標系変換行列生成用構造体のメモリ解放
INT FVALGAPI fnFIE_modelview_reset_param (F_MODELVIEW *param)
 座標系変換行列生成用構造体の初期化
INT FVALGAPI fnFIE_modelview_set_param (F_MODELVIEW *param, INT reverse_y, DOUBLE angle, DOUBLE move_x, DOUBLE move_y, DOUBLE scale_x, DOUBLE scale_y)
 座標系変換行列の直接指定
INT FVALGAPI fnFIE_modelview_3pointA (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_x1, DPNT_T pnt_x2, DPNT_T pnt_y, DOUBLE scale_x, DOUBLE scale_y)
 3点から座標系変換行列の設定(その1)
INT FVALGAPI fnFIE_modelview_3pointB (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_x1, DPNT_T pnt_x2, DPNT_T pnt_y, DOUBLE scale_x, DOUBLE scale_y)
 3点から座標系変換行列の設定(その2)
INT FVALGAPI fnFIE_modelview_2pointA (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_x1, DPNT_T pnt_x2, DOUBLE scale_x, DOUBLE scale_y)
 2点から座標系変換行列の設定(その1)
INT FVALGAPI fnFIE_modelview_2pointB (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_y1, DPNT_T pnt_y2, DOUBLE scale_x, DOUBLE scale_y)
 2点から座標系変換行列の設定(その2)
INT FVALGAPI fnFIE_modelview_2pointC (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_x1, DPNT_T pnt_x2, DOUBLE scale_x, DOUBLE scale_y)
 2点から座標系変換行列の設定(その3)
INT FVALGAPI fnFIE_modelview_point_and_lineA (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_y, DLINE_T line_x, DOUBLE scale_x, DOUBLE scale_y)
 X軸直線とY軸上の1点による座標系変換行列の設定
INT FVALGAPI fnFIE_modelview_point_and_lineB (F_MODELVIEW *param, INT reverse_y, DPNT_T origin, DLINE_T line_x, DOUBLE scale_x, DOUBLE scale_y)
 X軸に平行な直線と原点指定による座標系変換行列の設定
INT FVALGAPI fnFIE_modelview_npointA (F_MODELVIEW *param, INT reverse_y, DPNT_T pnt_y, const DPNT_T *pnts_x, INT pnt_num, DOUBLE scale_x, DOUBLE scale_y, enum f_line_detection_mode lsm_mode, INT lsm_param)
 点群と1点から座標系変換行列の設定(その1)
INT FVALGAPI fnFIE_modelview_npointB (F_MODELVIEW *param, INT reverse_y, DPNT_T origin, const DPNT_T *pnts_x, INT pnt_num, DOUBLE scale_x, DOUBLE scale_y, enum f_line_detection_mode lsm_mode, INT lsm_param)
 点群と1点から座標系変換行列の設定(その2)
INT FVALGAPI fnFIE_modelview_parallel (F_MODELVIEW *param, INT reverse_y, DPNT_T origin, DOUBLE scale_x, DOUBLE scale_y)
 座標系変換行列の平行移動
INT FVALGAPI fnFIE_modelview_set_points (F_MODELVIEW *param, INT reverse_y, const DPNT_T *screen_pnts, const DPNT_T *world_pnts, INT pnt_num)
 点群の変換係数の算出による、座標系変換行列の生成

関数

F_MODELVIEW* FVALGAPI fnFIE_modelview_alloc_param ( VOID   ) 

座標系変換行列生成用構造体のメモリ確保と初期化

座標系変換行列生成用の、 F_MODELVIEW 構造体を確保し、内部係数を初期化します。 初期化後の座標変換係数は下記のように設定されます。

  • Y軸反転 : FALSE 反転無し(Y軸正方向が下向き)
  • 回転( angle ) : 0.0
  • 平行移動( move_x , move_y ) : 0.0
  • スケール( scale_x , scale_y ) : 1.0
  • 行列( forward , backward ) : E ( 3×3の単位行列 )
戻り値:
確保された座標系変換行列生成用構造体を返します。 メモリ不足やライセンスエラー、または未初期化エラーで失敗した場合は、NULLを返します。

INT FVALGAPI fnFIE_modelview_free_param ( F_MODELVIEW param  ) 

座標系変換行列生成用構造体のメモリ解放

fnFIE_modelview_alloc_param() 関数で確保した、座標系変換行列生成用構造体を解放します。

引数:
[in] param 解放する座標系変換行列生成用構造体
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された

INT FVALGAPI fnFIE_modelview_reset_param ( F_MODELVIEW param  ) 

座標系変換行列生成用構造体の初期化

座標変換係数をリセットします。 リセット後の座標変換係数は、以下のように初期化されます。

  • Y軸反転 : FALSE 反転無し(Y軸正方向が下向き)
  • 回転( angle ) : 0.0
  • 平行移動( move_x , move_y ) : 0.0
  • スケール( scale_x , scale_y ) : 1.0
  • 行列( forward , backward ) : E ( 3×3の単位行列 )
引数:
[in,out] param 初期化する座標系変換行列生成用構造体
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_set_param ( F_MODELVIEW param,
INT  reverse_y,
DOUBLE  angle,
DOUBLE  move_x,
DOUBLE  move_y,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

座標系変換行列の直接指定

座標変換係数をパラメ−タによって設定する関数です。 ( Δx , Δy )で指定した点を原点とし、 x軸を angle だけ回転した直行座標系への座標変換係数を設定する関数です。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_set_param.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • TRUE :x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • FALSE :x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] angle 変換座標系 傾き(単位:ラジアン)
[in] move_x 変換座標系 x移動量:Δx
[in] move_y 変換座標系 y移動量:Δy
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_3pointA ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_x1,
DPNT_T  pnt_x2,
DPNT_T  pnt_y,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

3点から座標系変換行列の設定(その1)

座標変換係数を設定する関数です。 P1 と P2 で決定されるx軸と、 P3 を通りx軸に垂直な直線で決定されるy軸の直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_3pointA.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • TRUE :x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • FALSE :x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_x1 x軸を決定する点1:P1
[in] pnt_x2 x軸を決定する点2:P2
[in] pnt_y y軸を決定する点:P3
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_3pointB ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_x1,
DPNT_T  pnt_x2,
DPNT_T  pnt_y,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

3点から座標系変換行列の設定(その2)

座標変換係数を設定する関数です。 P3 を原点とし、 P1 と P2 で決定される直線に平行なx軸の 直交座標系の座標変換係数を決定します。 x軸を決定する2点 P1 と P2 は、同じ座標ではいけません。 同一で有った場合の結果は不定です。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_3pointB.png

param には必ず fnFIE_modelview_alloc_param() 関数にて確保した F_MODELVIEW 構造体を渡してください。 これは、構造体内部の行列が正しく設定されている必要があるためです。 fnFIE_modelview_alloc_param() により確保された param 以外では、 F_ERR_INVALID_PARAM が返されたり、メモリアクセス違反となる場合があります。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • TRUE :x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • FALSE :x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_x1 x軸を決定する点1:P1
[in] pnt_x2 x軸を決定する点2:P2
[in] pnt_y y軸を決定する点:P3
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_2pointA ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_x1,
DPNT_T  pnt_x2,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

2点から座標系変換行列の設定(その1)

座標変換係数を設定する関数です。 P1 と P2 で決定されるx軸をもち、その2点の中点を原点とする 直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_2pointA.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • TRUE :x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • FALSE :x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_x1 x軸を決定する点1:P1
[in] pnt_x2 x軸を決定する点2:P2
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_2pointB ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_y1,
DPNT_T  pnt_y2,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

2点から座標系変換行列の設定(その2)

座標変換係数を設定する関数です。 P1 と P2 で決定されるy軸をもち、その2点の中点を原点とする直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_2pointB.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_y1 y軸を決定する点1:P1
[in] pnt_y2 y軸を決定する点2:P2
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_2pointC ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_x1,
DPNT_T  pnt_x2,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

2点から座標系変換行列の設定(その3)

座標変換係数を設定する関数です。 P1 と P2 で決定されるx軸をもち、 P1 を原点とする直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_2pointC.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_x1 x軸を決定する点1:P1
[in] pnt_x2 x軸を決定する点2:P2
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_point_and_lineA ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_y,
DLINE_T  line_x,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

X軸直線とY軸上の1点による座標系変換行列の設定

座標変換係数を設定する関数です。 直線 L1 によって決定されるx軸と、 P1 を通りx軸に垂直な直線で決定されるy軸の直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_point_and_lineA.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_y y軸を決定する点:P1
[in] line_x x軸を表す直線:L1
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_point_and_lineB ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  origin,
DLINE_T  line_x,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

X軸に平行な直線と原点指定による座標系変換行列の設定

座標変換係数を設定する関数です。 P1 を原点として、直線 L1 に平行なx軸で決定される直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_point_and_lineB.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] origin 原点を決定する点:P1
[in] line_x x軸に平行な直線:L1
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_npointA ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  pnt_y,
const DPNT_T pnts_x,
INT  pnt_num,
DOUBLE  scale_x,
DOUBLE  scale_y,
enum f_line_detection_mode  lsm_mode,
INT  lsm_param 
)

点群と1点から座標系変換行列の設定(その1)

座標変換係数を設定する関数です。 点群 G1 で決定されるx軸と、 P1 を通りx軸に垂直な直線で決定されるy軸の直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_npointA.png

param には必ず fnFIE_modelview_alloc_param() 関数にて確保した F_MODELVIEW 構造体を渡してください。 これは、構造体内部の行列が正しく設定されている必要があるためです。 fnFIE_modelview_alloc_param() により確保された param 以外では、 F_ERR_INVALID_PARAM が返されたり、メモリアクセス違反となる場合があります。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
なお、直線生成パラメータ( lsm_param )は、直線生成モードにより意味が異なります。 パラメータの意味は以下の通りです。
  • F_LINE_DETECTION_NORMAL 無視されます
  • F_LINE_DETECTION_NUM 繰り返し回数を指定します
  • F_LINE_DETECTION_DIST_A 求められた直線と点との閾値(距離)を指定します
  • F_LINE_DETECTION_DIST_B 求められた直線と点との閾値(距離)を指定します
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] pnt_y y軸を決定する点:P1
[in] pnts_x x軸を決定する点配列:G1。 pnt_num で指定した個数の点が必要
[in] pnt_num 点群 pnts_xに入っている点の数(2〜1000)
[in] scale_x xスケーリング
[in] scale_y yスケーリング
[in] lsm_mode 直線係数決定モード
  • F_LINE_DETECTION_NORMAL 通常直線検出モード
  • F_LINE_DETECTION_NUM 回数指定モード
  • F_LINE_DETECTION_DIST_A 距離指定モード1
  • F_LINE_DETECTION_DIST_B 距離指定モード2
[in] lsm_param 直線係数決定パラメータ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_npointB ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  origin,
const DPNT_T pnts_x,
INT  pnt_num,
DOUBLE  scale_x,
DOUBLE  scale_y,
enum f_line_detection_mode  lsm_mode,
INT  lsm_param 
)

点群と1点から座標系変換行列の設定(その2)

座標変換係数を設定する関数です。 P1 を原点として、 点群 G1 から求められる直線に平行なx軸で決定される直交座標系の座標変換係数を決定します。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_npointB.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
なお、直線生成パラメータ( lsm_param )は、直線生成モードにより意味が異なります。 パラメータの意味は以下の通りです。
  • F_LINE_DETECTION_NORMAL 無視されます
  • F_LINE_DETECTION_NUM 繰り返し回数を指定します
  • F_LINE_DETECTION_DIST_A 求められた直線と点との閾値(距離)を指定します
  • F_LINE_DETECTION_DIST_B 求められた直線と点との閾値(距離)を指定します
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] origin 原点を決定する点:P1
[in] pnts_x x軸を決定する点配列:G1。 pnt_num で指定した個数の点が必要
[in] pnt_num 点群 pnts_x に入っている点の数(2〜1000)
[in] scale_x xスケーリング
[in] scale_y yスケーリング
[in] lsm_mode 直線係数決定モード
  • F_LINE_DETECTION_NORMAL 通常直線検出モード
  • F_LINE_DETECTION_NUM 回数指定モード
  • F_LINE_DETECTION_DIST_A 距離指定モード1
  • F_LINE_DETECTION_DIST_B 距離指定モード2
[in] lsm_param 直線係数決定パラメータ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_parallel ( F_MODELVIEW param,
INT  reverse_y,
DPNT_T  origin,
DOUBLE  scale_x,
DOUBLE  scale_y 
)

座標系変換行列の平行移動

座標変換係数を設定する関数です。 P1 で指定した点を原点にするように、直行座標系を平行移動します。 既に param で指定されるアライメント係数が設定されていた場合は、その座標に関して平行移動を行います。 x軸の正の方向は必ず画面向かって右側になります。

fie_modelview_parallel.png

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

scale_x および scale_y に指定するスケール値は、スクリーン座標系における、1をワールド座標系でいくつとするかを決める倍率です。 つまり、スケール値として設定された値で座標系変換行列の各軸の単位を決定します。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] origin 原点を決定する点:P1
[in] scale_x xスケーリング
[in] scale_y yスケーリング
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
F_ERR_CALC_IMPOSSIBLE 計算不能エラー
F_ERR_NOMEMORY メモリ不足
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_modelview_set_points ( F_MODELVIEW param,
INT  reverse_y,
const DPNT_T screen_pnts,
const DPNT_T world_pnts,
INT  pnt_num 
)

点群の変換係数の算出による、座標系変換行列の生成

screen_pnts の各点を world_pnts に変換するような座標変換係数を 最小2乗法によって設定する関数です。 world_pntsscreen_pnts の要素数は pnt_num となります。 world_pntsscreen_pnts は、要素番号が同じ座標が対応しているものとして、変換行列を求めます。

param には必ず fnFIE_modelview_alloc_param() 関数にて生成した F_MODELVIEW 構造体を渡してください。 それ以外で生成した場合の動作は保証できません。

reverse_y には、ワールド座標のY軸の方向を指定します。

  • reverse_y が TRUE の時には、x軸の正の向きを画面向かって右側としたとき、y軸の正方向が画面上向きになるように設定されます。
  • reverse_y が FALSE の時には、x軸の正の向きを画面向かって右側としたときに、y軸の正方向が画面下向きになるように設定されます。
点の数 pnt_num が3以上で、 screen_pnts の全ての点が同一直線上に並んでいる場合は、計算不能エラーを返します。

引数:
[out] param 座標変換係数
[in] reverse_y Y軸方向
  • TRUE 反転有り(Y軸正方向が上向き)
  • FALSE 反転無し(Y軸正方向が下向き)
[in] screen_pnts 変換前座標から見た点群
[in] world_pnts 変換後座標から見た点群
[in] pnt_num 点群に入っている点の数(2〜100)
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 不正なパラメータが渡された
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