Contrast Adjustment
Adjust image contrast using linear scaling
Libraries:
Computer Vision Toolbox /
Analysis & Enhancement
Description
The Contrast Adjustment block adjusts the contrast of an image by linearly scaling the pixel values between specified upper and lower limits. Pixel values that are above or below the specified range are saturated to the upper or lower limit value, respectively. For more information, see Adjust Contrast of Image.
Examples
Adjust Contrast of Image
Adjust the contrast of an image by linearly scaling pixel values.
Ports
Input
I — Input image
matrix  array
Input image, specified as an MbyN matrix or an MbyNbyC array, where C is the number of color channels in the input image.
Data Types: single
 double
 int8
 int16
 uint8
 uint16
 Boolean
 fixed point
Output
Port_1 — Output image
matrix  array
Output image, returned as an MbyN matrix or an MbyNbyC array, where C is the number of color channels.
Data Types: single
 double
 int8
 int16
 uint8
 uint16
 Boolean
 fixed point
Parameters
Main
Adjust pixel values from — Input pixel value range definition
Full input data range [min max]
(default)  Userdefined range
 Range determined by saturating outlier pixels
Specify how the block determines the pixel value range of the input image as one of these options:
Full input data range [min max]
— Range set to the minimum and maximum pixel values in the input image.Userdefined range
— Select this value to enable a Range [low high] parameter. Specify the Range [low high] parameter as a twoelement vector of nonnegative values, in which the first element is the lower limit of the input pixel value range and the second element is the upper limit of the input pixel value range.Range determined by saturating outlier pixels
— Range specified by saturating the outlier pixels. The block determines the range based on the Percentage of pixels to saturate [low high], Specify number of histogram bins (used to calculate the range when outliers are eliminated), and Number of histogram bins parameters. For more information, see Determine Contrast Adjustment Range by Saturating Outlier Pixels.
Range [low high] — Input pixel value range
[0 255]
(default)  twoelement vector of nonnegative numbers
Specify the input pixel value range as a twoelement vector of nonnegative numbers. The first and second elements of the vector specify the lower and upper limit of the input pixel value range, respectively.
Dependencies
To enable this parameter, set the Adjust pixel values from
parameter to Userdefined
.
Percentage of pixels to saturate [low high] — Maximum percentages of pixels to saturate
[1 1]
(default)  twoelement vector of nonnegative numbers
Specify the maximum percentages of pixels to saturate as a twoelement vector of nonnegative numbers. Each element must be in the range 0 to 100. The block calculates the lower limit of the input pixel value range such that the percentage of pixels in the input image with values less than the lower limit is at most the value of the first element. Similarly, the block calculates the upper limit of the input pixel value range such that the percentage of pixels in the input image with values greater than the upper limit is at most the value of the second element.
Dependencies
To enable this parameter, set the Adjust pixel values from
parameter to Range determined by saturating outlier
pixels
.
Specify number of histogram bins (used to calculate the range when outliers are eliminated) — Custom number of histogram bins
on
(default)  off
Select this parameter to enable the Number of histogram bins parameter, which enables you to specify a custom number of histogram bins for the block to use to calculate the input pixel value range after outliers are eliminated.
Dependencies
To enable this parameter, set the Adjust pixel values from
parameter to Range determined by saturating outlier
pixels
.
Number of histogram bins — Number of histogram bins
256
(default)  positive integer
Specify the number of histogram bins to use to calculate the range for scaling the input pixel values.
Dependencies
To enable this parameter, set the Adjust pixel values from
parameter to Range determined by saturating outlier
pixels
, and select the Specify number of histogram bins
(used to calculate the range when outliers are eliminated)
parameter.
Adjust pixel values to — Output pixel value range definition
Full data type range
(default)  Userdefined range
Specify how the block determines the pixel value range of the output image as one of these options:
Full data type range
— Specifies the output range of pixel values as from the minimum to the maximum value of the input data type.Userdefined range
— Select this value to enable a Range [low high] parameter. Specify the Range [low high] parameter as a twoelement vector of nonnegative values, in which the first element is the lower limit of the output pixel value range and the second element is the upper limit of the output pixel value range.
Range [low high] — Output pixel value range
[0 255]
(default)  twoelement vector of nonnegative numbers
Specify the output pixel value range as a twoelement vector of nonnegative numbers. The first and second elements of the vector specify the lower and upper limit of the output pixel value range, respectively.
Dependencies
To enable this parameter, set the Adjust pixel values to
parameter to Userdefined range
.
Data Types
For details on the fixedpoint block parameters, see Specify FixedPoint Attributes for Blocks (DSP System Toolbox).
Lock data type settings against change by the fixedpoint tools — Data type override
off
(default)  on
Select this parameter to prevent the fixedpoint tools from overriding the data types you specify in this block. For more information, see Lock the Output Data Type Setting (FixedPoint Designer).
Block Characteristics
Data Types 

Multidimensional Signals 

VariableSize Signals 

More About
The following diagram shows the data types used in the Contrast Adjustment block for fixedpoint signals:
Algorithms
Adjust Contrast of Image
The contrast adjustment operation is defined by this equation.
$${O}_{i}=\left\{\begin{array}{c}{l}_{\text{out}}\begin{array}{cc},& {I}_{i}\le {l}_{\text{in}}\end{array}\\ {l}_{\text{out}}+({I}_{i}{l}_{\text{in}})\frac{{h}_{\text{out}}{l}_{\text{out}}}{{h}_{\text{in}}{l}_{\text{in}}}\begin{array}{cc},& {l}_{\text{in}}<{I}_{i}<{h}_{\text{in}}\end{array}\\ {h}_{\text{out}}\begin{array}{cc},& {I}_{i}\ge {h}_{\text{in}}\end{array}\end{array}\right\},$$
where I_{i} and O_{i} are the input and output image pixels, the input pixel value range is [l_{in} h_{in}] and the output pixel value range is [l_{out} h_{out}].
Determine Contrast Adjustment Range by Saturating Outlier Pixels
When you set the Adjust pixel values from parameter to
Range determined by saturating outlier pixels
, the block
determines the input pixel value range using these steps.
Finds the minimum input pixel value min_in and maximum input pixel value max_in.
Scales the pixel values in the range [min_in, max_in] to [0, num_bins–1], where num_bins is the number of histogram bins specified by the Number of histogram bins parameter. Then, the block calculates the histogram of the scaled input. For more information on image histograms, see the 2D Histogram block.
Determines the lower input pixel value limit such that the percentage of pixels in the input image with values less than the lower limit is at most the value of the first element of the Percentage of pixels to saturate [low high] parameter. Similarly, find the upper input pixel value limit such that the percentage of pixels in the input image with values greater than the upper limit is at most the value of the second element of the parameter.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced in R2006b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 Belgium (English)
 Denmark (English)
 Deutschland (Deutsch)
 España (Español)
 Finland (English)
 France (Français)
 Ireland (English)
 Italia (Italiano)
 Luxembourg (English)
 Netherlands (English)
 Norway (English)
 Österreich (Deutsch)
 Portugal (English)
 Sweden (English)
 Switzerland
 United Kingdom (English)