マッチングで使用した圧縮特徴量を取得(勾配方向付きエッジ型)
Namespace: fvalgcliAssembly: fvalgcli (in fvalgcli.dll) Version: 3.1.0.0 (3.1.0.11)
Syntax
C# |
---|
public static int fnFIE_fpm_get_compressed_feature_edges( FHANDLE hfpm, FHANDLE htarget, bool is_pattern, F_DEDGE_PTR edges, ref int edges_num ) |
Visual Basic |
---|
Public Shared Function fnFIE_fpm_get_compressed_feature_edges ( hfpm As FHANDLE, htarget As FHANDLE, is_pattern As Boolean, edges As F_DEDGE_PTR, ByRef edges_num As Integer ) As Integer |
Parameters
- hfpm
- Type: fvalgcli..::..FHANDLE
FPM オブジェクト
- htarget
- Type: fvalgcli..::..FHANDLE
圧縮特徴量取得に使用する特徴量情報が格納されたオブジェクト。
特徴量オブジェクトが有効です。 IntPtr.Zero が指定された場合には FPM オブジェクトに格納された(最後にマッチングに使用した)特徴量情報を使用します。
- is_pattern
- Type: System..::..Boolean
取得する圧縮特徴量がマスターパタンのものであるかどうか。
- edges
- Type: fvalgcli..::..F_DEDGE_PTR
勾配付き圧縮エッジ情報。予め必要な領域を確保する必要があります。
- edges_num
- Type: System..::..Int32%
取得した圧縮特徴量数
Return Value
Type: Int32以下のエラーコードを返します。
エラーコード:
f_err | 内容 |
---|---|
F_ERR_NONE | 正常終了 |
F_ERR_NOMEMORY | メモリ不足 |
F_ERR_INVALID_OBJECT | 引数オブジェクトの種別が異常 |
F_ERR_INVALID_PARAM | 引数異常 |
F_ERR_FPM_NOFEATURE | 特徴量がありません |
F_ERR_NO_LICENCE | ライセンスエラー、または未初期化エラー |
Examples
C# | Copy |
---|---|
using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace TC { public partial class FIE { /// <summary> /// マッチングで使用した圧縮特徴量を取得(勾配方向付きエッジ型) /// </summary> /// <param name="hFPM"></param> /// <param name="hFeature"></param> public void fnFIE_fpm_get_compressed_feature_edges(FHANDLE hFPM, FHANDLE hFeature) { F_DEDGE_PTR edges = IntPtr.Zero; // 1: マスターパタン特徴量から取得する場合: try { int required_num = 0; api.fnFIE_fpm_get_pattern_feature_num(hFPM, ref required_num); edges = F_DEDGE_PTR.alloc(required_num); int edges_num = 0; int status = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, IntPtr.Zero, true, edges, ref edges_num); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", (f_err)status); Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 1 : required_num = {0}, edges_num = {1}", required_num, edges_num); } finally { edges.Dispose(); } // 2: FPMオブジェクトに格納された特徴量から取得する場合: try { int required_num = 0; api.fnFIE_fpm_get_matching_feature_num(hFPM, ref required_num); edges = F_DEDGE_PTR.alloc(required_num); int edges_num = 0; int status = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, IntPtr.Zero, false, edges, ref edges_num); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", (f_err)status); Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 2 : required_num = {0}, edges_num = {1}", required_num, edges_num); } finally { edges.Dispose(); } // 3: 特徴量オブジェクト htarget に格納された特徴量から取得する場合: try { int required_num = 0; api.fnFIE_fpm_feature_get_num(hFeature, ref required_num); edges = F_DEDGE_PTR.alloc(required_num); int edges_num = 0; int status = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, hFeature, false, edges, ref edges_num); Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", (f_err)status); Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 3 : required_num = {0}, edges_num = {1}", required_num, edges_num); } finally { edges.Dispose(); } } } } |
Visual Basic | Copy |
---|---|
Imports System.Collections.Generic Imports System.Text Imports fvalgcli Public Partial Class FIE ''' <summary> ''' マッチングで使用した圧縮特徴量を取得(勾配方向付きエッジ型) ''' </summary> ''' <param name="hFPM"></param> ''' <param name="hFeature"></param> Public Sub fnFIE_fpm_get_compressed_feature_edges(hFPM As FHANDLE, hFeature As FHANDLE) Dim edges As F_DEDGE_PTR = IntPtr.Zero ' 1: マスターパタン特徴量から取得する場合: Try Dim required_num As Integer = 0 api.fnFIE_fpm_get_pattern_feature_num(hFPM, required_num) edges = F_DEDGE_PTR.alloc(required_num) Dim edges_num As Integer = 0 Dim status As Integer = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, IntPtr.Zero, True, edges, edges_num) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", CType(status, f_err)) Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 1 : required_num = {0}, edges_num = {1}", required_num, edges_num) Finally edges.Dispose() End Try ' 2: FPMオブジェクトに格納された特徴量から取得する場合: Try Dim required_num As Integer = 0 api.fnFIE_fpm_get_matching_feature_num(hFPM, required_num) edges = F_DEDGE_PTR.alloc(required_num) Dim edges_num As Integer = 0 Dim status As Integer = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, IntPtr.Zero, False, edges, edges_num) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", CType(status, f_err)) Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 2 : required_num = {0}, edges_num = {1}", required_num, edges_num) Finally edges.Dispose() End Try ' 3: 特徴量オブジェクト htarget に格納された特徴量から取得する場合: Try Dim required_num As Integer = 0 api.fnFIE_fpm_feature_get_num(hFeature, required_num) edges = F_DEDGE_PTR.alloc(required_num) Dim edges_num As Integer = 0 Dim status As Integer = api.fnFIE_fpm_get_compressed_feature_edges(hFPM, hFeature, False, edges, edges_num) Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fpm_get_compressed_feature_edges: エラーが発生しました。({0})", CType(status, f_err)) Console.WriteLine("fnFIE_fpm_get_compressed_feature_edges : 3 : required_num = {0}, edges_num = {1}", required_num, edges_num) Finally edges.Dispose() End Try End Sub End Class |