画像データからの構造要素生成

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

Syntax

C#
public virtual void Create(
	CFviImage image,
	int anchor_x,
	int anchor_y
)
Visual Basic
Public Overridable Sub Create ( 
	image As CFviImage,
	anchor_x As Integer,
	anchor_y As Integer
)

Parameters

image
Type: FVIL.Data..::..CFviImage
複製元の画像
anchor_x
Type: System..::..Int32
X方向アンカー位置(0≦ anchor_x < マスク幅)
anchor_y
Type: System..::..Int32
Y方向アンカー位置(0≦ anchor_y < マスク幅)

Remarks

引数に指定された image の 処理範囲 をコピーして構造要素を生成します。 構造要素のマスクサイズは処理範囲の幅と高さが適用され、マスクメモリ横幅は内部で計算されます。
複製可能な画像の型は以下の通りです。
画像データの画素値 0 を 0 に、0 以外を 1 に変換してマスクを作成します。 RGB24 または RGB32 の時は R,G,B の何れかのプレーンが 0 で無いとき 1 に変換します。

生成に失敗した場合は例外を発行します。

エラーコード:

ErrorCode メンバ内容
51FVIL.ErrorCode.LICENSE_ERROR ライセンスがありません。
1FVIL.ErrorCode.FAILED_TO_ALLOCATE メモリ不足で確保に失敗しました。
11FVIL.ErrorCode.INVALID_PARAMETER 指定された値が無効です。

Examples

以下に、2値画像に処理範囲を設定して構造要素を生成する処理を示します。

ソースコード:
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 Morphology
    {
        [FvPluginExecute]
        public void SE_Image_ctor()
        {
            // 画像ファイルの読み込み.
            FVIL.Data.CFviImage image = new FVIL.Data.CFviImage();
            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/blob_BIN_2.png", image, FVIL.PixelMode.Unpacking);

            // 処理範囲を設定.
            image.Window = new Rectangle(12, 12, 10, 10);

            // 画像から構造要素を生成.(アンカー:4,5)
            FVIL.Morphology.CFviStructureElement se = new FVIL.Morphology.CFviStructureElement(image, 4, 5);
        }

        [FvPluginExecute]
        public void SE_Image_Create()
        {
            // インスタンスの準備.
            FVIL.Morphology.CFviStructureElement se = new FVIL.Morphology.CFviStructureElement();

            // 画像ファイルの読み込み.
            FVIL.Data.CFviImage image = new FVIL.Data.CFviImage();
            FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/blob_BIN_2.png", image, FVIL.PixelMode.Unpacking);

            // 処理範囲を設定.
            image.Window = new Rectangle(12, 12, 10, 10);

            // 画像から構造要素を生成.(アンカー:4,5)
            se.Create(image, 4, 5);
        }
    }
}


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 Morphology
        <FvPluginExecute> _
        Public Sub SE_Image_ctor()
            ' 画像ファイルの読み込み.
            Dim image As New FVIL.Data.CFviImage()
            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/blob_BIN_2.png", image, FVIL.PixelMode.Unpacking)

            ' 処理範囲を設定.
            image.Window = New Rectangle(12, 12, 10, 10)

            ' 画像から構造要素を生成.(アンカー:4,5)
            Dim se As New FVIL.Morphology.CFviStructureElement(image, 4, 5)
        End Sub

        <FvPluginExecute> _
        Public Sub SE_Image_Create()
            ' インスタンスの準備.
            Dim se As New FVIL.Morphology.CFviStructureElement()

            ' 画像ファイルの読み込み.
            Dim image As New FVIL.Data.CFviImage()
            FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/blob_BIN_2.png", image, FVIL.PixelMode.Unpacking)

            ' 処理範囲を設定.
            image.Window = New Rectangle(12, 12, 10, 10)

            ' 画像から構造要素を生成.(アンカー:4,5)
            se.Create(image, 4, 5)
        End Sub
    End Class
End Namespace

Exceptions

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

See Also