同次変換行列に入力座標系/出力座標系のオフセットを加える
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_geotrans_get_offset_matrix( FMATRIX_PTR vpTransMat, FMATRIX_PTR vpOffsetMat, double dSrcOffX, double dSrcOffY, double dDstOffX, double dDstOffY ) |
Visual Basic |
---|
Public Shared Function fnFIE_geotrans_get_offset_matrix ( vpTransMat As FMATRIX_PTR, vpOffsetMat As FMATRIX_PTR, dSrcOffX As Double, dSrcOffY As Double, dDstOffX As Double, dDstOffY As Double ) As Integer |
Parameters
- vpTransMat
- Type: fvalgcli..::..FMATRIX_PTR
画像幾何変換の同次変換行列
- vpOffsetMat
- Type: fvalgcli..::..FMATRIX_PTR
偏移量を含めたの幾何変換の同次変換行列
- dSrcOffX
- Type: System..::..Double
元画像の横方向の偏移量
- dSrcOffY
- Type: System..::..Double
元画像の縦方向の偏移量
- dDstOffX
- Type: System..::..Double
結果画像の横方向の偏移量
- dDstOffY
- Type: System..::..Double
結果画像の縦方向の偏移量
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_NOMEMORY | メモリ不足エラー |
F_ERR_INVALID_IMAGE | 画像オブジェクトの異常 |
F_ERR_INVALID_PARAM | パラメータ異常 |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// 同次変換行列に入力座標系/出力座標系のオフセットを加える. /// </summary> [FvPluginExecute] public void fnFIE_geotrans_get_offset_matrix() { int status = (int)f_err.F_ERR_NONE; FMATRIX_PTR vpTransMat = FMATRIX_PTR.Zero; // 画像幾何変換の同次変換行列. FMATRIX_PTR vpOffsetMat = FMATRIX_PTR.Zero; // 偏移量を含めた幾何変換の同次変換行列. const double dSrcOffX = 10; // 元画像の横方向の偏移量. const double dSrcOffY = 20; // 元画像の縦方向の偏移量. const double dDstOffX = 30; // 結果画像の横方向の偏移量. const double dDstOffY = 40; // 結果画像の縦方向の偏移量. try { // 同次変換行列の確保. vpTransMat = api.fnFIE_mat_aalloc(3, 3); vpOffsetMat = api.fnFIE_mat_aalloc(3, 3); // 同次変換行列の値設定. const double sx = 5; const double sy = 6; api.fnFIE_geotrans_calc_scale_matrix(vpTransMat, sx, sy); // 処理の実行. status = api.fnFIE_geotrans_get_offset_matrix(vpTransMat, vpOffsetMat, dSrcOffX, dSrcOffY, dDstOffX, dDstOffY); // エラー判定. Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 結果出力. ConsoleOut.WriteFunctionName(":\t"); ConsoleOut.IsEqualMatrix( vpOffsetMat, sx, 0, sx * dSrcOffX - dDstOffX, 0, sy, sy * dSrcOffY - dDstOffY, 0, 0, 1 ); ConsoleOut.WriteFMATRIX(vpOffsetMat, 3, 3); } finally { // オブジェクトの開放. vpTransMat.Dispose(); vpOffsetMat.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' 同次変換行列に入力座標系/出力座標系のオフセットを加える. ''' </summary> <FvPluginExecute> _ Public Sub fnFIE_geotrans_get_offset_matrix() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim vpTransMat As FMATRIX_PTR = FMATRIX_PTR.Zero ' 画像幾何変換の同次変換行列. Dim vpOffsetMat As FMATRIX_PTR = FMATRIX_PTR.Zero ' 偏移量を含めた幾何変換の同次変換行列. Const dSrcOffX As Double = 10 ' 元画像の横方向の偏移量. Const dSrcOffY As Double = 20 ' 元画像の縦方向の偏移量. Const dDstOffX As Double = 30 ' 結果画像の横方向の偏移量. Const dDstOffY As Double = 40 ' 結果画像の縦方向の偏移量. Try ' 同次変換行列の確保. vpTransMat = api.fnFIE_mat_aalloc(3, 3) vpOffsetMat = api.fnFIE_mat_aalloc(3, 3) ' 同次変換行列の値設定. Const sx As Double = 5 Const sy As Double = 6 api.fnFIE_geotrans_calc_scale_matrix(vpTransMat, sx, sy) ' 処理の実行. status = api.fnFIE_geotrans_get_offset_matrix(vpTransMat, vpOffsetMat, dSrcOffX, dSrcOffY, dDstOffX, dDstOffY) ' エラー判定. Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 結果出力. ConsoleOut.WriteFunctionName(":" & vbTab) ConsoleOut.IsEqualMatrix(vpOffsetMat, sx, 0, sx * dSrcOffX - dDstOffX, 0, sy, _ sy * dSrcOffY - dDstOffY, 0, 0, 1) ConsoleOut.WriteFMATRIX(vpOffsetMat, 3, 3) Finally ' オブジェクトの開放. vpTransMat.Dispose() vpOffsetMat.Dispose() End Try End Sub End Class |