CSCI 373 - Image Processing
This Week in 373 Schedule Resources Bad Weather Policy

REQUIRED TEXTS
Russ, John C .The Image Processing Handbook, 4th Edition
ISBN: 084931142X
TIME
M 6:00-8:30 PM
RH222
INSTRUCTOR
Susan Reiser
Office: KH 109
Office Hours: 10:45-11:45 M, W, Th or by appointment
Office Phone: 250-3868
E-Mail: reiser@cs.unca.edu
BAD WEATHER POLICY

DESCRIPTION This class will study image processing theory and techniques. Topics will include but not be limited to image acquisition, segmentation, filters, transformations and image visualization.

INFORMATION This class will involve some programming assignments as well as other homework assignments. Late assignments will not be accepted. Programs that do not produce graphic output (even if they compile)will not receive a grade above a "D". Programs that do not compile will automaticallyreceive an "F". If you know you will be absent the date a program is due, pleasemake arrangements to turn in your program prior to the class.

Students will be asked to present their homework during class onthe day that they are due. Have your project ready at the beginning ofclass. Email me your homework. If it is a programming project please email your sourcecode (not the project or executable) asan attachment via email.

There will not be makeup exams. Please do not ask me to make an exception unless it is an emergency, and you have the necessary documentation for anexcused absence.

Plus and minus grades will be used for your final grades.

WHICH OPERATING SYSTEM SHOULD YOU USE FOR YOUR HOMEWORK? It doesn't matter whether you use Windows, UNIX, Linux or OSX for your programming assignments. Photoshop is available in RBH 233 or KH 245 on OSX and XP. Please request a pass to Karpen if you want to work late at night or very early in the morning when the building will be locked. The Image Processing Toolkit (IPTK) is only available in RBH 223. All three operating systems support OpenGL (well... on Linux you will need to download Mesa). You will need to install GLUT on all platforms.

TEAMWORK ON PROGRAMS It is acceptable to work with other students in the analysis, design, and debugging phases of your programming assignments. However, unless it is a team project, do not write code or homework assignments as a team. Do not copy your code from or for another student. Do not copy the code you hand in from a book or the WWW. Please list the students with whom you collaborated, and the type of help you gave or received in a comment at the top of your program. Try not collaborate with the same person(s) on successive assignments.

For any other assignments, quizzes and tests you must do your own work.


Course Schedule

08/22/05
Intro to the course
What is Image Processing?
Reading Homework - Read Chapter 1
Homework 1a assigned - Due 08/29/05
 
08/29/05
Chapter 1 - Acquiring Images
Cluster Reading: Rosen, Jeffery. Roberts v. the Future, NYTimes Magazine, Aug 28, 2005.
Reading Homework - Read Chapter 2
Homework 1b assigned - Due 09/12/05
 
09/05/05
Enjoy your Labor Day Holiday!
 
09/12/05
Chapter 2 - Printing and Storage
Cluster Reading: DeParle, Jason. What Happens to a Race Deferred, NYTimes, Sept 4, 2005.
Reading Homework - Read Chapter 3
Homework 2 assigned - Due 09/19/05
 
09/19/05
Chapter 3 - Correcting Image Defects
Cluster Reading: Freudenheim, Milt. Doctors Join to Promote Electronic Record Keeping, NYTimes, Sept 19, 2005.
Reading Homework - Read Chapter 4
 
09/26/05
Guest lecture by Reindeer Graphics President, Chris Russ
Chapter 4 - Image Enhancement (Processing in the Spatial Domain)
Cluster Reading: The Digital Home: Science Fiction, The Economist, Sept 1, 2005.
Homework - Study for next weeks test on Chapters 1-4
 
10/03/05
Test 1
Reading Homework - Read Chapter 5
Cluster Reading: MPEG-4 AVC/H.264, dicus digital, 2004.
Enjoy your fall break 10/5-9/05!
 
10/10/05
Chapter 5 - Processing Images in Frequency Space
Homework 3 assigned - Using OpenGL, write a program which displays an image and when the user presses the 'h' key plots a histogram of the image. The user should be able to toggle back to the image by pressing the 'i' key. This is due 10/17/05
Reading Homework - Read Chapter 6
 
10/17/05
Chapter 6 - Segmentation and Thresholding
Reading Homework - Read Chapter 7
Cluster Reading: 1) "DigitalCustom Model Ethics Guidelines." March 2003.
2) National Press Photographers Association. "Ethics in the Age of Digital Photography."
Homework 4 assigned - due 10/24/05
 
10/20/05
12:30-1:30 Meet in the basement of Robinson Hall, by the stairwell, for a SEM presentation by Mr. Herb Pomfrey, UNCA Biology Department. Bring a small sample for him to scan: a coin, small piece of jewelry, insect, etc.
 
