Digital Image Processing (CS/ECE 545)
Lecture 2: Histograms and Point
Operations (Part 1)
Prof Emmanuel Agu
Computer Science Dept.
Worcester Polytechnic Institute (WPI)
Histograms
Histograms plots how many times (frequency) each
intensity value in image occurs
Example:
Image (left) has 256 distinct gray levels (8 bits)
Histogram (right) shows frequency (how many times) each
gray level occurs
Histograms
Many cameras display real time histograms of scene
Helps avoid taking over‐exposed pictures
Also easier to detect types of processing previously
applied to image
Histograms
Intensity
values
E.g. K = 16, 10 pixels have intensity value
=2
Histograms: only statistical information
No indication of location of pixels
Histograms
Different images can have same histogram
3 images below have same histogram
Half of pixels are gray, half are white
Same histogram = same statisics
Distribution of intensities could be different
Can we reconstruct image from histogram? No!
Histograms
So, a histogram for a grayscale image with intensity
values in range
would contain exactly K entries
E.g. 8‐bit grayscale image, K = 28 = 256
Each histogram entry is defined as:
h(i) = number of pixels with intensity I for all 0 < i < K.
E.g: h(255) = number of pixels with intensity = 255
Formal definition
Number (size of set) of pixels
such that
Interpreting Histograms
Log scale makes low values more visible
Difference between darkest and lightest
Histograms
Histograms help detect image acquisition issues
Problems with image can be identified on histogram
Over and under exposure
Brightness
Contrast
Dynamic Range
Point operations can be used to alter histogram. E.g
Addition
Multiplication
Exp and Log
Intensity Windowing (Contrast Modification)
Image Brightness
Brightness of a grayscale image is the average
intensity of all pixels in image
2. Divide by total number of pixels
1. Sum up all pixel intensities
Detecting Bad Exposure using Histograms
Exposure? Are intensity values spread (good) out or
bunched up (bad)
Image
Histogram
Underexposed Properly Overexposed
Exposed
Image Contrast
The contrast of a grayscale image indicates how easily
objects in the image can be distinguished
High contrast image: many distinct intensity values
Low contrast: image uses few intensity values
Histograms and Contrast
Good Contrast? Widely spread intensity values
+ large difference between min and max intensity values
Image
Histogram
Low contrast Normal contrast High contrast
Contrast Equation?
Many different equations for contrast exist
Examples:
Michalson’s equation for contrast
Contrast Equation?
These equations work well for simple images with 2
luminances (i.e. uniform foreground and
background)
Does not work well for complex scenes with many
luminances or if min and max intensities are small
Histograms and Dynamic Range
Dynamic Range: Number of distinct pixels in image
High Dynamic Range Low Dynamic Range Extremely low
(64 intensities) Dynamic Range
(6 intensity
values)
Difficult to increase image dynamic range (e.g. interpolation)
HDR (12‐14 bits) capture typical, then down‐sample
High Dynamic Range Imaging
High dynamic range means very bright and very dark
parts in a single image (many distinct values)
Dynamic range in photographed scene may exceed
number of available bits to represent pixels
Solution:
Capture multiple images at different exposures
Combine them using image processing
Detecting Image Defects using Histograms
No “best” histogram shape, depends on application
Image defects
Saturation: scene illumination values outside the sensor’s range are
set to its min or max values => results in spike at ends of histogram
Spikes and Gaps in manipulated images (not original). Why?
Image Defects: Effect of Image Compression
Histograms show impact of image compression
Example: in GIF compression, dynamic range is reduced
to only few intensities (quantization)
Original
Histogram
Original Histogram after GIF conversion
Image
Fix? Scaling image by 50% and
Interpolating values recreates
some lost colors
But GIF artifacts still visible
Effect of Image Compression
Example: Effect of JPEG compression on line graphics
JPEG compression designed for color images
Original histogram
has only 2 intensities
(gray and white)
JPEG image appears
dirty, fuzzy and blurred
Its Histogram contains
gray values not in original
Computing Histograms
Receives 8-bit image,
Will not change it
Create array to store
histogram computed
Get width and height of
image
Iterate through image
pixels, add each intensity
to appropriate histogram
bin
ImageJ Histogram Function
ImageJ has a histogram function
( getHistogram( ) )
Prior program can be simplified if we use it
Returns histogram as an
array of integers
Large Histograms: Binning
High resolution image can yield very large histogram
Example: 32‐bit image = 232 = 4,294,967,296 columns
Such a large histogram impractical to display
Solution? Binning!
Combine ranges of intensity values into histogram columns
Number (size of set) of pixels Pixel’s intensity is
such that
between ai and ai+1
Calculating Bin Size
Typically use equal sized bins
Bin size?
Example: To create 256 bins from 14‐bit image
Binned Histogram
Create array to store
histogram computed
Calculate which bin to
add pixel’s intensity
Increment corresponding
histogram
Color Image Histograms
Two types:
1. Intensity histogram:
Convert color
image to gray scale
Display histogram
of gray scale
2. Individual Color
Channel Histograms:
3 histograms (R,G,B)
Color Image Histograms
Both types of histograms provide useful information about
lighting, contrast, dynamic range and saturation effects
No information about the actual color distribution!
Images with totally different RGB colors can have same R, G
and B histograms
Solution to this ambiguity is the Combined Color
Histogram.
More on this later
Cumulative Histogram
Useful for certain operations (e.g. histogram equalization) later
Analogous to the Cumulative Density Function (CDF)
Definition:
Recursive definition
Monotonically increasing
Last entry of Total number of
Cum. histogram pixels in image
Point Operations
Point operations changes a pixel’s intensity value according
to some function (don’t care about pixel’s neighbor)
Also called a homogeneous operation
New pixel intensity depends on
Pixel’s previous intensity I(u,v)
Mapping function f( )
Does not depend on
Pixel’s location (u,v)
Intensities of
neighboring pixels
Some Homogeneous Point Operations
Addition (Changes brightness)
Multiplication (Stretches/shrinks image contrast range)
Real‐valued functions
Quantizing pixel values
Global thresholding
Gamma correction
Point Operation Pseudocode
Input: Image with pixel intensities I(u,v) defined on
[1 .. w] x [1 .. H]
Output: Image with pixel intensities I’(u,v)
for v = 1 .. h
for u = 1 .. w
set I(u, v) = f (I(u,v))
Non‐Homogeneous Point Operation
New pixel value depends on:
Old value + pixel’s location
(u,v)
Clamping
Deals with pixel values outside displayable range
If (a > 255) a = 255;
If (a < 0) a = 0;
Function below will clamp (force) all values to fall
within range [a,b]
Example: Modify Intensity and Clamp
Point operation: increase image contrast by 50%
then clamp values above 255
Increase contrast
by 50%
Inverting Images
2 steps
1. Multiple intensity by ‐1
2. Add constant (e.g. amax)
to put result in range
[0,amax]
Implemented as
ImageJ method
invert( ) Original Inverted Image
Image Negatives (Inverted Images)
Image negatives useful for enhancing white or
grey detail embedded in dark regions of an image
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Note how much clearer the tissue is in the negative
image of the mammogram below
Original Negative
s = 1.0 - r
Image Image
Thresholding
• Implemented as imageJ method threshold( )
Thresholding Example
Thresholding and Histograms
Example with ath =
128
Thresholding splits histogram, merges halves into a0 a1
Basic Grey Level Transformations
3 most common gray level transformation:
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Linear
Negative/Identity
Logarithmic
Log/Inverse log
Power law
nth power/nth root
Logarithmic Transformations
Maps narrow range of input levels => wider range of
output values
Inverse log transformation does opposite
transformation
TheNew
general
pixel value form of the
s = log
c * transformation
log(1 + r) is Old pixel value
Log transformation of Fourier transform shows more detail
s = log(1 + r)
Power Law Transformations
Power law transformations have the form
Power
s=c*r γ
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Old pixel value
New pixel value
Constant
Map narrow range of
dark input values into
wider range of output
values or vice versa
Varying γ gives a whole
family of curves
Power Law Example
Original
MagneticResonance
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
(MR) image of fractured s = r 0.6
human spine
s = r 0.4
Differentpower values
highlight different
details
Intensity Windowing
A clamp operation, then linearly stretching image
intensities to fill possible range
To window an image in [a,b] with max intensity
M
Intensity Windowing Example
Contrasts
easier to see
Point Operations and Histograms
Effect of some point operations easier to observe on histograms
Increasing brightness
Raising contrast
Inverting image
Point operations only shift, merge histogram entries
Operations that merge histogram bins are irreversible
Combining histogram
operation easier to
observe on histogram
Automatic Contrast Adjustment
Original intensity range
If amin = 0 and amax = 255
New intensity range
Effects of Automatic Contrast Adjustment
Linearly stretching
range causes gaps in
histogram
Original Result of automatic
Contrast Adjustment
Modified Contrast Adjustment
Histogram Equalization
Adjust 2 different images to make their histograms
(intensity distributions) similar
Apply a point operation that changes histogram of
modified image into uniform distribution
Histogram
Cumulative
Histogram
Histogram Equalization
Spreading out the frequencies in an image (or
equalizing the image) is a simple way to improve dark
or washed out images
Can be expressed as a transformation of histogram
rk: input intensity
sk: processed intensity
k: the intensity
range (e.g 0.0 –
1.0)
processed intensity sk T input intensity
(rk )
Intensity range
(e.g 0 – 255)
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Equalization Transformation Function
Equalization Transformation Functions
Different equalization function (1‐4) may be used
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Equalization Examples
1
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Equalization Examples
2
Images taken from Gonzalez & Woods, Digital Image Processing (2002)
Equalization Examples
4
3
References
Wilhelm Burger and Mark J. Burge, Digital Image
Processing, Springer, 2008
Histograms (Ch 4)
Point operations (Ch 5)
University of Utah, CS 4640: Image Processing Basics,
Spring 2012
Rutgers University, CS 334, Introduction to Imaging
and Multimedia, Fall 2012
Gonzales and Woods, Digital Image Processing (3rd
edition), Prentice Hall