LEADTOOLS画像処理(Leadtools.ImageProcessing.Effectsアセンブリ)

フレームを表示

GetFunctionalLookupTableメソッド








このメソッドによって塗りつぶされるルックアップテーブル配列。ユーザーは手動でルックアップテーブルの最初で最後の要素を設定しなければなりません(すなわちlookupTable [0] = firstValue; lookupTable、[tableSizeします ― 1]= lastValue;)、最初の値に最初の要素を最後の値と最後の要素に設定するならば、ルックアップテーブルは反転になります。
更新するルックアップテーブルの最初のエントリのインデックス。テーブルのインデックスは、明度値と一致します。このパラメーターがlookupTableへの対応するインデックスがそうである負の数を持っているならば、その値+にそのlengthに等しいです。値がある(-lookupTable length/2)、(lookupTableなlength/2 - 1)、その全力の範囲。
更新するルックアップテーブルの最後のエントリのインデックス。テーブルのインデックスは、明度値と一致します。このパラメーターがlookupTableへの対応するインデックスがそうである負の数を持っているならば、その値+にそのlengthに等しいです。値がある(-lookupTable length/2)、(lookupTableなlength/2 - 1)、その全力の範囲。
要因がフラグパラメーターで指定されている関数操作で適用されることを示す値。このパラメーターが使われます。そして、フラグがある場合だけ、セットはFunctionalLookupTableFlags.ExponentialFunctionalLookupTableFlags.SigmoidまたはFunctionalLookupTableFlags.Logarithmにあります。FunctionalLookupTableFlags.ExponentialまたはFunctionalLookupTableFlags.Sigmoidが設定されるならば、このパラメーターの値は任意の整数(+/-)でありえます。FunctionalLookupTableFlags.Logarithmが設定されるならば、その値は≧0でなければなりません。しかし、要因= 0ならば、ルックアップテーブルはフラグで設定される値に関係なく、終わるためにスタートから線形に塗りつぶされます。
関数が使った指示がルックアップテーブルを更新するために、そして、lookupTableが符号付きまたは符号なしデータを格納しなければならないか否かを問わず、フラグを立てます。
ルックアップテーブル(指定された数学関数に基づく)の様々なエントリを更新します。
構文
public static void GetFunctionalLookupTable( 
   int[] lookupTable,
   int start,
   int end,
   int factor,
   FunctionalLookupTableFlags flags
)
'Declaration
 
Public Shared Sub GetFunctionalLookupTable( _
   ByVal lookupTable() As Integer, _
   ByVal start As Integer, _
   ByVal end As Integer, _
   ByVal factor As Integer, _
   ByVal flags As FunctionalLookupTableFlags _
) 
'Usage
 
Dim lookupTable() As Integer
Dim start As Integer
Dim end As Integer
Dim factor As Integer
Dim flags As FunctionalLookupTableFlags
 
EffectsUtilities.GetFunctionalLookupTable(lookupTable, start, end, factor, flags)
public static void GetFunctionalLookupTable( 
   int[] lookupTable,
   int start,
   int end,
   int factor,
   FunctionalLookupTableFlags flags
)
+ (void)getFunctionalLookupTable:(int *)lookupTable
               lookupTableLength:(NSUInteger)lookupTableLength
                           start:(NSInteger)start
                             end:(NSInteger)end
                          factor:(NSInteger)factor
                           flags:(LTFunctionalLookupTableFlags)flags
                           error:(NSError **)error
            
public static void getFunctionalLookupTable(
   int[] lookupTable, 
   int start, 
   int end, 
   int factor, 
   FunctionalLookupTableFlags flags
)
            
 function Leadtools.ImageProcessing.Effects.EffectsUtilities.GetFunctionalLookupTable( 
   lookupTable ,
   start ,
   end ,
   factor ,
   flags 
)
public:
static void GetFunctionalLookupTable( 
   array<int>^ lookupTable,
   int start,
   int end,
   int factor,
   FunctionalLookupTableFlags flags
) 

パラメーター

lookupTableな
このメソッドによって塗りつぶされるルックアップテーブル配列。ユーザーは手動でルックアップテーブルの最初で最後の要素を設定しなければなりません(すなわちlookupTable [0] = firstValue; lookupTable、[tableSizeします ― 1]= lastValue;)、最初の値に最初の要素を最後の値と最後の要素に設定するならば、ルックアップテーブルは反転になります。
スタート
更新するルックアップテーブルの最初のエントリのインデックス。テーブルのインデックスは、明度値と一致します。このパラメーターがlookupTableへの対応するインデックスがそうである負の数を持っているならば、その値+にそのlengthに等しいです。値がある(-lookupTable length/2)、(lookupTableなlength/2 - 1)、その全力の範囲。
終わり
更新するルックアップテーブルの最後のエントリのインデックス。テーブルのインデックスは、明度値と一致します。このパラメーターがlookupTableへの対応するインデックスがそうである負の数を持っているならば、その値+にそのlengthに等しいです。値がある(-lookupTable length/2)、(lookupTableなlength/2 - 1)、その全力の範囲。
要因
要因がフラグパラメーターで指定されている関数操作で適用されることを示す値。このパラメーターが使われます。そして、フラグがある場合だけ、セットはFunctionalLookupTableFlags.ExponentialFunctionalLookupTableFlags.SigmoidまたはFunctionalLookupTableFlags.Logarithmにあります。FunctionalLookupTableFlags.ExponentialまたはFunctionalLookupTableFlags.Sigmoidが設定されるならば、このパラメーターの値は任意の整数(+/-)でありえます。FunctionalLookupTableFlags.Logarithmが設定されるならば、その値は≧0でなければなりません。しかし、要因= 0ならば、ルックアップテーブルはフラグで設定される値に関係なく、終わるためにスタートから線形に塗りつぶされます。
フラグ
関数が使った指示がルックアップテーブルを更新するために、そして、lookupTableが符号付きまたは符号なしデータを格納しなければならないか否かを問わず、フラグを立てます。
解説
サンプル

