バーコード認識の実行

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

Syntax

C#
public static int fnFIE_barcode_execute(
	FHANDLE fimg,
	FHANDLE fBOObj
)
Visual Basic
Public Shared Function fnFIE_barcode_execute ( 
	fimg As FHANDLE,
	fBOObj As FHANDLE
) As Integer

Parameters

fimg
Type: fvalgcli..::..FHANDLE
入力画像オブジェクトハンドル ( type: uc8 )
fBOObj
Type: fvalgcli..::..FHANDLE
バーコードオブジェクトハンドル

Return Value

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

エラーコード:
f_err内容
F_ERR_NONE 正常終了
F_ERR_INVALID_IMAGE 不正な画像ハンドルが渡されたため、異常終了。画像の種類やチャネル数が違う場合はこのエラーを出します。
F_ERR_INVALID_OBJECT 不正なオブジェクトハンドルが渡されたため、異常終了。
F_ERR_NOMEMORY メモリ不足
F_ERR_MEASURE_RUN_OVERFLOW 2値ブローブ解析中にランテーブルがオーバーフローしたため中断した
F_ERR_MEASURE_BLOB_OVERFLOW 2値ブローブ解析中にブローブテーブルがオーバーフローしたため中断した
F_ERR_NO_LICENCE ライセンスエラー

Remarks

Examples

C# Copy imageCopy
//    $Revision: 1.2 $

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using fvalgcli;

namespace TC
{
    public partial class FIE
    {
        /// <summary>
        /// バーコード認識の実行.
        /// </summary>
        [FvPluginExecute]
        public void fnFIE_barcode_execute()
        {
            string filepath = TestImageDir + "/testdata/barcode1d_code39_2.6_1.bmp";

            int status = (int)f_err.F_ERR_NONE;
            FHANDLE hImage = FHANDLE.Zero;
            FHANDLE hBarcode = FHANDLE.Zero;

            try
            {
                // 画像の読み込み.
                api.fnFIE_load_bmp(filepath, ref hImage, f_color_img_type.F_COLOR_IMG_TYPE_UC8);

                // バーコードオブジェクト生成.
                status = api.fnFIE_barcode_alloc_obj(ref hBarcode, 4);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_barcode_alloc_obj: エラーが発生しました。({0})", (f_err)status);

                // パラメータ設定.
                api.fnFIE_barcode_set_types(hBarcode, f_barcode_type.F_BARCODE_ALL);
                api.fnFIE_barcode_set_binwinsize(hBarcode, 15);
                api.fnFIE_barcode_set_checkdigit(hBarcode, false);
                api.fnFIE_barcode_set_timeout(hBarcode, 5000);
                api.fnFIE_barcode_set_duplicate(hBarcode, false);

                // バーコード認識の実行.
                status = api.fnFIE_barcode_execute(hImage, hBarcode);
                Assert.IsTrue(status == (int)f_err.F_ERR_NONE, "fnFIE_barcode_execute: エラーが発生しました。({0})", (f_err)status);

                // バーコード認識数の取得.
                int iNoOfBarcodes = 0;
                api.fnFIE_barcode_query_num(hBarcode, ref iNoOfBarcodes);
                Console.WriteLine("query_num={0}", iNoOfBarcodes);

                // バーコード認識情報の取得.
                // ※詳しくは、各関数の説明をご参照ください.
                for (int i = 0; i < iNoOfBarcodes; i++)
                {
                    fnFIE_barcode_query_msg(hBarcode, i);
                    fnFIE_barcode_query_raw(hBarcode, i);
                    fnFIE_barcode_query_type(hBarcode, i);
                    fnFIE_barcode_query_start_stop_pos(hBarcode, i);
                }
            }
            finally
            {
                hImage.Dispose();
                hBarcode.Dispose();
            }
        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.2 $

Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Imports fvalgcli

Public Partial Class FIE
    ''' <summary>
    ''' バーコード認識の実行.
    ''' </summary>
    <FvPluginExecute> _
    Public Sub fnFIE_barcode_execute()
        Dim filepath As String = TestImageDir & "/testdata/barcode1d_code39_2.6_1.bmp"

        Dim status As Integer = CInt(f_err.F_ERR_NONE)
        Dim hImage As FHANDLE = FHANDLE.Zero
        Dim hBarcode As FHANDLE = FHANDLE.Zero

        Try
            ' 画像の読み込み.
            api.fnFIE_load_bmp(filepath, hImage, f_color_img_type.F_COLOR_IMG_TYPE_UC8)

            ' バーコードオブジェクト生成.
            status = api.fnFIE_barcode_alloc_obj(hBarcode, 4)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_barcode_alloc_obj: エラーが発生しました。({0})", CType(status, f_err))

            ' パラメータ設定.
            api.fnFIE_barcode_set_types(hBarcode, f_barcode_type.F_BARCODE_ALL)
            api.fnFIE_barcode_set_binwinsize(hBarcode, 15)
            api.fnFIE_barcode_set_checkdigit(hBarcode, False)
            api.fnFIE_barcode_set_timeout(hBarcode, 5000)
            api.fnFIE_barcode_set_duplicate(hBarcode, False)

            ' バーコード認識の実行.
            status = api.fnFIE_barcode_execute(hImage, hBarcode)
            Assert.IsTrue(status = CInt(f_err.F_ERR_NONE), "fnFIE_barcode_execute: エラーが発生しました。({0})", CType(status, f_err))

            ' バーコード認識数の取得.
            Dim iNoOfBarcodes As Integer = 0
            api.fnFIE_barcode_query_num(hBarcode, iNoOfBarcodes)
            Console.WriteLine("query_num={0}", iNoOfBarcodes)

            ' バーコード認識情報の取得.
            ' ※詳しくは、各関数の説明をご参照ください.
            For i As Integer = 0 To iNoOfBarcodes - 1
                fnFIE_barcode_query_msg(hBarcode, i)
                fnFIE_barcode_query_raw(hBarcode, i)
                fnFIE_barcode_query_type(hBarcode, i)
                fnFIE_barcode_query_start_stop_pos(hBarcode, i)
            Next
        Finally
            hImage.Dispose()
            hBarcode.Dispose()
        End Try
    End Sub
End Class

See Also