630 likes | 777 Views
Chapter 5. Digital Image Processing Fundamentals. Learning Goals. The human visual system Digitizing images Display of Images. Trading an eye for an ear. An eye is a Multi-mega pixel camera. It has a lens (adjustable zoom) It has an automatic f-stop (iris 2-8 mm)
E N D
Chapter 5 Digital Image Processing Fundamentals
Learning Goals • The human visual system • Digitizing images • Display of Images
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 USB2 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 motivated image processing
Quantization of an Image • Computers use digital cameras -> quantization
Displays • Color Monitors are made for people
Chapter 6-7 • Opening and Saving Images
Convolution 1D and 2D signal processing
Convolution Thm multiplication in the time domain = convolution in the frequency domain
Spectrum reproduced spectrum to be reproduced at intervals
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 and infinite! • We repeat kernels so that they have the same period as the images. • We call this cyclic convolution.
What is wrong with avoiding the mod op? • How do I find the center of the kernel?
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; } }
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!? • Other ideas?
Chapter 9 • Spatial Filters • Blurring • Median Filtering • Hi-pass filtering • SpatialFilterFrame and JAI
Why Blur an Image? • Remove Noise • Other ideas?