このサンプルは、指数関数を用いて作成されるルックアップテーブルを用いて、ロードしたimageを暗くします。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.ImageProcessing.Effects

   
Public Sub GetFunctionalLookupTableExample()
   Dim codecs As New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"))

   ' Prepare the command
   Dim LookupTable() As Integer
   ReDim LookupTable(255)
   LookupTable(0) = 0
   LookupTable(255) = 255
   EffectsUtilities.GetFunctionalLookupTable(LookupTable, 0, 255, 5, FunctionalLookupTableFlags.Exponential)

   Dim command As RemapIntensityCommand = New RemapIntensityCommand
   command.Flags = RemapIntensityCommandFlags.Master
   command.LookupTable = LookupTable
   command.Run(leadImage)
   codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24)

End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Effects;
using Leadtools.ImageProcessing.Color;

      
public void GetFunctionalLookupTableExample()
{
   // Load an image
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"));

   // Prepare the command
   int[] LookupTable = new int[256];
   LookupTable[0] = 0;
   LookupTable[255] = 255;
   EffectsUtilities.GetFunctionalLookupTable(LookupTable, 0, 255, 5, FunctionalLookupTableFlags.Exponential);

   RemapIntensityCommand command = new RemapIntensityCommand();
   command.Flags = RemapIntensityCommandFlags.Master;
   command.LookupTable = LookupTable;
   command.Run(image);
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24);

}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Effects;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

      
public async Task GetFunctionalLookupTableExample()
{
   // Load an image
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   // Load the image
   string srcFileName = @"Assets\Image1.cmp";
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));

   // Prepare the command
   int[] LookupTable = new int[256];
   LookupTable[0] = 0;
   LookupTable[255] = 255;
   int[] retLookupTable = EffectsUtilities.GetFunctionalLookupTable(LookupTable, 0, 255, 5, FunctionalLookupTableFlags.Exponential);

   RemapIntensityCommand command = new RemapIntensityCommand();
   command.Flags = RemapIntensityCommandFlags.Master;
   command.LookupTable = retLookupTable;
   command.Run(image);
   //Save as BMP
   string destFileName = @"result.bmp";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24);

}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Effects;
using Leadtools.ImageProcessing.Color;
using Leadtools.Examples;

public void GetFunctionalLookupTableExample(RasterImage image, Stream outStream)
{
   // Prepare the command
   int[] LookupTable = new int[256];
   LookupTable[0] = 0;
   LookupTable[255] = 255;
   EffectsUtilities.GetFunctionalLookupTable(LookupTable, 0, 255, 5, FunctionalLookupTableFlags.Exponential);
   RemapIntensityCommand command = new RemapIntensityCommand();
   command.Flags = RemapIntensityCommandFlags.Master;
   command.LookupTable = LookupTable;
   command.Run(image);
   // Save result image
   RasterCodecs codecs = new RasterCodecs();
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
   image.Dispose();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Effects
Imports Leadtools.ImageProcessing.Color

Public Sub GetFunctionalLookupTableExample(ByVal image As RasterImage, ByVal outStream As Stream)
   ' Prepare the command
   Dim LookupTable As Integer() = New Integer(255){}
   LookupTable(0) = 0
   LookupTable(255) = 255
   EffectsUtilities.GetFunctionalLookupTable(LookupTable, 0, 255, 5, FunctionalLookupTableFlags.Exponential)
   Dim command As RemapIntensityCommand = New RemapIntensityCommand()
   command.Flags = RemapIntensityCommandFlags.Master
   command.LookupTable = LookupTable
   command.Run(image)
   ' Save result image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
   image.Dispose()
End Sub
必要条件

ターゲットプラットホーム

参照

参照

EffectsUtilitiesクラス
EffectsUtilitiesメンバ
Leadtools.ImageProcessing.Color.RemapIntensityCommand
Leadtools.ImageProcessing.Core.ApplyVoiLookupTableCommand
Leadtools.ImageProcessing.Color.AdjustTintCommand
Leadtools.ImageProcessing.Color.GammaCorrectExtendedCommand