Computing for Engineers in Python Lecture 10: Signal (Image) Processing Autumn 2011-12 Some slides incorporated from Benny Chor’s course 1 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 timevarying 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: The Image Module: http://www.geeks3d.com/20100930/tutorial-first-steps-with-pil-python-imaging-library 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 Access Pixels 14 Create and Save an Image 15 Output 16 Rotating an Image 17 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 Edge Detection Example 19 Blur and Noise Gaussian blur (sigma = 2) Gaussian noise Lena Credit: Wikipedia Salt and pepper noise 20 Denoising Algorithms • Examples: • Local means: replace observed pixel with neighborhood’s (usually 3x3 mask) average • Local medians: with neighborhood’s median x 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 x 22 Example In Tirgul 23 Image Manipulation Full Example http://www.riisen.dk/dop/pil.html 24 Image Segmentation 25 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 Example - Thresholding 28 Example - Thresholding 29 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 33