構造要素の生成 (線形)
Namespace: FVIL.MorphologyAssembly: 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 ) |
Remarks
引数に指定された情報に従って、線形の構造要素を生成します。
引数 shape には、SE_Shape に定義された定数を指定してください。
■ shape が FSlash の場合
生成される構造要素は右上から左下への斜線になります。
下記のように初期化されます。
項目 | 内容 |
---|---|
サイズ | HorzSize = length VertSize = length |
マスク値 | x+y = length-1 となる点(x,y) が構造要素に含まれる点として初期化されます。 |
アンカー位置 | Anchor.X = (length - 1) / 2 Anchor.Y = (length - 1) / 2 |
■ shape が BSlash の場合
生成される構造要素は左上から右下への斜線になります。
下記のように初期化されます。
項目 | 内容 |
---|---|
サイズ | HorzSize = length VertSize = length |
マスク値 | x=y となる点(x,y) が構造要素に含まれる点として初期化されます。 |
アンカー位置 | Anchor.X = (length - 1) / 2 Anchor.Y = (length - 1) / 2 |
■ shape が VLine の場合
生成される構造要素は縦線になります。
下記のように初期化されます。
項目 | 内容 |
---|---|
サイズ | HorzSize = 1 VertSize = length |
マスク値 | 全てが構造要素に含まれる点として初期化されます。 |
アンカー位置 | Anchor.X = 0 Anchor.Y = (length - 1) / 2 |
■ shape が HLine の場合
生成される構造要素は横線になります。
下記のように初期化されます。
項目 | 内容 |
---|---|
サイズ | HorzSize = length VertSize = 1 |
マスク値 | 全てが構造要素に含まれる点として初期化されます。 |
アンカー位置 | Anchor.X = (length - 1) / 2 Anchor.Y = 0 |
■ shape が Cross の場合
生成される構造要素は×印になります。
下記のように初期化されます。
項目 | 内容 |
---|---|
サイズ | HorzSize = length VertSize = length |
マスク値 | x=y または x+y=length-1 となる点(x,y) が構造要素に含まれる点として初期化されます。 |
アンカー位置 | Anchor.X = (length - 1) / 2 Anchor.Y = (length - 1) / 2 |
生成に失敗した場合は例外を発行します。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
11 | FVIL.ErrorCode.INVALID_PARAMETER | 引数に指定された値が無効です。 |
1 | FVIL.ErrorCode.FAILED_TO_ALLOCATE | メモリ不足で確保に失敗しました。 |
Examples
ソースコード:
C# | Copy |
---|---|
// $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 |
---|---|
' $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
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |