濃淡ヒストグラムの算出
Namespace: FVIL.MeasureAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public class CFviStatistics : CFviImageParser |
Visual Basic |
---|
<SerializableAttribute> Public Class CFviStatistics Inherits CFviImageParser |
Remarks
1次統計量である平均値(μ)、分散値(σの2乗)、特徴量の歪度(Skewness)、尖度(Kurtosis) を 全体が1となるように正規化されたヒストグラムから算出します。
要求する入出力画像数:
項目 | 数 | 定数 |
---|---|---|
入力画像 | 1 | SrcImageCount フィールド |
出力画像 | 0 | DstImageCount フィールド |
処理対象画像の条件:
処理対象の画像種別は以下の通りです。
入力画像のチャネル数が1以上の場合は、 指定チャネル(Channel)のみを処理します。
初期値と範囲:
出力データ:
プロパティ | 初期値 | 説明 |
---|---|---|
Average | 0 | 平均値(μ) |
Sigma2 | 0 | 分散値(σの2乗) |
StdDev | 0 | 標準偏差 (Sigma2 の平方根) |
Skewness | 0 |
歪度 (重心まわりの3次モーメント) ※σ が 0 の場合は 0 が代入されます。(σによる除算が必要な為) |
Kurtosis | 0 |
尖度 (重心まわりの4次モーメント) ※σ が 0 の場合は 0 が代入されます。(σによる除算が必要な為) |
処理対象画像の有効性検査と有効化:
-
入力画像の有効性検査
このクラスの CheckValidity(CFviImage) 関数で入力画像の有効性を検査できます。 この関数はスタティックメンバですので、このクラスのインスタンスを生成せずに直接呼び出す事ができます。 -
入出力画像の整合性検査
このクラスの IsValid()()()() メソッドで入出力画像の整合性を検査できます。 このメソッドが false を返す場合は、前述の処理対象画像の条件を満たしていない為、 実行できない事を意味します。 -
出力画像の有効化
このクラスでは有効化はサポートしていません。
Validate()()()() または Validate(Int32) メソッドを実行した場合は常に例外を発行します。
関連する FIE 関数:
fnFIE_texture_first_order_statistics
Examples
ソースコード:
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 Statistics() { // 0) 処理対象画像の取り込み. FVIL.Data.CFviImage src = new FVIL.Data.CFviImage(); FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/book3_UC8.png", src, FVIL.PixelMode.Unpacking); // 1) インスタンスの準備(初期値指定コンストラクタ). FVIL.Measure.CFviStatistics parser = new FVIL.Measure.CFviStatistics(src); // 2) 処理対象画像の有効性検査. int valid = FVIL.Measure.CFviStatistics.CheckValidity(src); if (valid != FVIL.ErrorCode._SUCCESS) throw new FVIL.CFviException(valid, "FVIL.Measure.CFviStatistics.CheckValidity"); // 3) パラメータ設定 (固有) parser.Channel = 0; // 4) 画像処理実行. parser.Execute(); // E) 処理結果の出力. Console.WriteLine("Average = {0}", parser.Average); Console.WriteLine("Sigma2 = {0}", parser.Sigma2); Console.WriteLine("Skewness = {0}", parser.Skewness); Console.WriteLine("StdDev = {0}", parser.StdDev); Console.WriteLine("Kurtosis = {0}", parser.Kurtosis); } } } |
Visual Basic | Copy |
---|---|
Imports System.Collections.Generic Imports System.Text Imports fvalgcli Namespace SampleCode Public Partial Class Measure ''' <summary> ''' 濃淡ヒストグラムの算出. ''' </summary> <FvPluginExecute> _ Public Sub Statistics() ' 0) 処理対象画像の取り込み. Dim src As New FVIL.Data.CFviImage() FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/book3_UC8.png", src, FVIL.PixelMode.Unpacking) ' 1) インスタンスの準備(初期値指定コンストラクタ). Dim parser As New FVIL.Measure.CFviStatistics(src) ' 2) 処理対象画像の有効性検査. Dim valid As Integer = FVIL.Measure.CFviStatistics.CheckValidity(src) If valid <> FVIL.ErrorCode._SUCCESS Then Throw New FVIL.CFviException(valid, "FVIL.Measure.CFviStatistics.CheckValidity") End If ' 3) パラメータ設定 (固有) parser.Channel = 0 ' 4) 画像処理実行. parser.Execute() ' E) 処理結果の出力. Console.WriteLine("Average = {0}", parser.Average) Console.WriteLine("Sigma2 = {0}", parser.Sigma2) Console.WriteLine("Skewness = {0}", parser.Skewness) Console.WriteLine("StdDev = {0}", parser.StdDev) Console.WriteLine("Kurtosis = {0}", parser.Kurtosis) End Sub End Class End Namespace |