330 likes | 483 Views
Computing for Engineers in Python. Lecture 10 : Signal (Image) Processing. Autumn 2011-12. Some slides incorporated from Benny Chor’s course. Lecture 9: Highlights. Sorting, searching and time complexity
E N D
Computing for Engineers in Python Lecture 10: Signal (Image) Processing Autumn 2011-12 Some slides incorporated from Benny Chor’s course
Lecture 9: Highlights • Sorting, searching and time complexity • Preprocessing(sorting) the data enables fast(O(log2n)) access to what we are interested in (searching) • Binary search algorithm + time complexity analysis • Comparing recursive vs. iterative implementations efficiency • Bubble sort + time complexity analysis • Is there a faster sorting algorithm? • Yes! (Quick Sort in tirgul) • Comparing Bubble sort to sorted efficiency • Generic sorting 2
More Sorting Algorithms • Insertion, Selection O(n2) in tirgul • Quick sort O(nlog2n) on average in tirgul • Average versus worst case analysis • "בהזדמנות" (maybe next week) • Merge sort O(nlog2n) worst case • Can we do better than O(nlog2n) in general? • Bucket sort 3
Signal Processing • In the physical world, any quantity measurable through time or over space can be taken as a signal • Signals are or electrical representations of time-varying or spatial-varying physical quantities • Signal processing: applying mathematical techniques for the extraction, transformation and interpretation of signals, in either discrete (digital) or continuous (analog) time • Example signals: radio, telephone, radar, sound, images, video, sensor data 4
Digital Images • Digital image is a numeric representation of a two-dimensional image • Examples: photos, microscopic, medical, astronomical 5
Image Representation • Encoded as a n-by-m matrix M • Each element M[x,y] in an image is called picture element (pixel), representing the light intensity / color at that location • RGB, gray-level images • Video – an image for each time t http://www.youtube.com/watch?v=bgtHKR0aQpQ&feature=related 6
Resolution Pixel resolution vs. spatial resolution Pixel resolution == pixel count depends on properties of the system creating the image, not just the pixel resolution Same number of pixels, different spatial resolution: http://www.youtube.com/watch?v=i2AQjjZp6Jk 7
Image Quantization Number of bits per pixel 24 bit RGB 16 colors Note that both images have the same pixel & spatial resolution
Gray Level Images • The remaining of class will deal with gray-level images (although can be applicable for color images) • 8 bits per pixel (256 gray levels), 0 – black, 255 – white • Other representations: • Binary – 1bit per pixel • Some applications use more colors (medical imaging) 9
An Example 10
Image Processing • Signal processing for which the input is an image • Typical operations: • Color corrections / calibration • Image segmentation • Image registration / alignment • Denoising • Typical applications: • Machine vision • Medical image processing • Face detection • Augmented reality 11
In Python • How to handle an image? • The Python Imaging Library http://www.pythonware.com/products/pil/ • Example tutorial: http://www.geeks3d.com/20100930/tutorial-first-steps-with-pil-python-imaging-library • The Image Module: http://www.pythonware.com/library/pil/handbook/image.htm • Capacities: • Read / write images • Display image • Basic image processing 12
Loading and Viewing an Image http://www.pythonware.com/library/pil/handbook/image.htm http://en.wikipedia.org/wiki/Lenna 13
Output 16
Edges • Sharp change in intensity between close pixels • Denoted edges • Usually captures much of the meaningful information in the image • Edge detection algortihms: Sobel Lena Laplacian 18
Blur and Noise Gaussian blur (sigma = 2) Gaussian noise Lena Salt and pepper noise 20 Credit: Wikipedia
Denoising Algorithms • Examples: • Local means: replace observed pixel with neighborhood’s (usually 3x3 mask) average • Local medians: with neighborhood’s median 21
Denoising Algorithms • Local means: • Pros: reduces noise on smooth areas, fast • Cons: blur edges, sensitivity to extreme values (e.g., as in salt and pepper noise) • Local medians: • Pros: preserve edges, not sensitive to extreme values • Cons: eliminate fine details (contours) in the image, slow 22
Example In Tirgul 23
Image Manipulation Full Example http://www.riisen.dk/dop/pil.html 24
Image Segmentation Algorithms • Thersholding • Clustering • Region growing • Compression-based methods • Histogram-based methods • Model-based methods • Etc. 26
Thresholding • Simplest segmentation method • Apply a threshold to turn a gray-scale image into a binary image • The key is to select the appropriate threshold value • Popular method – Otsu’s method (maximal variance) 27
Results TH = 20 TH = 80 TH = 140 TH = 180 30
HW – The Whole Loop • Input: noisy image • Output: segmented contours on top of input image • How? • Denoising • Edge detection • Thresholding (histogram based – Otsu’s algorithm) • Visualization 31
Real World Application Face Detection Credit: Intel Technology Journal, Volume 09, Issue 01 32