エッジ減点領域の設定

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

Syntax

C#
public static int fnFIE_fpm_set_pattern_edgeless_mask(
	FHANDLE hfpm,
	FHANDLE hedgeless
)
Visual Basic
Public Shared Function fnFIE_fpm_set_pattern_edgeless_mask ( 
	hfpm As FHANDLE,
	hedgeless As FHANDLE
) As Integer

Parameters

hfpm
Type: fvalgcli..::..FHANDLE
FPM オブジェクト
hedgeless
Type: fvalgcli..::..FHANDLE
エッジ減点領域指定用画像オブジェクト(type:bin, uc8)
画像オブジェクトのサイズは、FPMオブジェクトで管理されるマスターパタンのサイズと合わせてください。 エッジ減点領域を指定する画素には1を、エッジ減点領域を指定しない画素には0を設定してください。 それ以外の値が設定されていた場合には F_ERR_INVALID_IMAGE が戻ります。

Return Value

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

エラーコード:
f_err内容
F_ERR_NONE正常終了
F_ERR_INVALID_OBJECT引数オブジェクトの種別が異常
F_ERR_NOMEMORYメモリ不足
F_ERR_INVALID_IMAGE不正な画像が渡された
F_ERR_INVALID_PARAM引数異常
F_ERR_NO_LICENCEライセンスエラー、または未初期化エラー

Examples

C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;

namespace TC
{
    public partial class FIE
    {
        /// <summary>
        /// エッジ減点領域の設定
        /// </summary>
        /// <param name="hFPM"></param>
        public void fnFIE_fpm_set_pattern_edgeless_mask(FHANDLE hFPM)
        {
            FHANDLE hSrc = FHANDLE.Zero;

            try
            {
                int width = 0;
                int height = 0;
                api.fnFIE_fpm_get_pattern_size(hFPM, ref width, ref height);
                hSrc = api.fnFIE_img_root_alloc((int)f_imgtype.F_IMG_UC8, 1, width, height);
                api.fnFIE_img_clear(hSrc, 0.0);

                var addr_top = api.fnFIE_img_get_adrs(hSrc);
                var stride = api.fnFIE_img_get_step_as_bytes(hSrc);

                // 左上 (1/4)
                for (int y = 0; y < height/4; y++)
                {
                    var addr = new UCHAR_PTR(addr_top.ToInt64() + stride.ToInt64() * y);    // 行の先頭アドレス:
                    for (int x = 0; x < width/4; x++)
                    {
                        addr[x] = 1;
                    }
                }

                int status = api.fnFIE_fpm_set_pattern_edgeless_mask(hFPM, hSrc);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_fpm_set_pattern_essential: エラーが発生しました。({0})", (f_err)status);
            }
            finally
            {
                hSrc.Dispose();
            }
        }
    }
}


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports fvalgcli

Public Partial Class FIE
    ''' <summary>
    ''' エッジ減点領域の設定
    ''' </summary>
    ''' <param name="hFPM"></param>
    Public Sub fnFIE_fpm_set_pattern_edgeless_mask(hFPM As FHANDLE)
        Dim hSrc As FHANDLE = FHANDLE.Zero

        Try
            Dim width As Integer = 0
            Dim height As Integer = 0
            api.fnFIE_fpm_get_pattern_size(hFPM, width, height)
            hSrc = api.fnFIE_img_root_alloc(CInt(f_imgtype.F_IMG_UC8), 1, width, height)
            api.fnFIE_img_clear(hSrc, 0.0)

            Dim addr_top As IntPtr = api.fnFIE_img_get_adrs(hSrc)
            Dim stride As SIZE_T = api.fnFIE_img_get_step_as_bytes(hSrc)

            ' 左上 (1/4)
            For y As Integer = 0 To height \ 4 - 1
                Dim addr As UCHAR_PTR = New UCHAR_PTR(addr_top.ToInt64() + stride.ToInt64() * y)
                ' 行の先頭アドレス:
                For x As Integer = 0 To width \ 4 - 1
                    addr(x) = 1
                Next
            Next

            Dim status As Integer = api.fnFIE_fpm_set_pattern_edgeless_mask(hFPM, hSrc)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_fpm_set_pattern_essential: エラーが発生しました。({0})", CType(status, f_err))
        Finally
            hSrc.Dispose()
        End Try
    End Sub
End Class

See Also