輝度値の最大値
Overload List
Name | Description | |
---|---|---|
MaxPixel(CFviImage, CFviRegion) | 輝度値の最大値 | |
MaxPixel(CFviImage, CFviRegion, OriginMode) | 輝度値の最大値 |
Remarks
画像と領域の共通部分で、画像の輝度最大値を求めます。
処理可能な画像オブジェクトの条件は以下の通りです。
※ 領域がない場合や、画像と領域の共通部分がない場合はエラー終了となります。
処理に失敗した場合は例外を発行します。
例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。
引数に null を指定した場合は System.NullReferenceException が発行されます。
エラーコード:
値 | ErrorCode メンバ | 内容 |
---|---|---|
51 | FVIL.ErrorCode.LICENSE_ERROR | ライセンスキーが見つからない為、実行できません。 または、 FVIL._SetUp.InitVisionLibrary が実行されていません。 |
1 | FVIL.ErrorCode.FAILED_TO_ALLOCATE | メモリ不足の為、処理に失敗しました。 |
11 | FVIL.ErrorCode.INVALID_PARAMETER | リージョンが無効です。 |
12 | FVIL.ErrorCode.INVALID_OBJECT | リージョンオブジェクトハンドルまたは画像オブジェクトが無効です。 |
29 | FVIL.ErrorCode.NOT_CALCULABLE | 計算不可能です。 |
Examples
ソースコード:
【関数の出力】
C# | Copy |
---|---|
// $Revision: 1.3 $ using System; using System.Collections.Generic; using System.Text; using System.Drawing; using fvalgcli; // FvPluginXXXX attribute requires fvalgcli namespace User.SampleCode.Region { public partial class Measure { /// <summary> /// [リージョンオブジェクトを使用した特徴量抽出処理] /// 輝度値の最大値 /// </summary> /// <param name="caseindex">テストケース番号</param> public void MaxPixel(int caseindex) { try { // 1) インスタンスの準備. FVIL.Data.CFviImage image = new FVIL.Data.CFviImage(); FVIL.Data.CFviRegion region = new FVIL.Data.CFviRegion(); // 2) 処理対象画像の準備 { // 2-1) 処理対象画像の取り込み. FVIL.File.Function.LoadImageFile(Defs.TestImageDir + "/palette_UC8.png", image, FVIL.PixelMode.Unpacking); // 2-2) 処理対象画像の処理範囲設定. switch (caseindex) { case 0: // Case0. 処理範囲の指定がない場合 break; case 1: // Case1. 処理範囲の指定がある場合(※ 処理範囲にリージョン全体が含まれている) image.Window = new System.Drawing.Rectangle(20, 5, image.HorzSize - 50, image.VertSize - 20); // pallet_UC8_region_G.raw使用の場合 break; case 2: // Case2. 処理範囲の指定がある場合(※ 処理範囲にリージョンの一部のみ含まれている) image.Window = new System.Drawing.Rectangle(60, 5, 70, 100); // pallet_UC8_region_G.raw使用の場合 break; default: break; } } // 3) 処理対象リージョンの準備. { // 3-1) 処理対象リージョンの取り込み. region.Load(Defs.TestImageDir + "/palette_UC8_region_G.raw"); // 3-2) リージョンの位置の調整. // 元のリージョンが(0,0)を基準にしているものとする。 FVIL.Data.CFviPoint initPos = region.Position; region.Position = new FVIL.Data.CFviPoint(initPos.X - image.Window.Location.X, initPos.Y - image.Window.Location.Y); } // 4) 画像処理実行. double result = FVIL.Region.Measure.MaxPixel(image, region); // E) 算出結果の表示 Console.WriteLine(" FVIL.Region.Measure.MaxPixel (Case"+ caseindex.ToString() + ") : {0:f} ", result); } catch (FVIL.CFviException ex) { Console.WriteLine(ex.Function + " : ErrorCode = " + ex.ErrorCode); } } /// <summary> /// [リージョンオブジェクトを使用した特徴量抽出処理] /// 輝度値の最大値 /// Case0. 処理範囲の指定がない場合 /// </summary> [FvPluginExecute] public void MaxPixel_Case0() { MaxPixel(0); } /// <summary> /// [リージョンオブジェクトを使用した特徴量抽出処理] /// 輝度値の最大値 /// Case1. 処理範囲の指定がある場合(※ 処理範囲にリージョン全体が含まれている) /// </summary> [FvPluginExecute] public void MaxPixel_Case1() { MaxPixel(1); } /// <summary> /// [リージョンオブジェクトを使用した特徴量抽出処理] /// 輝度値の最大値 /// Case2. 処理範囲の指定がある場合(※ 処理範囲にリージョンの一部のみ含まれている) /// </summary> [FvPluginExecute] public void MaxPixel_Case2() { MaxPixel(2); } } } |
Visual Basic | Copy |
---|---|
' $Revision: 1.1 $ Imports System.Collections.Generic Imports System.Text Imports System.Drawing Imports fvalgcli ' FvPluginXXXX attribute requires fvalgcli Namespace SampleCode.Region Public Partial Class Measure ''' <summary> ''' [リージョンオブジェクトを使用した特徴量抽出処理] ''' 輝度値の最大値 ''' </summary> ''' <param name="caseindex">テストケース番号</param> Public Sub MaxPixel(caseindex As Integer) Try ' 1) インスタンスの準備. Dim image As New FVIL.Data.CFviImage() Dim region As New FVIL.Data.CFviRegion() ' 2) 処理対象画像の準備 If True Then ' 2-1) 処理対象画像の取り込み. FVIL.File.[Function].LoadImageFile(Defs.TestImageDir & "/palette_UC8.png", image, FVIL.PixelMode.Unpacking) ' 2-2) 処理対象画像の処理範囲設定. Select Case caseindex Case 0 ' Case0. 処理範囲の指定がない場合 Exit Select Case 1 ' Case1. 処理範囲の指定がある場合(※ 処理範囲にリージョン全体が含まれている) image.Window = New System.Drawing.Rectangle(20, 5, image.HorzSize - 50, image.VertSize - 20) ' pallet_UC8_region_G.raw使用の場合 Exit Select Case 2 ' Case2. 処理範囲の指定がある場合(※ 処理範囲にリージョンの一部のみ含まれている) image.Window = New System.Drawing.Rectangle(60, 5, 70, 100) ' pallet_UC8_region_G.raw使用の場合 Exit Select Case Else Exit Select End Select End If ' 3) 処理対象リージョンの準備. If True Then ' 3-1) 処理対象リージョンの取り込み. region.Load(Defs.TestImageDir & "/palette_UC8_region_G.raw") ' 3-2) リージョンの位置の調整. ' 元のリージョンが(0,0)を基準にしているものとする。 Dim initPos As FVIL.Data.CFviPoint = region.Position region.Position = New FVIL.Data.CFviPoint(initPos.X - image.Window.Location.X, initPos.Y - image.Window.Location.Y) End If ' 4) 画像処理実行. Dim result As Double = FVIL.Region.Measure.MaxPixel(image, region) ' E) 算出結果の表示 Console.WriteLine(" FVIL.Region.Measure.MaxPixel (Case" & caseindex.ToString() & ") : {0:f} ", result) Catch ex As FVIL.CFviException Console.WriteLine(ex.[Function] & " : ErrorCode = " & ex.ErrorCode) End Try End Sub ''' <summary> ''' [リージョンオブジェクトを使用した特徴量抽出処理] ''' 輝度値の最大値 ''' Case0. 処理範囲の指定がない場合 ''' </summary> <FvPluginExecute> _ Public Sub MaxPixel_Case0() MaxPixel(0) End Sub ''' <summary> ''' [リージョンオブジェクトを使用した特徴量抽出処理] ''' 輝度値の最大値 ''' Case1. 処理範囲の指定がある場合(※ 処理範囲にリージョン全体が含まれている) ''' </summary> <FvPluginExecute> _ Public Sub MaxPixel_Case1() MaxPixel(1) End Sub ''' <summary> ''' [リージョンオブジェクトを使用した特徴量抽出処理] ''' 輝度値の最大値 ''' Case2. 処理範囲の指定がある場合(※ 処理範囲にリージョンの一部のみ含まれている) ''' </summary> <FvPluginExecute> _ Public Sub MaxPixel_Case2() MaxPixel(2) End Sub End Class End Namespace |
・上記コード内の関数 void MaxPixel_Case0() を実行した場合 FVIL.Region.Measure.MaxPixel (Case0) : 255.00
・上記コード内の関数 void MaxPixel_Case1() を実行した場合 FVIL.Region.Measure.MaxPixel (Case1) : 255.00
・上記コード内の関数 void MaxPixel_Case2() を実行した場合 FVIL.Region.Measure.MaxPixel (Case2) : 178.00
Exceptions
Exception | Condition |
---|---|
FVIL..::..CFviException | この例外の原因については、上記のエラーコード表をご参照ください。 |