画像処理の実行
Namespace: FVIL.MeasureAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
public override void Execute() |
Visual Basic |
---|
Public Overrides Sub Execute |
Remarks
処理対象画像の処理ウィンドウで指定された範囲に対して処理を実行します。
処理に失敗した場合は例外を発行します。
例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
51 | FVIL.ErrorCode.LICENSE_ERROR | ライセンスキーが見つからない為、実行できません。 または、FVIL._SetUp.InitVisionLibrary が実行されていません。 |
1 | FVIL.ErrorCode.FAILED_TO_ALLOCATE | メモリ確保に失敗しました。 |
12 | FVIL.ErrorCode.INVALID_OBJECT | 指定された画像オブジェクトが無効です。 |
81 | FVIL.ErrorCode.HAVE_NOT_IMAGE | 画像オブジェクトが設定されていません。 |
18 | FVIL.ErrorCode.INVALID_CHANNEL | 処理対象チャネル指標が不正です。 |
91 | FVIL.ErrorCode.INVALID_SRC_IMAGETYPE | 入力画像の画像種別が不正です。 |
97 | FVIL.ErrorCode.INVALID_SRC_CHANNEL | 入力画像のチャネル数が不正です。 |
Examples
処理時間:
0.396 msec : FVIL.Measure.CFviProjection.Execute.X 0.757 msec : FVIL.Measure.CFviProjection.Execute.Y
ソースコード:
C# | Copy |
---|---|
using System; using System.Collections.Generic; using System.Text; using fvalgcli; namespace User.SampleCode { public partial class Measure { /// <summary> /// 濃度投影 /// </summary> [FvPluginExecute] public void Projection1() { FVIL.Data.CFviImage src = new FVIL.Data.CFviImage(Defs.TestImageDir + "/key_UC8_M.png"); FVIL.CFviTimeCounter watch = new FVIL.CFviTimeCounter(); double msec = 0; Dictionary<string, double> times = new Dictionary<string, double>(); #region 画像統計量. { FVIL.Measure.CFviProjectionResult result_x = new FVIL.Measure.CFviProjectionResult(); FVIL.Measure.CFviProjectionResult result_y = new FVIL.Measure.CFviProjectionResult(); FVIL.Measure.CFviProjection parser = new FVIL.Measure.CFviProjection(src, 0, FVIL.Measure.Direction.X, result_x); // X 方向. watch.Start(); parser.Direction = FVIL.Measure.Direction.X; parser.Result = result_x; parser.Execute(); msec = watch.Stop(); times["FVIL.Measure.CFviProjection.Execute.X"] = msec; // Y 方向. parser.Direction = FVIL.Measure.Direction.Y; parser.Result = result_y; parser.Execute(); msec = watch.Stop(); times["FVIL.Measure.CFviProjection.Execute.Y"] = msec; // 出力(X 方向) Console.WriteLine( "{0,-5},{1,5},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9}", "No.", "Count", "Sum", "Mean", "Min", "Max", "Sigma", "Var"); for (int i = 0; i < result_x.Count; i++) { FVIL.Statistics stat = result_x[i]; Console.WriteLine( "[{0:000}] {1,5:0},{2,9:0},{3,9:0.000},{4,9:0.000},{5,9:0.000},{6,9:0.000},{7,9:0.000}", i, stat.Count, stat.Sum, stat.Mean, stat.Min, stat.Max, stat.Sigma, stat.Variance); } // 出力(Y 方向) Console.WriteLine( "{0,-5},{1,5},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9}", "No.", "Count", "Sum", "Mean", "Min", "Max", "Sigma", "Var"); for (int i = 0; i < result_y.Count; i++) { FVIL.Statistics stat = result_y[i]; Console.WriteLine( "[{0:000}] {1,5:0},{2,9:0},{3,9:0.000},{4,9:0.000},{5,9:0.000},{6,9:0.000},{7,9:0.000}", i, stat.Count, stat.Sum, stat.Mean, stat.Min, stat.Max, stat.Sigma, stat.Variance); } } #endregion Console.WriteLine(""); foreach (KeyValuePair<string, double> item in times) { Console.WriteLine("{0,9:0.000} msec : {1}", item.Value, item.Key); } } } } |
Visual Basic | Copy |
---|---|
Imports System Imports System.Collections.Generic Imports System.Text Imports fvalgcli Namespace SampleCode Partial Public Class Measure ''' <summary> ''' 濃度投影 ''' </summary> <FvPluginExecute()> _ Public Sub Projection1() Dim src As New FVIL.Data.CFviImage(Defs.TestImageDir + "/key_UC8_M.png") Dim watch As New FVIL.CFviTimeCounter() Dim msec As Double = 0 Dim times As New Dictionary(Of String, Double)() '#Region "画像統計量." If True Then Dim result_x As New FVIL.Measure.CFviProjectionResult() Dim result_y As New FVIL.Measure.CFviProjectionResult() Dim parser As New FVIL.Measure.CFviProjection(src, 0, FVIL.Measure.Direction.X, result_x) ' X 方向. watch.Start() parser.Direction = FVIL.Measure.Direction.X parser.Result = result_x parser.Execute() msec = watch.[Stop]() times("FVIL.Measure.CFviProjection.Execute.X") = msec ' Y 方向. parser.Direction = FVIL.Measure.Direction.Y parser.Result = result_y parser.Execute() msec = watch.[Stop]() times("FVIL.Measure.CFviProjection.Execute.Y") = msec ' 出力(X 方向) Console.WriteLine( _ "{0,-5},{1,5},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9}", _ "No.", "Count", "Sum", "Mean", "Min", "Max", "Sigma", "Var") For i As Integer = 0 To result_x.Count - 1 Dim stat As FVIL.Statistics = result_x(i) Console.WriteLine( _ "[{0:000}] {1,5:0},{2,9:0},{3,9:0.000},{4,9:0.000},{5,9:0.000},{6,9:0.000},{7,9:0.000}", _ i, stat.Count, stat.Sum, stat.Mean, stat.Min, stat.Max, stat.Sigma, stat.Variance) Next ' 出力(Y 方向) Console.WriteLine( _ "{0,-5},{1,5},{2,9},{3,9},{4,9},{5,9},{6,9},{7,9}", _ "No.", "Count", "Sum", "Mean", "Min", "Max", "Sigma", "Var") For i As Integer = 0 To result_y.Count - 1 Dim stat As FVIL.Statistics = result_y(i) Console.WriteLine( _ "[{0:000}] {1,5:0},{2,9:0},{3,9:0.000},{4,9:0.000},{5,9:0.000},{6,9:0.000},{7,9:0.000}", _ i, stat.Count, stat.Sum, stat.Mean, stat.Min, stat.Max, stat.Sigma, stat.Variance) Next End If '#End Region Console.WriteLine("") For Each item As KeyValuePair(Of String, Double) In times Console.WriteLine("{0,9:0.000} msec : {1}", item.Value, item.Key) Next End Sub End Class End Namespace |
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |