点情報から FPM特徴量オブジェクトを生成
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static FHANDLE fnFIE_fpm_feature_import_alloc( F_DEDGE_PTR img_edges, int num_img_edges, int img_width, int img_height, f_fpm_mode matching_mode, ref int perr_code ) |
Visual Basic |
---|
Public Shared Function fnFIE_fpm_feature_import_alloc ( img_edges As F_DEDGE_PTR, num_img_edges As Integer, img_width As Integer, img_height As Integer, matching_mode As f_fpm_mode, ByRef perr_code As Integer ) As FHANDLE |
Parameters
- img_edges
- Type: fvalgcli..::..F_DEDGE_PTR
F_DEDGE 型 エッジデータ
- num_img_edges
- Type: System..::..Int32
img_edges に格納されているエッジデータ数(1<= num_img_edges)
- img_width
- Type: System..::..Int32
img_edges を取得した画像幅(1<= img_width)
- img_height
- Type: System..::..Int32
img_edges を取得した画像高さ(1<= img_height)
- matching_mode
- Type: fvalgcli..::..f_fpm_mode
FPMを行う際のマッチングモード- F_FPM_NORMAL_MODE 通常モード
- F_FPM_SPEED_MODE 高速モード
- perr_code
- Type: System..::..Int32%
正常終了、またはエラーコードが入力されます。エラーコードを受け取る必要の無い場合は、IntPtr.Zero を指定することも可能です。- F_ERR_NONE 正常終了
- F_ERR_INVALID_PARAM 引数異常
- F_ERR_NOMEMORY メモリ不足
- F_ERR_NO_LICENCE ライセンスエラー
Return Value
Type: FHANDLE正常終了した場合は、生成したFPM特徴量オブジェクトのハンドルを返します。 異常終了により生成できなかったときは IntPtr.Zero を返します。
Remarks
Examples
C# | Copy |
---|---|
// $Revision: 1.1 $ using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { [FvPluginExecute] public void fnFIE_fpm_feature_import_alloc() { int status = (int)f_err.F_ERR_NONE; FHANDLE hsrc = FHANDLE.Zero; // 処理画像. FHANDLE hfpm = FHANDLE.Zero; F_DEDGE_PTR edges = F_DEDGE_PTR.Zero; try { // 入力画像ファイルのロード. api.fnFIE_load_img_file(TestImageDir + "/testdata/gray_04.bmp", ref hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8); // 入力画像の情報取得. int width = api.fnFIE_img_get_width(hsrc); int height = api.fnFIE_img_get_height(hsrc); int channels = api.fnFIE_img_get_channels(hsrc); int type = api.fnFIE_img_get_type(hsrc); // エッジ検出. F_EDGE_SOBEL_PARAMS edge_param = F_EDGE_SOBEL_PARAMS.init(120, 3); int edges_num = 0; status = api.fnFIE_edge_sobel_subpix( hsrc, FHANDLE.Zero, ref edge_param, f_edge_feature_mode.F_EDGE_FEAT_DIRECT, f_border_mode.F_BORDER_NONE, DPNT_T.init(0, 0), ref edges, ref edges_num ); // 処理の実行. hfpm = api.fnFIE_fpm_feature_import_alloc(edges, edges_num, width, height, f_fpm_mode.F_FPM_NORMAL_MODE, ref status); // エラー判定. Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "エラーが発生しました。({0})", (f_err)status); // 確認. { int fpm_edges_num = 0; api.fnFIE_fpm_feature_get_num(hfpm, ref fpm_edges_num); Console.WriteLine("fnFIE_fpm_feature_import_alloc: fpm_edges_num={0}", fpm_edges_num); Console.WriteLine("fnFIE_fpm_feature_import_alloc: edges_num={0}", edges_num); Assert.IsTrue(fpm_edges_num > 0, "エラーが発生しました。(fpm_edges_num={0})", fpm_edges_num); Assert.IsTrue(edges_num > 0, "エラーが発生しました。(edges_num={0})", edges_num); } } finally { // オブジェクトの開放. hsrc.Dispose(); hfpm.Dispose(); edges.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE <FvPluginExecute> _ Public Sub fnFIE_fpm_feature_import_alloc() Dim status As Integer = CInt(f_err.F_ERR_NONE) Dim hsrc As FHANDLE = FHANDLE.Zero ' 処理画像. Dim hfpm As FHANDLE = FHANDLE.Zero Dim edges As F_DEDGE_PTR = F_DEDGE_PTR.Zero Try ' 入力画像ファイルのロード. api.fnFIE_load_img_file(TestImageDir & "/testdata/gray_04.bmp", hsrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8) ' 入力画像の情報取得. Dim width As Integer = api.fnFIE_img_get_width(hsrc) Dim height As Integer = api.fnFIE_img_get_height(hsrc) Dim channels As Integer = api.fnFIE_img_get_channels(hsrc) Dim type As Integer = api.fnFIE_img_get_type(hsrc) ' エッジ検出. Dim edge_param As F_EDGE_SOBEL_PARAMS = F_EDGE_SOBEL_PARAMS.init(120, 3) Dim edges_num As Integer = 0 status = api.fnFIE_edge_sobel_subpix(hsrc, FHANDLE.Zero, edge_param, f_edge_feature_mode.F_EDGE_FEAT_DIRECT, f_border_mode.F_BORDER_NONE, DPNT_T.init(0, 0), _ edges, edges_num) ' 処理の実行. hfpm = api.fnFIE_fpm_feature_import_alloc(edges, edges_num, width, height, f_fpm_mode.F_FPM_NORMAL_MODE, status) ' エラー判定. Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "エラーが発生しました。({0})", CType(status, f_err)) ' 確認. If True Then Dim fpm_edges_num As Integer = 0 api.fnFIE_fpm_feature_get_num(hfpm, fpm_edges_num) Console.WriteLine("fnFIE_fpm_feature_import_alloc: fpm_edges_num={0}", fpm_edges_num) Console.WriteLine("fnFIE_fpm_feature_import_alloc: edges_num={0}", edges_num) Assert.IsTrue(fpm_edges_num > 0, "エラーが発生しました。(fpm_edges_num={0})", fpm_edges_num) Assert.IsTrue(edges_num > 0, "エラーが発生しました。(edges_num={0})", edges_num) End If Finally ' オブジェクトの開放. hsrc.Dispose() hfpm.Dispose() edges.Dispose() End Try End Sub End Class |