ImageEn, unit iexHelperFunctions |
|
TIEMultiBitmapHelper.MergeExposures
Declaration
function MergeExposures(Dest: TIEBitmap; AlignImages: Boolean = False; ContrastWeight: Single = 1.0; SaturationWeight: Single = 1.0; Gamma: Single = 1.0): Boolean;
Description
A shortcut method that creates a
TIEVisionExposureMerger object and calls
run to combine images of different exposures into a single tone-mapped HDR image.
Parameter | Description |
Dest | The bitmap that will be assigned the resulting image (must be created before calling) |
AlignImages | If True the algorithm tries to align the images |
ContrastWeight | Contrast measure weight (>0.0) |
SaturationWeight | Saturation measure weight (>0.0) |
Gamma | Gamma correction (1 = linear map) |
When the
TIEMultiBitmap is attached to a
TImageEnMView:
◼If
Checkboxes are enabled, only checked images will be included. An exception is raised if there are no checked items
◼If
StoreType is not ietNormal, an attempt is made to load full quality images from file. An exception is raised if the files cannot be accessed
Note:
◼You must add the iexHelperFunctions unit to your uses clause
◼Exposure merging requires
IEVision. You will need to
register it before calling the method
◼If Dest is attached to a
TImageEnView, it will automatically call
UpdateMethod Behaviour
The following call:
ImageEnMView1.IEMBitmap.MergeExposures( ImageEnView1.IEBitmap,
AlignImagesCheckBox.Checked,
StrToFloatDef( EditContrastWeight.Text, 1.0 ),
StrToFloatDef( EditSaturationWeight.Text, 1.0 ),
StrToFloatDef( EditGamma.Text, 1.0 ));
Is the same as calling:
merger := IEVisionLib().createExposureMerger();
for i := 0 to ImageEnMView1.ImageCount - 1 do
begin
bmp := ImageEnMView1.GetTIEBitmap( i, True );
merger.addImage( IEVisionLib.createImage( bmp.GetIEVisionImage() ));
ImageEnMView1.ReleaseBitmap( i, False );
end;
ImageEnView1.IEBitmap.AssignIEVisionImage( merger.run( AlignImagesCheckBox.Checked,
StrToFloatDef( EditContrastWeight.Text, 1.0 ),
StrToFloatDef( EditSaturationWeight.Text, 1.0 ),
StrToFloatDef( EditGamma.Text, 1.0 )) );
// Merge the exposures of all the images in ImageEnMView1 and display the result in ImageEnView1
ShowTempHourglass();
ImageEnMView1.IEMBitmap.MergeExposures( ImageEnView1.IEBitmap );
// Merge the exposures of 3 image files
mbmp := TIEMultiBitmap.Create();
mbmp.FillFromList( ['D:\image1.png', 'D:\image2.png', 'D:\image3.png'] );
mbmp.MergeExposures( ImageEnView1.IEBitmap );
mbmp.Free;