10/24/05
Chapter 7 - Processing Binary Images
Homework - Read Chapter 11
Homework 5 assigned - due 10/31/05
Cluster Reading: 1) Park, Alice and Cristina Scalet. "Your Choices in Heart Scans" Time Magazine. September 5, 2005.
Note: Today is the last day to withdraw for full semester courses.
 
10/31/05
Project assigned - due at final exam time.
Homework - Read Chapter 12
 
11/07/05
Chapters 11 - 3D Image Acquisition
Project assigned - due at final exam time.
Homework - Read Chapter 12
 
11/14/05
Logic Due for Project (40%)
Chapter 12, 3D Image Visualization
Study for Test 2 on Chapters 5-7 and 11-12
 
11/21/05
Test 2 on Chapters 5-7 and 11-12.
Homework - Work on Final Project
Enjoy your Thanksgiving Holiday 11/23-27/05!
 
11/28/05
2nd Phase of the project due 11/30 (20%)
Last day of class 11/28.
 
12/05/05 - tentative exam time, Monday 6:00 PM
Final project presentations.

Grading

Description Number Individual Points Net Points
Test 2 25 50
Project 1 25 25
Presentation 1 10 10
Homework & Programming Assignments 5 6 30
Totals 115 points

Resources

Misc.

  1. Computer Lab Hours
  2. OpenGL.org
    1. How to install OpenGL
    2. Getting Started with OpenGL
  3. OpenGL Commands
  4. Graphics Library Utility Toolkit (GLUT)
  5. Nate Robin's Tutorials
  6. Internship Possibilities
  7. GLUT with .net used with permission from Professor Williams at Texas A&M
  8. Development environment for Windows - not .net
    1. Cygwin: a *nix emulator for Windows - which allows gcc
    2. Jedit: free source code editor
    3. Eclipse: IDE
  9. ImageMagick
  10. image.c
  11. line.c
  12. imgproc.c, texture.c, texture.h, mandrill.rbg
  13. To use png images in your first programming assignment, you will need GLpng. There is a template program that you can modify for this assignment at histo.c.
  14. Sample medical grayscale images from the Visible Human Project: from CT Scans (head_fresh.jpg, head_frozen.jpg) and MRI scans (thighs_mri.jpg, head_mri.jpg).
  15. A solution for the threshold program.

 

Visual Studio

  1. Download the dll and necessary glut files
  2. Move the glut32.dll to C:\Windows\System\ directory
  3. Move the glut.h file to C:\Program Files\Microsoft Visual Studio\Vc98\Include\GL\ directory
  4. Move the glut32.lib to C:\Program Files\Microsoft Visual Studio\Vc98\Lib\ directory

.NET (not needed for .NET in RBH 004)

  1. Same as above but place the files in the C:\Program Files\Microsoft Visual Studio .NET\Vc7\* directories.
  2. Select Resources View, configuration, C/C++, Precompiled Headers, Create/Use Precompiled Header, Not Using Precompiled Headers.
  3. Select Resources View, Linker, Command Line. In the additional options box, add opengl32.lib glut32.lib glu32.lib. Select apply and ok.
  4. Comment out the following preprocessor directive: #include <stdlib.h>
  5. Select Resources View, Linker, System, SubSystem. Make sure Windows (/SUBSYSTEM:WINDOWS) is selected.
  6. Select Resources View, Linker, Advanced. Set Entry Point to mainCRTStartup
  • As an alternative to steps 5&6, you can include the following one line preprocessor directive at the top of your code. It does steps 5&6 for you.

    #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

dev-c++ on PC (thanks to Caleb)

  1. Download and install Dev-C++
  2. Get the glut files (versions specific to Dev-C++)from http://www.mcs.sdsmt.edu/csc433/GLUT/MinGW/.Move glut.h into the Dev-cpp/include/GL directory.Move libglut32.a into the Dev-cpp/lib directory.
  3. Under Project->Project Options, there is aParameters tab. Underthis tab, in the Linker text box, add the following INTHIS ORDER using the "add library or object" button:libopengl32.a,libglu32.a, and libglut32.a(*not* libglu.a and libglut.a !)

gcc on Mac OSX

  1. Modify the preprocessor directive to read #include <GLUT/glut.h>
  2. Make sure the GLUT and OpenGL frameworks are installed. They are included with the OSX disks.
  3. To compile, use the following from the terminal window command line. gcc -framework OpenGL -framework GLUT -framework Foundation -o basicBoat basicBoat.c
  4. To execute, double click the new UNIX executable, basicBoat in the example above.

Return to Susan Reiser's home page

Last modified: 21 November, 2005