Histogram contrast stretching allows you to customize a contrast stretch by interactively adjusting the histogram. Typically, ArcGIS Pro displays the image and raster data with good contrast by default. When the preset contrast stretches do not produce the enhancement you want, histograms can be manually adjusted to change the contrast stretch of the raster.
The histogram of the contrast stretch shows you the distribution of the image pixels. The pixel values are along the x-axis, and the pixel counts are shown on the y-axis as a histogram. The histogram does not show every pixel's value due to binning of values.
Not all of the stretch types allow you to edit the histogram. The None and Esri stretch types only allow you to view the pixel distribution. The Minimum Maximum, Percent Clip, and Standard Deviation stretch types allow you to view the pixel distribution and interactively set the minimum and maximum input values so that the stretch focuses on the majority of the input values and disregards the outliers or tails of the distribution at either extreme. The Custom and Histogram Specification stretch types allow you to interactively create a piecewise histogram stretch to enhance specific portions of the histogram differently.
Stretch type | Histogram capability |
---|---|
| The histogram is read-only. |
| The minimum and maximum values of the histogram can be manually adjusted. |
| The histogram can be matched to an existing histogram file (.xml). Additionally, you can manually specify a piecewise histogram. |
| You can manually specify a piecewise histogram. This allows you to create a custom stretch, where each portion of the histogram can be stretched differently. |
Histogram tools
The table below shows the various histogram tools available.
Tool | Description |
---|---|
Band Selector | Use the drop-down list to select which band to display.
Choosing a single band is helpful when you want to see more detail for the Y-axis. This is only available when the RGB Symbology type is used. |
Line | The line tool creates a set of vertices, where the input values map to the output display values using the breakpoints. Use the Line tool to edit the piecewise line on the graph, which displays the stretched histogram superimposed over the original input histogram. For instance, if you want the input value of 20 to be displayed as 30, place a point where the input (x) is 20 and the output (y) is 30. Once you complete the custom input and output values, click Apply to see the resulting stretch. This tool is only available when the Stretch type is Histogram Specification or Custom. |
Spline | The spline tool create a set of vertices, where the input values map to the output display values; making sure the input-output line will be curved through the breakpoints. Used to edit the piecewise line on the graph, which displays the stretched histogram superimposed over the original input histogram. For instance, if you want the input value of 20 to be displayed as 30, place a point where the input (x) is 20 and the output (y) is 30. Once you complete the custom input and output values, click Apply to see the resulting stretch. This tool is only available when the Stretch type is Histogram Specification or Custom. |
Add a point | Expand the Manually add input and output category to see text boxes for x- and y-input. This functionality is similar to that of the Line tool, except instead of using the graphical display to set points, you type the input and output values in the text boxes. Once you set the input and output, click the Add a point button to add the breakpoint to the histogram. This tool is only available when the Stretch type is Histogram Specification or Custom. |
Smooth | The Smooth button is used to smooth the curve rather than abrupt changes occurring at your breakpoint settings. This tool is only available when the Stretch type is Histogram Specification or Custom. |
Information for selected area | The Information For Selected Area tool is used to highlight a portion of the histogram and the highlighted data is shown in the Information section. |
Zoom in | Click the Zoom in button to magnify the X-axis. This is useful to see an area where many of the values are densely grouped. |
Zoom out | Click the Zoom in button to reduce the X-axis. |
Cumulative | The Cumulative button is used to change the display of the graph. Instead of showing the histogram distribution, two ascending curves are displayed, showing the input and output values for the input data and the stretched values. To return to the histogram view, click the Cumulative button again to turn off the cumulative view. |
Reset | The Reset button is used to reset the histogram and the zoom level as well. |
View the histogram
You can view the raster histogram distribution when the RGB or Stretch symbology type is used in the Symbology pane. There are two methods to open the histogram view:
- Click the Stretch Type button located on the Raster Layer, Mosaic Layer, or Image Service Layer tab.
Note:
If the stretch type is currently None and you click the Stretch button before you choose a different stretch type, you can only view the histogram. To adjust the histogram, change the Stretch type setting from the Symbology pane or use the arrow below the Stretch Type button, from the Raster Layer, Mosaic Layer, or Image Service Layer tab.
- Click the Histogram button in the Symbology pane.
The histogram displays the low and high breakpoint values along the histogram distribution where the histogram will be clipped. It also displays the histogram distribution for each rendered band in the image.
This histogram is viewable for all the stretch types; additionally, some of the stretch types allow you to edit the histogram. Below the histogram display is a Statistics section that shows the statistics of the data source. In the Information section, you can see input and output information for any location on the histogram by hovering the pointer over the histogram.
Edit the minimum and maximum values
When the stretch type is set to Minimum Maximum, Percent Clip, or Standard Deviation, you can view the histogram and also edit the minimum and maximum values of the histogram. When you set the high and low limits of the histogram, it adjusts the contrast stretch of the image. This helps to remove outlier values in high and low regions of the histogram.
To set the minimum and maximum histogram limits, click and hold the minimum or maximum triangle located below the dotted line, and move the breakpoint line along the x-axis to where you want to set the limit. You can use the graphical histogram display to determine where the limits should be set. If you know the minimum and maximum values you want to set, you can also double-click the minimum or maximum value, and type the number in the text box.
If you are displaying your histogram with the RGB renderer, it will display all three histograms at once. You can use the Band Selector to display one band at a time. This will show you the histogram of the selected band, with a much taller y-axis.
To see more detail in the X-axis, use the Zoom in button . While zoomed in, you can also pan left or right to see other parts of the histogram distribution. To see the entre histogram distribution at once, you can click the Zoom in button .
Once the histogram has been edited, the Histogram button in the Symbology pane is updated to show that the histogram was updated.
Custom and Histogram Specification
When the stretch type is set to Histogram Specification, you can select a histogram file (.xml) to set the layer's histogram.
When the stretch type is set to Custom or Histogram Specification, you can interactively specify a piecewise histogram.
Click the Histogram button to open the Histogram page. For each rendered band, the histogram has a line that maps the input x-value and the stretched y-value. Initially this line is a straight diagonal from the lower left origin (minimum input, minimum output) to the upper right of the histogram graph (maximum input, maximum output). You place and adjust histogram stretch breakpoints along this line to create the piecewise histogram stretch.
If you are displaying your histogram with the RGB renderer, it will display all three histograms at once. You can use the Band Selector to display one band at a time. This will show you the histogram of the selected band, with a much taller y-axis.
To see more detail in the X-axis, use the Zoom in button . While zoomed in, you can also pan left or right to see other parts of the histogram distribution. To see the entre histogram distribution at once, you can click the Zoom in button .
You can use the following tools to edit the histogram, and you can manually add input and output:
- Line tool
- Spline tool
The Line tool is used to edit the piecewise line on the graph, which displays the stretched histogram superimposed over the original input histogram. This line sets how to map the output display values. Use the Line tool to create a set of vertices, where the input values map to the output display values. For instance, if you want the input value of 20 to be displayed as 30, place a point where the input (x) is 20 and the output (y) is 30. Once you complete the custom input and output values, click Apply to see the resulting stretch.
The Spline tool works similar to the Line tool, except the input-output line will be curved through the breakpoints.
Open the Manually add input and output category to see text boxes for x- and y-input. This functionality is similar to that of the Line tool, except instead of using the graphical display to set points, you type the input and output values in the text boxes and click the Add a point button to add another breakpoint to the histogram.
You can move any of the vertices to edit them; drag the vertex to the desired position on the histogram. To remove any of the vertices, hover over the vertex, click it, right-click, and choose Delete selected point. The Smooth button is used to smooth the curve rather than abrupt changes occurring pursuant to your breakpoint settings.
While you view the histogram, there are several tools you can use to query the data. The Information For Selected Area tool is used to highlight a portion of the histogram and the highlighted data is shown in the Information section. The Cumulative button is used to change the display of the graph. Instead of showing the histogram distribution, two ascending curves are displayed, showing the input and output values for the input data and the stretched values. To return to the histogram view, click the Cumulative button again to turn off the cumulative view.
Once the histogram has been edited, the Histogram button in the Symbology pane is updated to show that the histogram was updated.