Instructor: Dr. Craig M. Wittenbrink
Office: Applied Science Bldg. #309
HP Phone: (415) 857 2329
UCSC Phone: (408) 459 4099
Lab Environment: Applied Sciences
Computer Engineering/Computer and Information Sciences educa
tional lab. Silicon Graphics Indy's and Indigos.
Location: Applied Sciences 213
Lab Hours: Any time, but you need a keycode
or Social Sciences 1. See World Wide Web URL:
http://wwwcatsic.ucsc.edu/Labs/labs.html for locations and times.
Equipment: Silicon Graphics Workstations.
The ImageVision libraries are object oriented image processing libraries with C++, C, and fortran bindings for creating image processing applications. Base classes allow working with many different image types by extending the classes. An introduction to the ImageVision library is given in [1]. There is also online information and man pages for the commands and classes, by man ilClassName. For example, try `man ilDisplay' on the SGI's. In 213, a manual has been locked to the tables, and there is additional on line information in /usr/local/ImageVision/documentation . They're PDF files that can be viewed either via netscape (via Open File...) or directly via Adobe Acrobat ( /usr/bin/acroread ). The class hierarchy consists of ilLink, Multi-threading, ilDisplay, and Miscellaneous. ilLink defines image operators and images associated with operators, which can be chained together through `links'. Many of the operators which I have discussed in class are directly available as function calls. There are options for the function calls, and many different image formats can be handled. Compression and decompression can also be handled transparently by the libraries. The goal of this lab is to get you familiar with using the ImageVision libraries, and also to reinforce the processing which we have discussed so far. If you have image sources of your own you are welcome and encouraged to use them. Images that I have placed for class use are in /projects/reinas/h/craig/CE261/ (cse machines) and /classes/cmpe261 (A.S. 213 machines). Some links to additional documentation:
In the directory
/usr/share/people/4Dgifts/exaples/ImageVision/
(hereafter
~) on CSE machines, and
/usr/local/ImageVision/
on
the 213 lab machines are several
directories which contain sample programs as well as sample images.
cd
mkdir ImageVision
Make a copy of the file in ~/ilguide/*.
cd ImageVision
cp -r ~/ilguide .
At the same directory level as the ilguide make the following soft link:
ln -s /usr/share/people/4Dgifts/examples/ImageVision/images images
Compile the various example programs, and run them on the example images
provided in
the ~ directory. For example to make a sample program use:
make sampleProgGL
To run the sample program use:
sampleProgGL ../images/eye.rgb
For other build examples, try
the sampleCProgX and
sampleCProgGL from the ilguide examples directory.
The other sample programs can be compiled in a similar fashion. Once you
have completed this step, implement the following project.
For those not familiar with the Silicon Graphics Workstations, here's a collection of commands that I've found useful to display, edit images, and the like:
Using the ImageVision Libraries, create a program which does histogram equalization, and geometric mapping on an image (in that order). The purpose of the geometric mapping is for image based rendering to correct for the perspective view of the camera to an intermediate view for warping to create new viewpoints. See Seitz et al. [2]. An image taken from a digital camera of a room scene, or a scanned image is to be used. Use the image found on the homepage of the class. The interactivity is up to the student, and there are ideas in Seitz work. The requirement for the warp is that the image is not destroyed, that the warp does what you intend, and that you provide some means for controlling the warp. In future labs, realize that we will build on the capabilities of the warping for image based rendering.
You will run the programs for me, so that I can see them work. We will go to the lab so each person may run their program, and see the results of the colleagues work. Also turn in a printout or listing of your program, and a brief description (one or two paragraphs) of the approach you used, especially the user interactions you allow, and the map projection chosen, as well as how it was implemented.
[1] ImageVision Library Programming Guide, by Jackie Neider and Eleanor Bassler, Document Number 007-1387-030, Silicon Graphics, 1993.
[2] View Morphing, by Steven M. Seitz and Charles R. Dyer, in the Proceedings of SIGGRAPH'96, pages 21-30.
Copyright, Craig Wittenbrink, 1997. craig@hpl.hp.com Last modified Monday, 06-Apr-1998 23:25:22 PDT.
Back to the CE / CS Class Home Pages.
Back to the CE / CS Home Page.