←Select platform

AddWeightedCommand Class

Summary

Adds or averages the images in a list according to their weight factors.

Syntax

C#
VB
Java
Objective-C
WinRT C#
C++
@interface LTAddWeightedCommand : LTRasterCommand
public class AddWeightedCommand extends RasterCommand
function Leadtools.ImageProcessing.Color.AddWeightedCommand()

Remarks
  • This command can be used to modify the brightness (with the add operations) or remove the noise (with the average operations). Typically, you would call this command for a series of images taken of the same object at short intervals.
  • If the value of Type property is:
    • Add, the command can be used to add several images of the same view to improve the lightness or brightness of the image. In this case, the value of Factor property will be ignored.
    • Average, the command can be used to average several images. In this case, the factor property or parameter is ignored.
    • AddWeighted, the command can be used to obtain an image as the sum of several weighted images. Each image in any position in the list has a corresponding weight factor in the same position in the Factor array. The real values are the weight factors divided by 100. For example if a weight factor is 131 its real value is 1.31. If Factor equals null, each image has the same weight factor of 100 and the result is the same as for Add.
    • AverageWeighted, the command can eliminate random noise by performing a weighted average. Each image in any position in the list has a corresponding weight factor in the factor array. The real values are the weight factors in the array divided by 100. The weighted sum will be divided by the sum of the weights. If the factor equals null, each image has the same weight factor of 100 and the result is the same as for Average.
  • This command performs operations between data byte-by-byte. An image can be any color resolution. This method will allocate and store the resulting image in DestinationImage property. The image resulting from this operation is internally copied from the first image in the list, before performing the adding operation. The operations are performed based on the smallest width and height of the input images.
  • All images must be either signed or unsigned.
  • This command supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.
  • This command does not support 32-bit grayscale images.

For more information, refer to Changing Brightness and Contrast.

Example

Run the AddWeightedCommand on an image. and return the resulting image, assuming that the image parameter have more than one page.

C#
VB
WinRT C#
Silverlight C#
Silverlight VB
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Color 
 
    
Public Sub AddWeightedCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")) 
 
   ' Prepare the command 
   Dim Factors() As Integer 
   ReDim Factors(4) 
   'take the average between all rotated bitmaps, and put the result in the. 
   Dim command As AddWeightedCommand = New AddWeightedCommand 
   command.Type = AddWeightedCommandType.Average 
   command.Factor = Factors 
   command.Factor(0) = 100 
   command.Factor(1) = 100 
   command.Factor(2) = 100 
   command.Factor(3) = 100 
   command.Run(leadImage) 
   codecs.Save(command.DestinationImage, Path.Combine(LEAD_VARS.ImagesDir, "AddWeightedCommandResult.Bmp"), RasterImageFormat.Bmp, 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.Color; 
 
       
public void AddWeightedCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")); 
 
   // Prepare the command 
   //take the average between all rotated bitmaps, and put the result in the. 
   AddWeightedCommand command = new AddWeightedCommand(); 
   command.Type = AddWeightedCommandType.Average; 
   command.Factor = new int[5]; 
   command.Factor[0] = 100; 
   command.Factor[1] = 100; 
   command.Factor[2] = 100; 
   command.Factor[3] = 100; 
   command.Run(image); 
   codecs.Save(command.DestinationImage, Path.Combine(LEAD_VARS.ImagesDir, "AddWeightedCommandResult.bmp"), RasterImageFormat.Bmp, 24); 
 
} 
 
static class LEAD_VARS 
{ 
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
 
       
public async Task AddWeightedCommandExample() 
{ 
   // 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 
   //take the average between all rotated bitmaps, and put the result in the. 
   AddWeightedCommand command = new AddWeightedCommand(); 
   command.Type = AddWeightedCommandType.Average; 
   command.Factor = new int[5]; 
   command.Factor[0] = 100; 
   command.Factor[1] = 100; 
   command.Factor[2] = 100; 
   command.Factor[3] = 100; 
   command.Run(image); 
 
   string destFileName = @"result.jpg"; 
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName); 
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Jpeg, 0); 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Examples; 
 
public void AddWeightedCommandExample(RasterImage image, Stream outStream) 
{ 
   // Prepare the command 
   //take the average between all rotated bitmaps, and put the result in the. 
   AddWeightedCommand command = new AddWeightedCommand(); 
   command.Type = AddWeightedCommandType.Average; 
   command.Factor = new int[5]; 
   command.Factor[0] = 100; 
   command.Factor[1] = 100; 
   command.Factor[2] = 100; 
   command.Factor[3] = 100; 
   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.Color 
 
Public Sub AddWeightedCommandExample(ByVal image As RasterImage, ByVal outStream As Stream) 
   ' Prepare the command 
   'take the average between all rotated bitmaps, and put the result in the. 
   Dim command As AddWeightedCommand = New AddWeightedCommand() 
   command.Type = AddWeightedCommandType.Average 
   command.Factor = New Integer(4){} 
   command.Factor(0) = 100 
   command.Factor(1) = 100 
   command.Factor(2) = 100 
   command.Factor(3) = 100 
   command.Run(image) 
   ' Save result image 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24) 
   image.Dispose() 
End Sub 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.ImageProcessing.Color Assembly
Click or drag to resize