Outline/Reading: |
1 | Introduction |
Ch 1 |
2 | Octave and Matlab |
web |
3 | Fourier Transforms |
Ch 3.2 |
4 | Sampling |
Ch 3.2 |
5 | Binary Images |
Ch 8.1, 13 |
6 | Image Processing |
Ch 5 |
7 | Re-sampling |
Moik page 109 |
8 | Pixel Matching |
Ch 6.4, Ballard and Brown, and notes |
9 | Optical Flow |
Ch 16.2 |
10 | Stereo |
Ch 11.5 |
11 | Image Registration |
Ch 11.2 |
12 | Camera Calibration |
Ch 11.3 |
13 | Image and Video Compression |
Ch 14, handout |
14 | Pattern Recognition |
Ch 9.1, 9.2 |
|
Wiki: |
Your TA, Jim Young is maintaining a
wiki for the course.
|
Assignments: |
General Instructions
- The first assignment is required and has a hard
deadline (see below).
- You can select which of the remaining assignments you
want to do.
- Your grade for the assignment portion of the course will
be computed from the first assignment plus your
best four grades from the others.
- After assignment 1 you may hand in assignments at any
time but the following conditions apply
- You may only hand in one assignment per
week, and
- All assignments are due before the end of
term by the deadline indicated below.
Note that this means that it would be unwise to wait
until the last week of classes to hand in assignments
because only one will be graded.
- Limit the written portion of any assignment to 2
pages, 12pt text, 1 inch margins. You may submit
additional pages for code and plots. The goal is to
force you to be succinct and save
the marker's time.
Hand-in
Hand in assignments to your TA, Jim Young by email
(jyoung at cpsc dot ucalgary dot ca), or check the
course
wiki for instructions.
This assignment is required:
- Assignment 1 - Introduction to Matlab and Octave
(.ps or
.pdf)
You may do any number of the following assignments. Your best four
will contribute to your grade.
- Assignment 2 - The Discrete Fourier Transform
(.ps or
.pdf). Try this
sample pgm image for
part 2. You do
not have to convert it from bmp.
- Assignment 3 - Inverse Filtering for Image Restoration
(.ps or
.pdf)
- files
- Assignment 4 - Pattern Recognition I: Character
Recognition
(.ps or
.pdf)
- files
- Assignment 5 - 3D Computer Vision: Follow the Bouncing
Ball
(.ps or
.pdf)
- files
- Assignment 6 - Pattern Recognition II: Counting Beans
(.ps or
.pdf)
- files
- Assignment 7 - Image Registration
(.ps or
.pdf)
- files
Mann and Picard - a paper
describing one method to do registration automatically.
- Assignment 8 - Stereo Vision
(.ps or
.pdf)
- files
Alternatively, you may invent your own assignment if you want to try
something that is not already here. Please talk to the instructor
first though.
|
Important Dates: |
24-Sep-07 0900h |
Assignment 1 Due |
1-Nov-07 0930h |
Midterm Exam in-class |
3-Dec-07 0900h |
Last day to hand in assignments |
10-Dec-07 1200 - 1400h |
Final Exam (location TBA) |
|
|
Miscellaneous Material: |
Here are files containing code that you may find useful or that I
used for a demonstration in class.
- optimizatin and least-squares
notes
- sample images
- octave for windows - try
Octave Forge for Windows
- but beware, it may conflict with Cygwin.
- gnuplot tutorial
- Fast octave resampling using bi-linear interpolation
(resample.m)
- 2D convolution in octave - this is almost compatible
with the Matlab version - not necessary for octave 2.9
(conv2.m)
- Component labelling algorithm for octave. This is
written as a C extension to octave because the algorithm
does not vecorize well. Use mkoctfile to build the
executable. This is almost compatible with the Matlab
bwlabel. Distributed with octave 2.9.
(bwlabel.cc)
- An easy-to-use image file format is pnm. You can get
information about this file format on a Unix system
using:
- man pnm
- man ppm
- man pgm
- man pbm
I have written some octave function to read and write
pnm/png files
If you are stuck using an older version of octave, try
these
- In-class Fourier series demonstration -
fourier1.m
- In-class convolution demonstration -
convdemo.m
- In-class resampling demonstration -
resample.m,
resamplenn.m,
resampledemo.m,
resamplenndemo.m,
rowcoords.m,
colcoords.m,
mona.tif
- Pixel matching demo.
- Examples of Lucas-Kanade least-squares optical flow and
edge detection on a hockey sequence.
- hockey.mpg -
the original sequence
- u.mpg - optical
flow in the x direction
- v.mpg - optical
flow in the y direction
- mask.mpg -
validity of optical flow - black is no flow
measurable, grey is gradient flow, and white
is least-squares flow
- edges.mpg -
edge map for the original sequence -
indicates large gradient values
- Karhunen-Loeve transform, covariance matrices,
Mahalanobis distances example -
kl.m and
ellipse.m
- Shannon Jaeger wrote this modified version of
image.m for use in octave
along with some
instructions.
- Documentation for an MPEG
codec. Good chapter on DCT compression. In
.ps too.
|
Links: |
- Matlab and Octave
- Some Matlab Tutorials:
-
CMU Robotics Computer Vision Home Page a good
starting point for computer vision questions.
- an excellent
phasor demo that can help visualize sums of
sinusoids in Fourier analysis.
- A useful resource on
The Kalman Filter
- Several on-line books are available that may be of
interest.
- D.H. Ballard, C.M. Brown; Computer Vision , Prentice-Hall Inc New Jersey , 1982 , ISBN 0-13-165316-4 .
- D. Phillips; Image Processing in C: Analyzing and Enhancing Digital Images, RandD Publications, 1994.
- D. Vernon; Machine Vision : Automated Visual Inspection and Robot Vision, Prentice Hall, 1991, ISBN 0-13-543398-3.
- E.W. Weisstein; Mathworld , Online book.
- I.T. Young, J.J. Gerbrands, L.J. van Vliet; Image Processing Fundamentals , Online book.
- J. G. Moik,
Digital processing of remotely sensed images, NASA, 1980.
|
Text: |
M. Sonka, V. Hlavac, and R. Boyle, Image Processing
Analysis and Machine Vision, Third Edition, Thomson,
Toronto, Canada, 2008.
|