グレイサーチパターンオブジェクトの生成

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

Syntax

C#
public static FHANDLE fnFIE_gs2_pattern_alloc(
	FHANDLE himage,
	FHANDLE hmask,
	int mark_offsetx,
	int mark_offsety,
	f_comp_filter filter,
	ref int errorcode
)
Visual Basic
Public Shared Function fnFIE_gs2_pattern_alloc ( 
	himage As FHANDLE,
	hmask As FHANDLE,
	mark_offsetx As Integer,
	mark_offsety As Integer,
	filter As f_comp_filter,
	ByRef errorcode As Integer
) As FHANDLE

Parameters

himage
Type: fvalgcli..::..FHANDLE
サーチパターンにする画像オブジェクト ( type: uc8 )
hmask
Type: fvalgcli..::..FHANDLE
マスクにする画像オブジェクト ( type: bin, uc8 )。 IntPtr.Zero を投入するとマスクなしのパターンになります。
mark_offsetx
Type: System..::..Int32
回答X座標オフセット(100倍値)
mark_offsety
Type: System..::..Int32
回答Y座標オフセット(100倍値)
filter
Type: fvalgcli..::..f_comp_filter
内部で画像ピラミッドの生成に使うフィルタの種別
  • F_COMP_MODE_SMOOTH 通常(平均)
  • F_COMP_MODE_MIN 最小値
  • F_COMP_MODE_MAX 最大値
  • F_COMP_MODE_AVERAGE2 再平均
errorcode
Type: System..::..Int32%
エラーコード。エラーコードを受け取る必要の無い場合は、IntPtr.Zero を指定します。
  • F_ERR_NONE 正常終了
  • F_ERR_NOMEMORY メモリ不足
  • F_ERR_INVALID_OBJECT 渡されたオブジェクトの種別が異常
  • F_ERR_GS_NO_CONTRAST パタン画像に情報が足りないため、パタンにならない。 (==マスク部をのぞいた画像の濃度分散が0.0になる)
  • F_ERR_INVALID_IMAGE 対応していない画像が渡された
    • hmask と himage のサイズが違う
    • 非対応画像type
    • チャネル数が1でない
    • 入力画像が大きすぎる
  • F_ERR_INVALID_PARAM パラメータ異常
    • himage オブジェクトが IntPtr.Zero
    • filter に異常な値が渡された

Return Value

Type: FHANDLE
正常終了した場合は、生成したグレイサーチパターンオブジェクトのハンドルを返します。 ライセンスエラー、パラメータエラー、又はメモリ不足により生成できなかったときは IntPtr.Zero を返します。

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
    {
        [FvPluginExecute]
        public void fnFIE_gs2_pattern_alloc()
        {
            FHANDLE hPattern = FHANDLE.Zero;
            FHANDLE hSrc = FHANDLE.Zero;
            FHANDLE hImage = FHANDLE.Zero;
            FHANDLE hmask = FHANDLE.Zero;

            try
            {
                // 入力画像の読み込み.
                int status = api.fnFIE_load_img_file(TestImageDir + "/TC/SampleCode/key_UC8_M.png", ref hSrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8);
                if (status != (int)f_err.F_ERR_NONE)
                    Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_gs2_pattern_alloc: 画像を開くときにエラーが発生しました。({0})", (f_err)status);

                hImage = api.fnFIE_img_child_alloc(hSrc, 50, 0, 80, 80);
                int mark_offsetx = 10;
                int mark_offsety = 10;
                hPattern = api.fnFIE_gs2_pattern_alloc(hImage, hmask, mark_offsetx, mark_offsety, f_comp_filter.F_COMP_MODE_SMOOTH, ref status);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_gs2_pattern_alloc: エラーが発生しました。({0})", (f_err)status);

                // パラメータ設定と取得のテスト.
                fnFIE_gs2_pattern_set_comp_filter(hPattern);
                fnFIE_gs2_pattern_get_comp_filter(hPattern);
                fnFIE_gs2_pattern_rotate(hPattern);
                fnFIE_gs2_pattern_get_image(hPattern);
                fnFIE_gs2_pattern_set_mask(hPattern);
                fnFIE_gs2_pattern_get_mask(hPattern);
                fnFIE_gs2_pattern_set_offset(hPattern);
                fnFIE_gs2_pattern_get_offset(hPattern);
                fnFIE_gs2_pattern_unset_mask(hPattern);

                // 圧縮画像の取得.
                fnFIE_gs2_pattern_get_comp_image(hPattern);
            }
            finally
            {
                hPattern.Dispose();
                hSrc.Dispose();
                hImage.Dispose();
                hmask.Dispose();
            }
        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

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

Public Partial Class FIE
    <FvPluginExecute> _
    Public Sub fnFIE_gs2_pattern_alloc()
        Dim hPattern As FHANDLE = FHANDLE.Zero
        Dim hSrc As FHANDLE = FHANDLE.Zero
        Dim hImage As FHANDLE = FHANDLE.Zero
        Dim hmask As FHANDLE = FHANDLE.Zero

        Try
            ' 入力画像の読み込み.
            Dim status As Integer = api.fnFIE_load_img_file(TestImageDir & "/TC/SampleCode/key_UC8_M.png", hSrc, f_color_img_type.F_COLOR_IMG_TYPE_UC8)
            If status <> CInt(f_err.F_ERR_NONE) Then
                Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_gs2_pattern_alloc: 画像を開くときにエラーが発生しました。({0})", CType(status, f_err))
            End If

            hImage = api.fnFIE_img_child_alloc(hSrc, 50, 0, 80, 80)
            Dim mark_offsetx As Integer = 10
            Dim mark_offsety As Integer = 10
            hPattern = api.fnFIE_gs2_pattern_alloc(hImage, hmask, mark_offsetx, mark_offsety, f_comp_filter.F_COMP_MODE_SMOOTH, status)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_gs2_pattern_alloc: エラーが発生しました。({0})", CType(status, f_err))

            ' パラメータ設定と取得のテスト.
            fnFIE_gs2_pattern_set_comp_filter(hPattern)
            fnFIE_gs2_pattern_get_comp_filter(hPattern)
            fnFIE_gs2_pattern_rotate(hPattern)
            fnFIE_gs2_pattern_get_image(hPattern)
            fnFIE_gs2_pattern_set_mask(hPattern)
            fnFIE_gs2_pattern_get_mask(hPattern)
            fnFIE_gs2_pattern_set_offset(hPattern)
            fnFIE_gs2_pattern_get_offset(hPattern)
            fnFIE_gs2_pattern_unset_mask(hPattern)

            ' 圧縮画像の取得.
            fnFIE_gs2_pattern_get_comp_image(hPattern)
        Finally
            hPattern.Dispose()
            hSrc.Dispose()
            hImage.Dispose()
            hmask.Dispose()
        End Try
    End Sub
End Class

See Also