CS329
Fall 1998
Homework Assignment
Due at beginning of class on Tue, Nov. 3
TA: Lise Getoor, Gates 1A-126, getoor@robotics.stanford.edu
Instructor: Feng Zhao, zhao@parc.com
In this assignment, you will be using Spatial Aggregation operators
to perform the region growing task in image analysis, ie., to extract regions
of similar pixels from an input bitmap, and familiarize yourself with the
SAL programming environment, data representation, and operators.
1. (10 points) Write Spatial Aggregation pseudo code for the
region growing task:
Input: bitmap of pixels
Output: regions of pixels with the same intensity values
Your task - Report your choice of:
-
Field representation
-
Levels of aggregations (discussing why the choice)
-
Operators for each level
-
Pseudo code for the entire task
2. (10 points) As we have seen in class, for a given problem, there
are often several possible ways of forming spatial aggregations. The choices
of the level of aggregations, metric space, neighborhood and equivalence
relations are constrained by the available input data, task and output
requirements, and computational considerations such as efficiency.
Propose your criteria for evaluating alternative aggregation
schemes using a concrete example. You will need to pick a problem and compare
two possible aggregation schemes.
3. (5 points) Familiarize yourself with the SAL programming environment:
The course directory is /usr/class/cs329 on the leland machines.
SAL is available in /usr/class/cs329/SAL/. There is documentation in the
/usr/class/cs329/SAL/doc subdirectory. The documentation is in html format;
open the /usr/class/cs329/SAL/doc/index.html file from your favorite browser. Example
programs are in the /usr/class/cs329/SAL/clientsc subdirectory. There are
a number of sample SAL programs for various tasks such as boundary tracing
in image analysis (boundary.oc), vector field bundling (vect.oc), and finite-difference
computation (elliptic_fd.oc). Each sample program has a header which
describes the program input and output.
Your task:
-
The executable for boundary is available in the /usr/class/cs329/bin directory
(You may wish to source /usr/class/cs329/bin/SAL-setup to add /usr/class/cs329/bin
to your path). There is a sample input file, boundary.in, available in
the /usr/class/cs329/clients directory. Play with the boundary sample program,
paying special attentions to the input, output, and SAL operators used
to map the input to output.
-
Summarize how the boundary program works using SAL operators aggregate,
classify, and redescribe, and their parameters. Turn in your
summary.