Documentation |
Adjust image contrast by linearly scaling pixel values
The Contrast Adjustment block adjusts the contrast of an image by linearly scaling the pixel values between upper and lower limits. Pixel values that are above or below this range are saturated to the upper or lower limit value, respectively.
Mathematically, the contrast adjustment operation is described by the following equation, where the input limits are [low_in high_in] and the output limits are [low_out high_out]:
$$Output=\left\{\begin{array}{c}low\_out\begin{array}{cc},& Input\le low\_in\end{array}\\ low\_out+(Input-low\_in)\frac{high\_out-low\_out}{high\_in-low\_in}\begin{array}{cc},& low\_in<Input<high\_in\end{array}\\ high\_out\begin{array}{cc},& Input\ge high\_in\end{array}\end{array}\right\}$$
Port | Input/Output | Supported Data Types | Complex Values Supported |
---|---|---|---|
I | Vector or matrix of intensity values |
| No |
Output | Scalar, vector, or matrix of intensity values or a scalar, vector, or matrix that represents one plane of the RGB video stream | Same as I port | No |
Use the Adjust pixel values from and Adjust pixel values to parameters to specify the upper and lower input and output limits. All options are described below.
Use the Adjust pixel values from parameter to specify the upper and lower input limits.
If you select Full input data range [min max], uses the minimum input value as the lower input limit and the maximum input value as the upper input limit. |
If you select User-defined, the Range [low high] parameter associated with this option appears. Enter a two-element vector of scalar values, where the first element corresponds to the lower input limit and the second element corresponds to the upper input limit. |
If you select Range determined by saturating outlier pixels, the Percentage of pixels to saturate [low high] (in %), Specify number of histogram bins (used to calculate the range when outliers are eliminated), and Number of histogram bins parameters appear on the block. The block uses these parameter values to calculate the input limits in this three-step process: |
Find the minimum and maximum input values, [min_in max_in].
Scale the pixel values from [min_in max_in] to [0 num_bins-1], where num_bins is the scalar value you specify in the Number of histogram bins parameter. This parameter always displays the value used by the block. Then the block calculates the histogram of the scaled input. For additional information about histograms, see the 2D-Histogram block reference page.
Find the lower input limit such that the percentage of pixels with values smaller than the lower limit is at most the value of the first element of the Percentage of pixels to saturate [low high] (in %) parameter. Similarly, find the upper input limit such that the percentage of pixels with values greater than the upper limit is at least the value of the second element of the parameter.
Use the Adjust pixel values to parameter to specify the upper and lower output limits.
If you select Full data type range, the block uses the minimum value of the input data type as the lower output limit and the maximum value of the input data type as the upper out |
If you select User-defined range, the Range [low high] parameter appears on the block. Enter a two-element vector of scalar values, where the first element corresponds to the lower output limit and the second element corresponds to the upper output limit. |
If any input pixel value is either INF or -INF, the Contrast Adjustment block will change the pixel value according to how the parameters are set. The following table shows how the block handles these pixel values.
If Adjust pixel values from parameter is set to... | Contrast Adjustment block will: |
---|---|
Full data range [min,max] | Set the entire output image to the lower limit of the Adjust pixel values to parameter setting. |
Range determined by saturating outlier pixels | |
User defined range | Lower and higher limits of the Adjust pixel values to parameter set to -INF and INF, respectively. |
If any input pixel has a NAN value, the block maps the pixels with valid numerical values according to the user-specified method. It maps the NAN pixels to the lower limit of the Adjust pixels values to parameter.
See Adjust the Contrast of Intensity Images in the Computer Vision System Toolbox™ User's Guide.
The following diagram shows the data types used in the Contrast Adjustment block for fixed-point signals:
The Contrast Adjustment dialog box appears as shown in the following figure.
Specify how to enter the upper and lower input limits. Your choices are Full input data range [min max], User-defined, and Range determined by saturating outlier pixels.
Enter a two-element vector of scalar values. The first element corresponds to the lower input limit, and the second element corresponds to the upper input limit. This parameter is visible if, for the Adjust pixel values from parameter, you select User-defined.
Enter a two-element vector. The block calculates the lower input limit such that the percentage of pixels with values smaller than the lower limit is at most the value of the first element. It calculates the upper input limit similarly. This parameter is visible if, for the Adjust pixel values from parameter, you select Range determined by saturating outlier pixels.
Select this check box to change the number of histogram bins. This parameter is editable if, for the Adjust pixel values from parameter, you select Range determined by saturating outlier pixels.
Enter the number of histogram bins to use to calculate the scaled input values. This parameter is available if you select the Specify number of histogram bins (used to calculate the range when outliers are eliminated) check box.
Specify the upper and lower output limits. If you select Full data type range, the block uses the minimum value of the input data type as the lower output limit and the maximum value of the input data type as the upper output limit. If you select User-defined range, the Range [low high] parameter appears on the block.
Enter a two-element vector of scalar values. The first element corresponds to the lower output limit and the second element corresponds to the upper output limit. This parameter is visible if, for the Adjust pixel values to parameter, you select User-defined range
The Data Types pane of the Contrast Adjustment dialog box appears as shown in the following figure.
Select the rounding mode for fixed-point operations.
Select the overflow mode for fixed-point operations.
The product output type when the block calculates the ratio between the input data range and the number of histogram bins.
As shown in the previous figure, the output of the multiplier is placed into the product output data type and scaling. Use this parameter to specify how to designate this product output word and fraction lengths:
When you select Binary point scaling, you can enter the word length and the fraction length of the product output, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the product output. The bias of all signals in the Computer Vision System Toolbox software is 0.
The product output type when the block calculates the bin location of each input value.
As shown in the previous figure, the output of the multiplier is placed into the product output data type and scaling. Use this parameter to specify how to designate this product output word and fraction lengths:
When you select Binary point scaling, you can enter the word length and the fraction length of the product output, in bits.
When you select Slope and bias scaling, you can enter the word length, in bits, and the slope of the product output. The bias of all signals in the Computer Vision System Toolbox software is 0.
This parameter is visible if, for the Adjust pixel values from parameter, you select Range determined by saturating outlier pixels.
Select this parameter to prevent the fixed-point tools from overriding the data types you specify on the block mask. For more information, see fxptdlg, a reference page on the Fixed-Point Tool in the Simulink^{®} documentation.