Enhance Contrast of Color Image Using Histogram Equalization
This example shows how to enhance the contrast of a color image using the Histogram Equalization block.
Example Model
Open the Simulink® model.
modelname = 'ex_blkHistEqColor.slx';
open_system(modelname)
Initialize Parameters
The model uses the initialization function callback InitFcn
to initialize the input parameters. To configure the InitFcn
, on the Modeling tab, click Model Settings and select Model Properties. In the Model Properties dialog box, click the Callbacks tab and select InitFcn
from the list.
The InitFcn
of this model executes the following code to read an indexed image and convert it to an RGB image.
[X,map] = imread('shadow.tif');
shadow = ind2rgb(X,map);
This model reads the input image from workspace using the Image From Workspace block with these block parameters:
Value:
shadow
Image signal:
Separate color signals
Enhance Contrast of Image
The model extracts luminance information from the color image by converting it from the RGB color space to L*a*b* color space, using the Color Space Conversion block with these parameters:
Conversion:
sR'G'B' to L*a*b*
Image signal:
Separate color signals
The values of the luminance parameter L*
range from 0 to 100. The Histogram Equalization block expects floating point input values in the range from [0, 1]. The model normalizes the luminance values of the image by using a Constant block with the Constant value parameter set to 100
and a Divide block with default parameters.
To enhance the contrast of the image, the model uses a Histogram Equalization block with default parameters. The block transforms the normalized luminance values in the input color image such that the histogram of the output image is approximately uniform.
The model uses a Product block with default parameters and the existing Constant block to scale the luminance of the histogram-equalized output image to a range of 0 to 100. The model then converts the output image from the L*a*b* color space to the RGB color space using a Color Space Conversion block with these parameters:
Conversion:
L*a*b* to sR'G'B'
Image signal:
Separate color signals
Simulate and Display Results
Run the model and verify the change in contrast from input image to the output image. For comparison, the model displays the input image and the output image using Video Viewer blocks. The Image signal parameter of each Video Viewer block is set to Separate Color Signals
.
sim(modelname);