PNT_T 構造体配列への変換
Namespace: FVIL.GDIAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public virtual PNT_T_ARRAY ToPNT_T_ARRAY() |
Visual Basic |
---|
Public Overridable Function ToPNT_T_ARRAY As PNT_T_ARRAY |
Return Value
Type: PNT_T_ARRAYこのインスタンスが保有する配列の全要素を PNT_T 構造体に変換して返します。
Examples
ソースコード:
C# | Copy |
---|---|
using System; using System.Collections.Generic; using System.Text; using System.Drawing; using fvalgcli; // FvPluginXXXX attribute requires fvalgcli namespace User.SampleCode.GDI { public partial class GdiPoints { // ============================================================ /// <summary> /// PNT_T 構造体配列への変換 /// </summary> /// <remarks> /// ToPNT_T_ARRAY() /// </remarks> [FvPluginExecute] public void ToPNT_T_ARRAY() { // 0) エッジ点の取得. FVIL.Data.CFviImage srcimage = new FVIL.Data.CFviImage(); FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/book3_UC8.png", srcimage, FVIL.PixelMode.Unpacking); FVIL.Edge.CFviEdgeResultI32 edgeresult = GetEdge2D_EdgeResultI32(srcimage); // 1) インスタンスの準備と生成. FVIL.GDI.CFviGdiPoints src = new FVIL.GDI.CFviGdiPoints(edgeresult.ToCFviEdgeData()); // 2) 変換. FVIL.PNT_T_ARRAY array = src.ToPNT_T_ARRAY(); // E) 確認. Assert.IsTrue(array.Count == src.Count, " array.Count={0}, src.Count = {1}", array.Count, src.Count); for (int index = 0; index < src.Count; index++) { Assert.IsTrue(src[index].X == array[index].x && src[index].Y == array[index].y, "array[index] = ({0}, {1})", array[index].x, array[index].y); } } } } |
Visual Basic | Copy |
---|---|
Imports System.Collections.Generic Imports System.Text Imports System.Drawing Imports fvalgcli ' FvPluginXXXX attribute requires fvalgcli Namespace SampleCode.GDI Public Partial Class GdiPoints ' ============================================================ ''' <summary> ''' PNT_T 構造体配列への変換 ''' </summary> ''' <remarks> ''' ToPNT_T_ARRAY() ''' </remarks> <FvPluginExecute> _ Public Sub ToPNT_T_ARRAY() ' 0) エッジ点の取得. Dim srcimage As New FVIL.Data.CFviImage() FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/book3_UC8.png", srcimage, FVIL.PixelMode.Unpacking) Dim edgeresult As FVIL.Edge.CFviEdgeResultI32 = GetEdge2D_EdgeResultI32(srcimage) ' 1) インスタンスの準備と生成. Dim src As New FVIL.GDI.CFviGdiPoints(edgeresult.ToCFviEdgeData()) ' 2) 変換. Dim array As FVIL.PNT_T_ARRAY = src.ToPNT_T_ARRAY() ' E) 確認. Assert.IsTrue(array.Count = src.Count, " array.Count={0}, src.Count = {1}", array.Count, src.Count) For index As Integer = 0 To src.Count - 1 Assert.IsTrue(src(index).X = array(index).x AndAlso src(index).Y = array(index).y, "array[index] = ({0}, {1})", array(index).x, array(index).y) Next End Sub End Class End Namespace |
C# | Copy |
---|---|
using System; using System.Collections.Generic; using System.Text; using System.Drawing; using fvalgcli; // FvPluginXXXX attribute requires fvalgcli namespace User.SampleCode.GDI { public partial class GdiPoints { // ============================================================ /// <summary> /// エッジ点の取得. /// </summary> /// <remarks> /// CFviEdge2D. /// CFviEdge2DSobelParam. /// CFviEdgeResultI32. /// </remarks> private FVIL.Edge.CFviEdgeResultI32 GetEdge2D_EdgeResultI32(FVIL.Data.CFviImage src) { // 1) インスタンスの準備. FVIL.Edge.CFviEdge2D parser = new FVIL.Edge.CFviEdge2D(); FVIL.Edge.CFviEdgeResultI32 result = new FVIL.Edge.CFviEdgeResultI32(); FVIL.Edge.CFviEdge2DSobelParam param = new FVIL.Edge.CFviEdge2DSobelParam(); FVIL.Data.CFviImage dst = new FVIL.Data.CFviImage(); // 2) 処理対象画像の有効性検査. int valid = FVIL.Edge.CFviEdge2D.CheckValidity(src); if (valid != FVIL.ErrorCode._SUCCESS) throw new FVIL.CFviException(valid, "FVIL.Edge.CFviEdge2D.CheckValidity"); // 3) 画像処理準備 (共通) parser.SrcImages[0] = src; parser.DstImages[0] = dst; if (!parser.IsValid()) // 有効性検査. parser.Validate(); // 有効化. parser.Result = result; // 4-1) パラメータ設定 (継承) parser.BorderMode = FVIL.BorderMode.None; parser.MagMode = FVIL.Edge.MagMode.XY; parser.SaveMode = FVIL.Edge.SaveMode.Mag | FVIL.Edge.SaveMode.Direct; // 4-2) パラメータ設定 (固有) param.EdgeThreshold = 120; param.NmsLength = 1; parser.Param = param; // 5) 画像処理実行. parser.Execute(); return result; } } } |
Visual Basic | Copy |
---|---|
Imports System.Collections.Generic Imports System.Text Imports System.Drawing Imports fvalgcli ' FvPluginXXXX attribute requires fvalgcli Namespace SampleCode.GDI Public Partial Class GdiPoints ' ============================================================ ''' <summary> ''' エッジ点の取得. ''' </summary> ''' <remarks> ''' CFviEdge2D. ''' CFviEdge2DSobelParam. ''' CFviEdgeResultI32. ''' </remarks> Private Function GetEdge2D_EdgeResultI32(src As FVIL.Data.CFviImage) As FVIL.Edge.CFviEdgeResultI32 ' 1) インスタンスの準備. Dim parser As New FVIL.Edge.CFviEdge2D() Dim result As New FVIL.Edge.CFviEdgeResultI32() Dim param As New FVIL.Edge.CFviEdge2DSobelParam() Dim dst As New FVIL.Data.CFviImage() ' 2) 処理対象画像の有効性検査. Dim valid As Integer = FVIL.Edge.CFviEdge2D.CheckValidity(src) If valid <> FVIL.ErrorCode._SUCCESS Then Throw New FVIL.CFviException(valid, "FVIL.Edge.CFviEdge2D.CheckValidity") End If ' 3) 画像処理準備 (共通) parser.SrcImages(0) = src parser.DstImages(0) = dst If Not parser.IsValid() Then ' 有効性検査. parser.Validate() End If ' 有効化. parser.Result = result ' 4-1) パラメータ設定 (継承) parser.BorderMode = FVIL.BorderMode.None parser.MagMode = FVIL.Edge.MagMode.XY parser.SaveMode = FVIL.Edge.SaveMode.Mag Or FVIL.Edge.SaveMode.Direct ' 4-2) パラメータ設定 (固有) param.EdgeThreshold = 120 param.NmsLength = 1 parser.Param = param ' 5) 画像処理実行. parser.Execute() Return result End Function End Class End Namespace |