構造要素の生成 (線形)

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

Syntax

C#
public virtual void CreateLineSE(
	int length,
	SE_Shape shape
)
Visual Basic
Public Overridable Sub CreateLineSE ( 
	length As Integer,
	shape As SE_Shape
)

Parameters

length
Type: System..::..Int32
線の長さ (1以上)
shape
Type: FVIL.Morphology..::..SE_Shape
線の種類

Remarks

引数に指定された情報に従って、線形の構造要素を生成します。

引数 shape には、SE_Shape に定義された定数を指定してください。

shapeFSlash の場合

生成される構造要素は右上から左下への斜線になります。
下記のように初期化されます。

項目内容
サイズHorzSize = length
VertSize = length
マスク値 x+y = length-1 となる点(x,y) が構造要素に含まれる点として初期化されます。
アンカー位置Anchor.X = (length - 1) / 2
Anchor.Y = (length - 1) / 2

shapeBSlash の場合

生成される構造要素は左上から右下への斜線になります。
下記のように初期化されます。

項目内容
サイズHorzSize = length
VertSize = length
マスク値 x=y となる点(x,y) が構造要素に含まれる点として初期化されます。
アンカー位置Anchor.X = (length - 1) / 2
Anchor.Y = (length - 1) / 2

shapeVLine の場合

生成される構造要素は縦線になります。
下記のように初期化されます。

項目内容
サイズHorzSize = 1
VertSize = length
マスク値 全てが構造要素に含まれる点として初期化されます。
アンカー位置Anchor.X = 0
Anchor.Y = (length - 1) / 2

shapeHLine の場合

生成される構造要素は横線になります。
下記のように初期化されます。

項目内容
サイズHorzSize = length
VertSize = 1
マスク値 全てが構造要素に含まれる点として初期化されます。
アンカー位置Anchor.X = (length - 1) / 2
Anchor.Y = 0

shapeCross の場合

生成される構造要素は×印になります。
下記のように初期化されます。

項目内容
サイズHorzSize = length
VertSize = length
マスク値 x=y または x+y=length-1 となる点(x,y) が構造要素に含まれる点として初期化されます。
アンカー位置Anchor.X = (length - 1) / 2
Anchor.Y = (length - 1) / 2



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

エラーコード:

ErrorCode メンバ内容
11FVIL.ErrorCode.INVALID_PARAMETER 引数に指定された値が無効です。
1FVIL.ErrorCode.FAILED_TO_ALLOCATE メモリ不足で確保に失敗しました。

Examples

ソースコード:
C# Copy imageCopy
//    $Revision: 1.2 $

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_Line_ctor()
        {
            FVIL.Morphology.CFviStructureElement[] ses = 
                {
                    new FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.Cross),
                    new FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.HLine),
                    new FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.VLine),
                    new FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.BSlash),
                    new FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.FSlash),
                };
        }

        [FvPluginExecute]
        public void SE_Line_CreateLineSE()
        {
            // 線形の構造要素の形状.
            FVIL.Morphology.SE_Shape[] shapes =
                {
                    FVIL.Morphology.SE_Shape.Cross,
                    FVIL.Morphology.SE_Shape.HLine,
                    FVIL.Morphology.SE_Shape.VLine,
                    FVIL.Morphology.SE_Shape.BSlash,
                    FVIL.Morphology.SE_Shape.FSlash,
                };

            // 構造要素配列.
            List<FVIL.Morphology.CFviStructureElement> ses =
                new List<FVIL.Morphology.CFviStructureElement>();

            // 形状の種類だけ線形の構造要素を生成.
            foreach (FVIL.Morphology.SE_Shape shape in shapes)
            {
                FVIL.Morphology.CFviStructureElement se =
                    new FVIL.Morphology.CFviStructureElement();
                se.CreateLineSE(5, shape);
                ses.Add(se);
            }
        }
    }
}


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_Line_ctor()
            Dim ses As FVIL.Morphology.CFviStructureElement() = {New FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.Cross), New FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.HLine), New FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.VLine), New FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.BSlash), New FVIL.Morphology.CFviStructureElement(5, FVIL.Morphology.SE_Shape.FSlash)}
        End Sub

        <FvPluginExecute> _
        Public Sub SE_Line_CreateLineSE()
            ' 線形の構造要素の形状.
            Dim shapes As FVIL.Morphology.SE_Shape() = {FVIL.Morphology.SE_Shape.Cross, FVIL.Morphology.SE_Shape.HLine, FVIL.Morphology.SE_Shape.VLine, FVIL.Morphology.SE_Shape.BSlash, FVIL.Morphology.SE_Shape.FSlash}

            ' 構造要素配列.
            Dim ses As New List(Of FVIL.Morphology.CFviStructureElement)()

            ' 形状の種類だけ線形の構造要素を生成.
            For Each shape As FVIL.Morphology.SE_Shape In shapes
                Dim se As New FVIL.Morphology.CFviStructureElement()
                se.CreateLineSE(5, shape)
                ses.Add(se)
            Next
        End Sub
    End Class
End Namespace

Exceptions

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

See Also