HistogramEqualize Method
Summary
Linearizes the number of pixels, in an image, based on the specified color space. This can be used to bring out the detail in dark areas of an image. This operation is useful for pre-processing images for the purpose of improving barcode recognition results.
Example
using Leadtools.Services;
public void HistogramEqualizeExample()
{
ColorProcessingServiceClient client = new ColorProcessingServiceClient();
RawBinaryData sourceBinaryData = new RawBinaryData();
sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp"));
RasterConvertOptions convertOptions = new RasterConvertOptions();
convertOptions.Source = sourceBinaryData;
convertOptions.Destination = null;
convertOptions.Format = RasterImageFormat.Bmp;
convertOptions.FirstPage = 1;
convertOptions.LastPage = 1;
convertOptions.BitsPerPixel = 24;
convertOptions.QualityFactor = 2;
HistogramEqualizeRequest request = new HistogramEqualizeRequest();
request.ConvertOptions = convertOptions;
request.RegionData = null;
request.Type = HistogramEqualizeType.Yuv;
CommandResponse response = client.HistogramEqualize(request);
if (response.Destination != null)
{
if (response.Destination is RawBinaryData)
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "HistogramEqualize.bmp"), (response.Destination as RawBinaryData).Data);
}
client.Close();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Imports Leadtools.Services
Imports Leadtools.Services.datacontracts._2009._01
Imports Leadtools.Services.raster.datacontracts._2009._01
Imports Leadtools.Services.ImageProcessing.datacontracts._2009._01
Public Sub HistogramEqualizeExample()
Dim client As ColorProcessingServiceClient = New ColorProcessingServiceClient()
Dim sourceBinaryData As RawBinaryData = New RawBinaryData()
sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "image1.cmp"))
Dim convertOptions As RasterConvertOptions = New RasterConvertOptions()
convertOptions.Source = sourceBinaryData
convertOptions.Destination = Nothing
convertOptions.Format = RasterImageFormat.Bmp
convertOptions.FirstPage = 1
convertOptions.LastPage = 1
convertOptions.BitsPerPixel = 24
convertOptions.QualityFactor = 2
Dim request As HistogramEqualizeRequest = New HistogramEqualizeRequest()
request.ConvertOptions = convertOptions
request.RegionData = Nothing
request.Type = HistogramEqualizeType.Yuv
Dim response As CommandResponse = client.HistogramEqualize(request)
If Not response.Destination Is Nothing Then
If TypeOf response.Destination Is RawBinaryData Then
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "HistogramEqualize.bmp"), (TryCast(response.Destination, RawBinaryData)).Data)
End If
End If
client.Close()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class