ブローブの特徴量に基づくソーティング

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

Syntax

C#
public static int fnFIE_measure_sort_list(
	FHANDLE hresult,
	f_measure_feature_type key1st,
	int direc1st,
	f_measure_feature_type key2nd,
	int direc2nd,
	f_measure_feature_type key3rd,
	int direc3rd,
	UINT_PTR numbers,
	uint num
)
Visual Basic
Public Shared Function fnFIE_measure_sort_list ( 
	hresult As FHANDLE,
	key1st As f_measure_feature_type,
	direc1st As Integer,
	key2nd As f_measure_feature_type,
	direc2nd As Integer,
	key3rd As f_measure_feature_type,
	direc3rd As Integer,
	numbers As UINT_PTR,
	num As UInteger
) As Integer

Parameters

hresult
Type: fvalgcli..::..FHANDLE
ブローブ解析結果
key1st
Type: fvalgcli..::..f_measure_feature_type
最優先ソートキー(ソート対象特徴量)
direc1st
Type: System..::..Int32
key1stのソート順 (0:昇順、1:降順)
key2nd
Type: fvalgcli..::..f_measure_feature_type
2番目に優先されるソートキー(ソート対象特徴量)
direc2nd
Type: System..::..Int32
key2ndのソート順 (0:昇順、1:降順)
key3rd
Type: fvalgcli..::..f_measure_feature_type
3番目に優先されるソートキー(ソート対象特徴量)
direc3rd
Type: System..::..Int32
key3rdのソート順 (0:昇順、1:降順)
numbers
Type: fvalgcli..::..UINT_PTR
ソート対象ブローブ番号配列
num
Type: System..::..UInt32
numbersの要素数

Return Value

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

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_INVALID_PARAM不正なパラメータが指定された。
F_ERR_INVALID_OBJECThresult に渡された結果ハンドルが不正
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
    {
        public void fnFIE_measure_sort_list(FHANDLE result)
        {
            UINT_PTR blob_numbers = UINT_PTR.Zero;
            F_MEASURE_FILTER_RANGE_PTR filters = F_MEASURE_FILTER_RANGE_PTR.Zero;

            try
            {
                // フィルタレンジの生成.
                uint filter_num = 1;
                filters = F_MEASURE_FILTER_RANGE_PTR.alloc(1);
                filters[0] = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 1000);
                uint num = 0;

                // 実行.
                int status = api.fnFIE_measure_get_list(result, filters, filter_num, ref blob_numbers, ref num);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "get_listでエラーが発生しました。({0})", (f_err)status);

                // 出力.
                Console.WriteLine("blob_list_num={0}", num);

                // 面積の小さい順でブローブ番号リストをソートする.
                int status1 = api.fnFIE_measure_sort_list(result, f_measure_feature_type.F_FEATURE_AREA, 0, f_measure_feature_type.F_FEATURE_NONE, 0, f_measure_feature_type.F_FEATURE_NONE, 0, blob_numbers, num);
                Assert.IsTrue(status1 == (int)f_err.F_ERR_NONE, "sort_listでエラーが発生しました。({0})", (f_err)status1);

                // 出力.
                Console.WriteLine("blob_sort_list_num={0}", num);
                for (int i = 0; i < num; i++)
                {
                    Console.WriteLine("blob_numbers[{0}]={1}", i, blob_numbers[i]);
                }
            }
            finally
            {
                blob_numbers.Dispose();
                filters.Dispose();
            }

        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

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

Public Partial Class FIE
    Public Sub fnFIE_measure_sort_list(result As FHANDLE)
        Dim blob_numbers As UINT_PTR = UINT_PTR.Zero
        Dim filters As F_MEASURE_FILTER_RANGE_PTR = F_MEASURE_FILTER_RANGE_PTR.Zero

        Try
            ' フィルタレンジの生成.
            Dim filter_num As UInteger = 1
            filters = F_MEASURE_FILTER_RANGE_PTR.alloc(1)
            filters(0) = F_MEASURE_FILTER_RANGE.init(f_measure_feature_type.F_FEATURE_AREA, 0, 1000)
            Dim num As UInteger = 0

            ' 実行.
            Dim status As Integer = api.fnFIE_measure_get_list(result, filters, filter_num, blob_numbers, num)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "get_listでエラーが発生しました。({0})", CType(status, f_err))

            ' 出力.
            Console.WriteLine("blob_list_num={0}", num)

            ' 面積の小さい順でブローブ番号リストをソートする.
            Dim status1 As Integer = api.fnFIE_measure_sort_list(result, f_measure_feature_type.F_FEATURE_AREA, 0, f_measure_feature_type.F_FEATURE_NONE, 0, f_measure_feature_type.F_FEATURE_NONE, _
                0, blob_numbers, num)
            Assert.IsTrue(status1 = CInt(f_err.F_ERR_NONE), "sort_listでエラーが発生しました。({0})", CType(status1, f_err))

            ' 出力.
            Console.WriteLine("blob_sort_list_num={0}", num)
            For i As Integer = 0 To CType(num, Integer) - 1
                Console.WriteLine("blob_numbers[{0}]={1}", i, blob_numbers(i))
            Next
        Finally
            blob_numbers.Dispose()
            filters.Dispose()
        End Try

    End Sub
End Class

See Also