特徴点の検出と追加

Namespace: fvalgcli
Assembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)

Syntax

C#
public static int fnFIE_calib_add_data2(
	FHANDLE hcalib,
	FHANDLE image
)
Visual Basic
Public Shared Function fnFIE_calib_add_data2 ( 
	hcalib As FHANDLE,
	image As FHANDLE
) As Integer

Parameters

hcalib
Type: fvalgcli..::..FHANDLE
カメラキャリブレーションデータオブジェクト
image
Type: fvalgcli..::..FHANDLE
入力画像 ( type:uc8 / ch:1,3, type:rgbq,s16,us16 / ch:1 )

Return Value

Type: Int32
以下のエラーコードを返します。

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_INVALID_OBJECTオブジェクト異常
  • hcalib が IntPtr.Zero
  • hcalib のオブジェクト種別が異なる
  • hcalib に設定されているモデル種別では検出ができない
F_ERR_INVALID_IMAGE画像オブジェクトの異常
F_ERR_CALC_IMPOSSIBLE計算不能エラー
  • 発見できなかった特徴点がひとつ以上あった
  • キャリブレーションテンプレート四隅の姿勢推定に失敗した
  • 特徴点座標検出の過程で円周辺のエッジが充分に取得できなかった
  • 特徴点座標検出の過程で円の中心推定に失敗した
F_ERR_NOMEMORYメモリ不足エラー
F_ERR_INVALID_PARAMパラメータ異常
F_ERR_NO_LICENCEライセンスエラー、または未初期化エラー

Remarks

Examples

C# Copy imageCopy
//    $Revision: 1.1 $

using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;

namespace TC
{
    public partial class FIE
    {
        /// <summary>
        /// 特徴点の検出と追加.
        /// </summary>
        /// <param name="hcalib"></param>
        public void fnFIE_calib_add_data2(FHANDLE hcalib)
        {
            int status = (int)f_err.F_ERR_NONE;

            // キャリブレーションテンプレート画像群.
            FHANDLE himg = FHANDLE.Zero;
            FHANDLE himg1 = FHANDLE.Zero;
            FHANDLE himg2 = FHANDLE.Zero;
            FHANDLE himg3 = FHANDLE.Zero;
            FHANDLE himg4 = FHANDLE.Zero;
            FHANDLE himg5 = FHANDLE.Zero;

            try
            {
                // 画像のロード.
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src_1shot.bmp", ref himg, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src0.bmp", ref himg1, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src1.bmp", ref himg2, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src2.bmp", ref himg3, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src3.bmp", ref himg4, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                api.fnFIE_load_img_file(TestImageDir + "/testdata/calib_src4.bmp", ref himg5, f_color_img_type.F_COLOR_IMG_TYPE_UC8);

                // 実行.
                status = api.fnFIE_calib_add_data2(hcalib, himg);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
                status = api.fnFIE_calib_add_data2(hcalib, himg1);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
                status = api.fnFIE_calib_add_data2(hcalib, himg2);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
                status = api.fnFIE_calib_add_data2(hcalib, himg3);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
                status = api.fnFIE_calib_add_data2(hcalib, himg4);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
                status = api.fnFIE_calib_add_data2(hcalib, himg4);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status);
            }
            finally
            {
                himg.Dispose();
                himg1.Dispose();
                himg2.Dispose();
                himg3.Dispose();
                himg4.Dispose();
                himg5.Dispose();
            }
        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli

Public Partial Class FIE
    ''' <summary>
    ''' 特徴点の検出と追加.
    ''' </summary>
    ''' <param name="hcalib"></param>
    Public Sub fnFIE_calib_add_data2(hcalib As FHANDLE)
        Dim status As Integer = CInt(f_err.F_ERR_NONE)

        ' キャリブレーションテンプレート画像群.
        Dim himg As FHANDLE = FHANDLE.Zero
        Dim himg1 As FHANDLE = FHANDLE.Zero
        Dim himg2 As FHANDLE = FHANDLE.Zero
        Dim himg3 As FHANDLE = FHANDLE.Zero
        Dim himg4 As FHANDLE = FHANDLE.Zero
        Dim himg5 As FHANDLE = FHANDLE.Zero

        Try
            ' 画像のロード.
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src_1shot.bmp", himg, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src0.bmp", himg1, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src1.bmp", himg2, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src2.bmp", himg3, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src3.bmp", himg4, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            api.fnFIE_load_img_file(TestImageDir & "/testdata/calib_src4.bmp", himg5, f_color_img_type.F_COLOR_IMG_TYPE_UC8)

            ' 実行.
            status = api.fnFIE_calib_add_data2(hcalib, himg)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
            status = api.fnFIE_calib_add_data2(hcalib, himg1)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
            status = api.fnFIE_calib_add_data2(hcalib, himg2)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
            status = api.fnFIE_calib_add_data2(hcalib, himg3)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
            status = api.fnFIE_calib_add_data2(hcalib, himg4)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
            status = api.fnFIE_calib_add_data2(hcalib, himg4)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err))
        Finally
            himg.Dispose()
            himg1.Dispose()
            himg2.Dispose()
            himg3.Dispose()
            himg4.Dispose()
            himg5.Dispose()
        End Try
    End Sub
End Class

See Also