Computer Science Department

CS510

Computer Graphics

Spring 1999


 Burns Line Extraction Lab.

 Due Thursday, April 23rd, 1999

 Assignment Updated: April 16, 1999

Introduction

In this lab, you will develop a C or Java implementation of the Burns Line Extraction algorithm. The algorithm groups pixels of like gradient orientation into edge support regions and fits line segments to these regions. The resulting line segments are abstracted features representing straight edges in an image. The algorithm was published in "Extracting Straight Lines", by J. B. Burns, A. R. Hanson and E. M. Riseman, IEEE Transactions on Pattern Analysis and Machine Intelligence, July 1986, pg 425-455.

A complete annotated version of the algorithm is being provided to you in a Maple Worksheet. You are to use this as a guide as you develop your own code.

I/O for your program.

Your program should take two arguments. The first is the name of a pgm file containing a greyscale image from which to extract line segments. The second is the name of the file into which you are write the line segments. The format of this second file should be:

 x1 y1 x2 y2
 x1 y1 x2 y2
 ....      
 x1  y1  x2  y2

where each row represents a different line segment.

You should run your algorithm on three test images. The first two are:

 BurnsTest.pgm A small piece out of the upper left corner of the caged sphere.
 CagedSphereGreyscale.pgm  The caged sphere image converted to greyscale.

A Warning, these files contain binary data. Save them to your directory but do not view them!

Here is a program, and makefile, for displaying these line segments over the source image to assist in visualizing the resulting line segments. This program places the origin at the lower left. Note this is different from the Maple Worksheet, which places the origin in the upper right. Also note that the OpenGL libraryies must be in your LD_LIBARY_PATH on Sun Sparcs. You will need the following somewhere, typically your .cshrc:

setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH\:/s/parsons/l/sys/Mesa-3.0/lib/SunOS/

Approach

Little guidance is provided here because you are already being provided a working template for the algorithm in the form of the Maple worksheet. You are very strongly encouraged to develop your code incrementally and to test it along side the Maple version. A note abut documentation. You should cite the Maple Worksheet as your blue print algorithm. You may follow this code closely. However, do not cut and paste comments. You should document your code in your own words!

What to Turn In

Use the submitlab program to turn in all your source code and an associated Makefile. Include a README file with your name, what machine (HP or SUN) you developed you code on, and any other appropriate comments. If you write your program in Java, you need not supply a Makefile. However, turn in all of the necessary class files and indicate which of these is the top level class.

Programs are due at the beginning of class on the day they are due. Programs one class period late will be marked down 10%. Programs two class periods late will be marked down 30%. Programs turned in after that will receive zero credit.


CS510 Home

Copyright © 1998 J. Ross Beveridge