リージョンの生成 (2値画像)

Namespace: FVIL.Data
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public virtual void Create(
	CFviImage image
)
Visual Basic
Public Overridable Sub Create ( 
	image As CFviImage
)

Parameters

image
Type: FVIL.Data..::..CFviImage
2値画像

Remarks

2値画像からリージョンを生成します。

指定する画像は、画像種別が FVIL.ImageType.BIN, チャネル数が 1 でなければなりません。 2値画像の濃度値1の部分がリージョンになります。 濃度値が 1 の部分が1つもない画像で生成した場合は、ラン数が 0 個のリージョンが生成されます。 また、処理ウィンドウ(Window)で指定された範囲が抽出の対象になります。

生成に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリ不足の為、生成に失敗しました。
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。

Examples

以下のような2値画像からリージョンを抽出して生成する処理を示します。

ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using fvalgcli;

namespace User.SampleCode.Data
{
    public partial class Region
    {
        /// <summary>
        /// [リージョン構造クラス]
        /// 初期値指定コンストラクタ (2値画像)
        /// </summary>
        [FvPluginExecute]
        public void Image_ctor()
        {
            // 0) 画像オブジェクトの準備.
            // ※指定画像の処理ウィンドウで指定された範囲が、リージョンとして抽出の対象となる。
            FVIL.Data.CFviImage src = new FVIL.Data.CFviImage();
            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "\\key_BIN_M.png", src, FVIL.PixelMode.Unpacking);            
            src.Window = new System.Drawing.Rectangle(130, 40, 60, 130);

            // 1) インスタンスの準備とリージョンの生成.
            FVIL.Data.CFviRegion region = new FVIL.Data.CFviRegion(src);

            // E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir + "\\RegionImage_ctor.png");
        }
        /// <summary>
        /// [リージョン構造クラス]
        /// リージョンの生成 (2値画像)
        /// </summary>
        [FvPluginExecute]
        public void Image_Create()
        {
            // 0) 画像オブジェクトの準備.
            // ※指定画像の処理ウィンドウで指定された範囲が、リージョンとして抽出の対象となる。
            FVIL.Data.CFviImage src = new FVIL.Data.CFviImage();
            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "\\key_BIN_M.png", src, FVIL.PixelMode.Unpacking);
            src.Window = new System.Drawing.Rectangle(130, 40, 60, 130);

            // 1) インスタンスの準備.
            FVIL.Data.CFviRegion region = new FVIL.Data.CFviRegion();

            // 2) リージョンの生成.
            region.Create( src );

            // E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir + "\\RegionImage_Create.png");
        }
    }
}


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

Namespace SampleCode.Data
    Public Partial Class Region
        ''' <summary>
        ''' [リージョン構造クラス]
        ''' 初期値指定コンストラクタ (2値画像)
        ''' </summary>
        <FvPluginExecute> _
        Public Sub Image_ctor()
            ' 0) 画像オブジェクトの準備.
            ' ※指定画像の処理ウィンドウで指定された範囲が、リージョンとして抽出の対象となる。
            Dim src As New FVIL.Data.CFviImage()
            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "\key_BIN_M.png", src, FVIL.PixelMode.Unpacking)
            src.Window = New System.Drawing.Rectangle(130, 40, 60, 130)

            ' 1) インスタンスの準備とリージョンの生成.
            Dim region As New FVIL.Data.CFviRegion(src)

            ' E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir & "\RegionImage_ctor.png")
        End Sub
        ''' <summary>
        ''' [リージョン構造クラス]
        ''' リージョンの生成 (2値画像)
        ''' </summary>
        <FvPluginExecute> _
        Public Sub Image_Create()
            ' 0) 画像オブジェクトの準備.
            ' ※指定画像の処理ウィンドウで指定された範囲が、リージョンとして抽出の対象となる。
            Dim src As New FVIL.Data.CFviImage()
            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "\key_BIN_M.png", src, FVIL.PixelMode.Unpacking)
            src.Window = New System.Drawing.Rectangle(130, 40, 60, 130)

            ' 1) インスタンスの準備.
            Dim region As New FVIL.Data.CFviRegion()

            ' 2) リージョンの生成.
            region.Create(src)

            ' E) 生成されたリージョンの保存.
            region.Save(Defs.ResultDir & "\RegionImage_Create.png")
        End Sub
    End Class
End Namespace

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also