Image processing Subhransu Maji CMPSCI 670: Computer Vision - - PowerPoint PPT Presentation

image processing
SMART_READER_LITE
LIVE PREVIEW

Image processing Subhransu Maji CMPSCI 670: Computer Vision - - PowerPoint PPT Presentation

Image processing Subhransu Maji CMPSCI 670: Computer Vision September 22, 2016 Slides credit: Erik Learned-Miller and others Image formation 2 CMPSCI 670 Subhransu Maji (UMass, Fall 16) Pre-digitization image What is an image before you


slide-1
SLIDE 1

Subhransu Maji

CMPSCI 670: Computer Vision

Image processing

September 22, 2016

Slides credit: Erik Learned-Miller and others

slide-2
SLIDE 2

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Image formation

2

slide-3
SLIDE 3

Subhransu Maji (UMass, Fall 16) CMPSCI 670

What is an image before you digitize it?

  • Continuous range of wavelengths
  • 2-dimensional extent
  • Continuous range of power at each point

Pre-digitization image

3

slide-4
SLIDE 4

Subhransu Maji (UMass, Fall 16) CMPSCI 670

To simplify, consider only a brightness image

  • Two-dimensional (continuous range of locations)
  • Continuous range of brightness values

This is equivalent to a two-dimensional function over a plane

Brightness images

4

slide-5
SLIDE 5

Subhransu Maji (UMass, Fall 16) CMPSCI 670

An image as a surface

5

How do we represent this continuous two dimensional surface efficiently?

slide-6
SLIDE 6

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Sampling strategies

  • Spatial sampling
  • How many pixels?
  • What arrangement of pixels?
  • Brightness sampling
  • How many brightness values?
  • Spacing of brightness values?
  • For video, also the question of time sampling.

Discretization

6

slide-7
SLIDE 7

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Goal: determine a mapping from a continuous signal (e.g. analog video signal) to one of K discrete (digital) levels.

Signal quantization

7

slide-8
SLIDE 8

Subhransu Maji (UMass, Fall 16) CMPSCI 670

I(x,y) = continuous signal: 0 ≤ I ≤ M Want to quantize to K values 0,1,....K-1 K usually chosen to be a power of 2: Mapping from input signal to output signal is to be determined. Several types of mappings: uniform, logarithmic, etc.

Quantization

8

K: #Levels #Bits 2 1 4 2 8 3 16 4 32 5 64 6 128 7 256 8

slide-9
SLIDE 9

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Choice of K

9

slide-10
SLIDE 10

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Choice of K

10

slide-11
SLIDE 11

Subhransu Maji (UMass, Fall 16) CMPSCI 670

False contours problem

11

“Dithering” adds random noise to reduce false contours 16 colors with random noise

https://en.wikipedia.org/wiki/Dither

  • riginal image
slide-12
SLIDE 12

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Uniform sampling divides the signal range [0-M] into K equal-sized intervals. The integers 0,...K-1 are assigned to these intervals. All signal values within an interval are represented by the associated integer value. Defines a mapping:

Choice of the function: uniform

12

slide-13
SLIDE 13

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Signal is: log I(x,y) Effect is: Detail enhanced in the low signal values at expense of detail in high signal values.

Logarithmic quantization

13

slide-14
SLIDE 14

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Logarithmic quantization

14

slide-15
SLIDE 15

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Given a 24 bit color image (8 bits for R, G, B)

  • Turn on 3 subpixels with power proportional to RGB values

Color displays

15

https://en.wikipedia.org/wiki/File:Pixel_geometry_01_Pengo.jpg

A single pixel.

slide-16
SLIDE 16

Subhransu Maji (UMass, Fall 16) CMPSCI 670

“White” text on color display

16

http://en.wikipedia.org/wiki/Subpixel_rendering

slide-17
SLIDE 17

Subhransu Maji (UMass, Fall 16) CMPSCI 670

8 bit image: 256 different values. Simplest way to display: map each number to a gray value:

  • 0 g (0.0, 0.0, 0.0) or (0,0,0)
  • 1 g (0.0039, 0.0039, 0.0039) or (1,1,1)
  • 2 g (0.0078, 0.0078, 0.0078) or (2,2,2)
  • ...
  • 255 g (1.0, 1.0, 1.0) or (255,255,255)

This is called a grayscale mapping.

Lookup tables

17

slide-18
SLIDE 18

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Lookup tables

18

slide-19
SLIDE 19

Subhransu Maji (UMass, Fall 16) CMPSCI 670

We can also use other mappings:

  • 0 g (17, 25, 89)
  • 1 g (45, 32, 200)
  • ...
  • 255 g (233,1,4)

These are called lookup tables.

Non-gray lookup tables

19

slide-20
SLIDE 20

Subhransu Maji (UMass, Fall 16) CMPSCI 670

More colormaps

20

colormap jet; colormap winter;

slide-21
SLIDE 21

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Fun with Matlab

21

slide-22
SLIDE 22

Subhransu Maji (UMass, Fall 16) CMPSCI 670

What can we do to “enhance” an image after it has already been digitized?

  • We can make the information that is there easier to visualize.
  • We can guess at data that is not there, but we cannot be sure, in

general.

Enhancing images

22

contrast enhancement deblurring

slide-23
SLIDE 23

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Two methods:

  • Normalize the data (contrast stretching)
  • Transform the data (histogram equalization)

Contrast enhancement

23

slide-24
SLIDE 24

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Contrast stretching

24

histogram before after

image source: wikipedia

map this to 255 map this to 0

slide-25
SLIDE 25

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Basic idea: scale the brightness range of the image to occupy the full range of values Issues:

  • What happens if there is one bright pixel?
  • What happens if there is one dark pixel?

Contrast stretching

25

I ← floor ✓ I − min(I) max(I) − min(I) × 255 ◆

map this to 0 map this to 255

slide-26
SLIDE 26

Subhransu Maji (UMass, Fall 16) CMPSCI 670

imcontrast() — contrast stretching

Matlab demo

26

slide-27
SLIDE 27

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Histogram equalization

27

histogram before after

make the distribution close to the uniform distribution

slide-28
SLIDE 28

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Histogram equalization

28

https://en.wikipedia.org/wiki/Histogram_equalization

pn = number of pixels with intensity n total number of pixels n ∈ {0, L − 1} T(k) = floor (L − 1)

k

X

n=0

pn ! If each intensity value k is mapped to T(k) Then T(k) is roughly a uniform distribution (why?) Let,

slide-29
SLIDE 29

Subhransu Maji (UMass, Fall 16) CMPSCI 670

Histogram equalization

29

source: http://www.math.uci.edu/icamp/courses/math77c/demos/hist_eq.pdf approximately uniform