sorted

advertisement
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
Download