ブローブ番号配列の特徴量に基づくフィルタリング

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

Syntax

C#
public static int fnFIE_measure_refilter_list(
	FHANDLE hresult,
	F_MEASURE_FILTER_RANGE_PTR filters,
	uint filter_num,
	UINT_PTR blob_numbers,
	ref uint num
)
Visual Basic
Public Shared Function fnFIE_measure_refilter_list ( 
	hresult As FHANDLE,
	filters As F_MEASURE_FILTER_RANGE_PTR,
	filter_num As UInteger,
	blob_numbers As UINT_PTR,
	ByRef num As UInteger
) As Integer

Parameters

hresult
Type: fvalgcli..::..FHANDLE
ブローブ解析結果ハンドル
filters
Type: fvalgcli..::..F_MEASURE_FILTER_RANGE_PTR
取得条件フィルタ配列 filter_num == 0 の場合は IntPtr.Zero を指定できます。
filter_num
Type: System..::..UInt32
filters の配列サイズ(単位:要素数, filter_num > 0)
blob_numbers
Type: fvalgcli..::..UINT_PTR
ブローブ番号配列
num
Type: System..::..UInt32%
blob_numbers の配列サイズ(単位:要素数)

Return Value

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

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_NOMEMORYメモリ不足エラー
F_ERR_INVALID_OBJECThresult パラメータに指定されたブローブ解析結果ハンドルが不正
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="result"></param>
        public void fnFIE_measure_refilter_list(FHANDLE result)
        {
            int status = 0;
            F_MEASURE_FILTER_RANGE_PTR filters = IntPtr.Zero;
            UINT_PTR numbers = IntPtr.Zero;

            try
            {
                uint num = 0;
                uint filter_num = 1;
                filters = F_MEASURE_FILTER_RANGE_PTR.alloc((int)filter_num);
                filters[0] = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 1000);

                status = api.fnFIE_measure_get_list(result, filters, filter_num, ref numbers, ref num);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_measure_get_listでエラーが発生しました。({0})", (f_err)status);
                // 出力.
                Console.WriteLine("fnFIE_measure_get_list: num={0}", num);
                for (int i = 0; i < num; i++)
                {
                    Console.WriteLine("numbers[{0}]={1}", i, numbers[i]);
                }

                // 再フィルタリング.
                filter_num = 2;
                filters.Dispose();
                filters = F_MEASURE_FILTER_RANGE_PTR.alloc((int)filter_num);
                filters[0] = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 400);
                filters[1] = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_COLOR, 1, 1);

                status = api.fnFIE_measure_refilter_list(result, filters, filter_num, numbers, ref num);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_measure_refilter_list: エラーが発生しました。({0})", (f_err)status);
                // 出力.
                Console.WriteLine("fnFIE_measure_refilter_list: num={0}", num);
                for (int i = 0; i < num; i++)
                {
                    Console.WriteLine("numbers[{0}]={1}", i, numbers[i]);
                }
            }
            finally
            {
                filters.Dispose();
                numbers.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="result"></param>
    Public Sub fnFIE_measure_refilter_list(result As FHANDLE)
        Dim status As Integer = 0
        Dim filters As F_MEASURE_FILTER_RANGE_PTR = IntPtr.Zero
        Dim numbers As UINT_PTR = IntPtr.Zero

        Try
            Dim num As UInteger = 0
            Dim filter_num As UInteger = 1
            filters = F_MEASURE_FILTER_RANGE_PTR.alloc(CInt(filter_num))
            filters(0) = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 1000)

            status = api.fnFIE_measure_get_list(result, filters, filter_num, numbers, num)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_measure_get_listでエラーが発生しました。({0})", CType(status, f_err))
            ' 出力.
            Console.WriteLine("fnFIE_measure_get_list: num={0}", num)
            For i As Integer = 0 To CType(num, Integer) - 1
                Console.WriteLine("numbers[{0}]={1}", i, numbers(i))
            Next

            ' 再フィルタリング.
            filter_num = 2
            filters.Dispose()
            filters = F_MEASURE_FILTER_RANGE_PTR.alloc(CInt(filter_num))
            filters(0) = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 400)
            filters(1) = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_COLOR, 1, 1)

            status = api.fnFIE_measure_refilter_list(result, filters, filter_num, numbers, num)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_measure_refilter_list: エラーが発生しました。({0})", CType(status, f_err))
            ' 出力.
            Console.WriteLine("fnFIE_measure_refilter_list: num={0}", num)
            For i As Integer = 0 To CType(num, Integer) - 1
                Console.WriteLine("numbers[{0}]={1}", i, numbers(i))
            Next
        Finally
            filters.Dispose()
            numbers.Dispose()
        End Try
    End Sub
End Class

See Also