Chapter 5 Digital Image Processing Fundamentals Learning Goals

  • Slides: 25
Download presentation
Chapter 5 Digital Image Processing Fundamentals

Chapter 5 Digital Image Processing Fundamentals

Learning Goals • The human visual system • Digitizing images • Display of Images

Learning Goals • The human visual system • Digitizing images • Display of Images

Trading an eye for an ear

Trading an eye for an ear

An eye is a Multi-mega pixel camera • • It has a lens (adjustable

An eye is a Multi-mega pixel camera • • It has a lens (adjustable zoom) It has an automatic f-stop (iris 2 -8 mm) It has a sensor plane (100 million pixels) The sensor has a transfer function senstive to mesopic range; 380 to about 700 nm

The eyes have a USB 2 data rate! • • • 250, 000 neurons

The eyes have a USB 2 data rate! • • • 250, 000 neurons in the optic nerve variable voltage output on EACH nerve 17. 5 million neural samples per second 12. 8 bits per sample 224 Mbps, per eye (a 1/2 G bps system!). Compression using lateral inhibition between the retinal neurons

Response curves • Eye has Gaussian response to light. • Gives rise to biologically

Response curves • Eye has Gaussian response to light. • Gives rise to biologically motivated image processing

Quantization of an Image • Computers use digital cameras -> quantization

Quantization of an Image • Computers use digital cameras -> quantization

Sampling an Image

Sampling an Image

Sampling=convolution w pulse train

Sampling=convolution w pulse train

Quantization Error is visible

Quantization Error is visible

Displays • Color Monitors are made for people

Displays • Color Monitors are made for people

Chapter 6 -7 • Opening and Saving Images

Chapter 6 -7 • Opening and Saving Images

Chapter 8 Convolution with a kernel, g(x)

Chapter 8 Convolution with a kernel, g(x)

Region of Support • The region of support is defined as that area of

Region of Support • The region of support is defined as that area of the. kernel which is non-zero • linear convolution: =signal has infinite extent but kernel has finite support • If function has finite region of support we have compact support

Real images have finite region of support • But we treat them as periodic

Real images have finite region of support • But we treat them as periodic and infinite! • We repeat kernels so that they have the same period as the images. • We call this cyclic convolution.

Convolution in 2 D

Convolution in 2 D

Avoid the Mod op

Avoid the Mod op

What is wrong with avoiding the mod op? • How do I find the

What is wrong with avoiding the mod op? • How do I find the center of the kernel?

Cyclic Convolution

Cyclic Convolution

Implementing Convolution for(int y = 0; y < height; y++) { for(int x =

Implementing Convolution for(int y = 0; y < height; y++) { for(int x = 0; x < width; x++) { sum = 0. 0; for(int v = -vc; v <= vc; v++) for(int u = -uc; u <= uc; u++) sum += f[cx(x-u) ][cy(y-v)] * k[ u+uc][v+vc]; if (sum < 0) sum = 0; if (sum > 255) sum = 255; h[x][y] = (short)sum; } }

What happens to the image if you ignore the wrap?

What happens to the image if you ignore the wrap?

Cyclic Convolution keeps the edges

Cyclic Convolution keeps the edges

Can you think of a better way to implement convolution? • Keep the edges!

Can you think of a better way to implement convolution? • Keep the edges! • Don’t use the mod operation. • How about growing the image by the size of the kernel*2?

Convolution is slow, how can I speed it up? • JAI! • FFT!? •

Convolution is slow, how can I speed it up? • JAI! • FFT!? • Other ideas?