\documentclass[12pt]{article}
\usepackage{html}

\pagestyle{empty}
\begin{document}
~
\vfill
\begin{center}

{\bf \LARGE PROJECT 5}
\vspace{0.25in}
\underline {{\bf CS6640 -- IMAGE PROCESSING}} \\
{\bf Spring Term 2009} \\
%\vspace{0.25in}
Assigned April 15, 2009 \\
Due May 1, 2009 (Just Before Midnight) \\
\end{center}

\vspace{0.05in}
\begin{center}
{\Large \bf  Feature Detection}
\end{center}
\vspace{0.25in}

\noindent
The goal of this project is to build a feature detection and
analysis system.  The system should take as input a greyscale image
and produce a set of {\em shape descriptions}.
\vspace{0.1in}

\section*{Preprocessing and Edge Detection}
\noindent
\underline{You will need to implement and demonstrate the operation of
  the following:}
\begin{itemize}
\item 
You should find (e.g. off the web, document your source) or implement
some {\em nonlinear}, edge preserving filter such as a median,
bilateral filter, or anisotropic diffusion.  
\item You should find (e.g. off the web, document your source) or
 implement a zero crossing algorithm, that produces 
single-pixel thick lines that divide images into positive and negative
regions.  
\item 
You should implement the Marr-Hildreth edge detector (zero crossings
of Laplacian---of the Gaussian, as neeeded), with a threshold on gradient
magnitude.   No need for hysterisis thresholding.  
For {\bf extra credit}, you can implement the Canny version of this
edge detector.
\item 
You should implement this as an {\em edge-detection pipeline} and experiment with
parameters and demonstrate it on a set of synthetic and real images of
your own choosing.

\section*{Line Detection}
\item 
You should find some test images that have strong lines --- synthetic
images are OK, but make sure you show some results on real photographs.
We have included several 
\htmladdnormallink{images}{../images}  
for testing purposes.
Find one or two others of your own.
\item 
You should use a Hough transform for the line detector (or argue
strongly for something else).  This transform is described on pages
??--?? in the book.
\item
Make sure you present the results visually.  The easiest way to do
this is to create a function that draws a set of colored pixels across the
image for each line it finds.   For {\bf extra credit}, you can implement
some intelligent clipping of these lines to conform to the data.
\end{itemize}

\noindent
\underline{Hints:}
\begin{itemize}
\item 
The edge detector should be in the form of a binary image. You then
should loop through that image and allow each pixel to contribute to
the accumulator space.
\item 
The hard part of this project is finding peaks in the accumulator
space.  Treat the accumulator space as another ``image''.
You should filter/smooth it.  Look for local maxima and then threshold, or
threshold (to find small blobs) and then find centers of these blobs
or iteratively ``whittle'' them down to a single pixel.
\item 
Debug your programs on some synthetic images, e.g. a white square on dark background.
\item 
Do the project in stages and present results at each stage.
\end{itemize}

\section*{Circle Detection---Analysis of Surface Mount IC Packaging}

\noindent
\underline{Extra credit:}
\begin{itemize}
\item 
Find something other than lines (e.g. circles, etc.).
\end{itemize}

\vfill
\vfill
\end{document}

