1Dバーコード

Classes

ClassDescription
Public classCFviBarcode
1Dバーコード認識クラス
Public classCFviBarcodeData
1Dバーコードデータ構造クラス
Public classCFviBarcodeResult
1Dバーコード検出結果クラス
Public classErrorCode
エラーコード(1Dバーコード関連)

Enumerations

EnumerationDescription
Public enumerationBarcodeType
バーコード種別

Remarks

1Dバーコード関連のクラス、定数等を局所化するネームスペースです。
本ライブラリで対応しているバーコード種別と詳細な仕様については、 FIE 説明書の ビジョンツール - 1Dバーコード認識 のページをご参照ください。

この機能は、本体の CFviBarcode クラスと以下のデータ構造で構成されます。

データ構造:

クラスデータID内容
CFviBarcodeData1600 1つ分のバーコードデータを格納するクラスです。 下記の CFviBarcodeResult から取得できます。
CFviBarcodeResult1601 バーコード認識の結果を格納するクラスです。 上記の CFviBarcodeData を複数保有します。

Examples

サンプルコード:

下記は、CODE128 の コード A を読み込んだ例です。


【処理対象】


出力結果:
Type = CODE128 (CheckDigit=False)
StartPos = 76.45,76.45
StopPos  = 236.46,236.46
Text = +6AL
RawData  = 103,11,22,33,44,21,
ソースコード:
C# Copy imageCopy
//    $Revision: 1.3 $

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using fvalgcli;    // FvPluginXXXX attribute requires fvalgcli

namespace User.SampleCode
{
    public partial class Barcode
    {
        // ============================================================
        /// <summary>
        /// 1Dバーコード認識.
        /// </summary>
        [FvPluginExecute]
        public void CODE128()
        {
            // 1) インスタンスの準備.
            FVIL.Barcode.CFviBarcode parser = new FVIL.Barcode.CFviBarcode();
            FVIL.Data.CFviImage src = new FVIL.Data.CFviImage();

            // 2) 処理対象画像の取り込み.
            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/barcode_CODE128_A.png", src, FVIL.PixelMode.Unpacking);

            // 3) 処理対象画像の有効性検査.
            int valid = FVIL.Barcode.CFviBarcode.CheckValidity(src);
            if (valid != FVIL.ErrorCode._SUCCESS)
                throw new FVIL.CFviException(valid, "FVIL.Barcode.CFviBarcode.CheckValidity");

            // 4) 画像処理準備 (共通)
            parser.SrcImages[0] = src;

            // 5) パラメータ設定 (固有)
            parser.CheckDigit = false;
            parser.Count = 10;
            parser.Duplicate = true;
            parser.Timeout = 6000;
            parser.Types = FVIL.Barcode.BarcodeType.ALL;
            parser.WindowSize = 15;

            // 6) 画像処理実行.
            parser.Execute();

            // E) 処理結果の表示.
            for (int i = 0; i < parser.Result.Count; i++)
            {
                FVIL.Barcode.CFviBarcodeData data = parser.Result.GetData(0);
                Console.WriteLine("Type = {0} (CheckDigit={1})", data.Type, parser.CheckDigit);
                Console.WriteLine("StartPos = {0:F},{0:F}", data.StartPos.X, data.StartPos.Y);
                Console.WriteLine("StopPos  = {0:F},{0:F}", data.StopPos.X, data.StopPos.Y);
                Console.WriteLine("Text = {0}", data.Text);
                // raw data
                Console.Write("RawData  = ");
                int[] rawdata = data.RawData;
                for (int r = 0; r < rawdata.Length; r++)
                    Console.Write("{0},", rawdata[r]);
                Console.WriteLine("");
            }
        }
    }
}


Visual Basic Copy imageCopy
'    $Revision: 1.1 $

Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports fvalgcli
' FvPluginXXXX attribute requires fvalgcli
Namespace SampleCode
    Public Partial Class Barcode
        ' ============================================================
        ''' <summary>
        ''' 1Dバーコード認識.
        ''' </summary>
        <FvPluginExecute> _
        Public Sub CODE128()
            ' 1) インスタンスの準備.
            Dim parser As New FVIL.Barcode.CFviBarcode()
            Dim src As New FVIL.Data.CFviImage()

            ' 2) 処理対象画像の取り込み.
            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/barcode_CODE128_A.png", src, FVIL.PixelMode.Unpacking)

            ' 3) 処理対象画像の有効性検査.
            Dim valid As Integer = FVIL.Barcode.CFviBarcode.CheckValidity(src)
            If valid <> FVIL.ErrorCode._SUCCESS Then
                Throw New FVIL.CFviException(valid, "FVIL.Barcode.CFviBarcode.CheckValidity")
            End If

            ' 4) 画像処理準備 (共通)
            parser.SrcImages(0) = src

            ' 5) パラメータ設定 (固有)
            parser.CheckDigit = False
            parser.Count = 10
            parser.Duplicate = True
            parser.Timeout = 6000
            parser.Types = FVIL.Barcode.BarcodeType.ALL
            parser.WindowSize = 15

            ' 6) 画像処理実行.
            parser.Execute()

            ' E) 処理結果の表示.
            For i As Integer = 0 To parser.Result.Count - 1
                Dim data As FVIL.Barcode.CFviBarcodeData = parser.Result.GetData(0)
                Console.WriteLine("Type = {0} (CheckDigit={1})", data.Type, parser.CheckDigit)
                Console.WriteLine("StartPos = {0:F},{0:F}", data.StartPos.X, data.StartPos.Y)
                Console.WriteLine("StopPos  = {0:F},{0:F}", data.StopPos.X, data.StopPos.Y)
                Console.WriteLine("Text = {0}", data.Text)
                ' raw data
                Console.Write("RawData  = ")
                Dim rawdata As Integer() = data.RawData
                For r As Integer = 0 To rawdata.Length - 1
                    Console.Write("{0},", rawdata(r))
                Next
                Console.WriteLine("")
            Next
        End Sub
    End Class
End Namespace