1 / 33

Computing for Engineers in Python

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

makan
Télécharger la présentation

Computing for Engineers in Python

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computing for Engineers in Python Lecture 10: Signal (Image) Processing Autumn 2011-12 Some slides incorporated from Benny Chor’s course

  2. 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

  3. 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

  4. 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

  5. Digital Images • Digital image is a numeric representation of a two-dimensional image • Examples: photos, microscopic, medical, astronomical 5

  6. 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

  7. 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

  8. Image Quantization Number of bits per pixel 24 bit RGB 16 colors Note that both images have the same pixel & spatial resolution

  9. 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

  10. An Example 10

  11. 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

  12. 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

  13. Loading and Viewing an Image http://www.pythonware.com/library/pil/handbook/image.htm http://en.wikipedia.org/wiki/Lenna 13

  14. Access Pixels 14

  15. Create and Save an Image 15

  16. Output 16

  17. Rotating an Image 17

  18. 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

  19. Edge Detection Example 19

  20. Blur and Noise Gaussian blur (sigma = 2) Gaussian noise Lena Salt and pepper noise 20 Credit: Wikipedia

  21. Denoising Algorithms • Examples: • Local means: replace observed pixel with neighborhood’s (usually 3x3 mask) average • Local medians: with neighborhood’s median 21

  22. 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

  23. Example In Tirgul 23

  24. Image Manipulation Full Example http://www.riisen.dk/dop/pil.html 24

  25. Image Segmentation 25

  26. Image Segmentation Algorithms • Thersholding • Clustering • Region growing • Compression-based methods • Histogram-based methods • Model-based methods • Etc. 26

  27. 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

  28. Example - Thresholding 28

  29. Example - Thresholding 29

  30. Results TH = 20 TH = 80 TH = 140 TH = 180 30

  31. 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

  32. Real World Application Face Detection Credit: Intel Technology Journal, Volume 09, Issue 01 32

  33. 33

More Related