1 / 31

Computing for Imaging Science (SIMG-726)

Computing for Imaging Science (SIMG-726). Introduction. Course Information Course Objective Prerequisites/Expectations Course Grading Course Text Computing Resources. Course Information. Course Title Computing for Imaging Science Course Number SIMG 726 or 10-51-726-01 Meeting Times

Download Presentation

Computing for Imaging Science (SIMG-726)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computing for Imaging Science (SIMG-726)

  2. Introduction • Course Information • Course Objective • Prerequisites/Expectations • Course Grading • Course Text • Computing Resources Rolando V. Raqueño

  3. Course Information • Course Title • Computing for Imaging Science • Course Number • SIMG 726 or 10-51-726-01 • Meeting Times • Monday and Wednesdays 10:00-11:50 PM • Meeting Locations • Mondays (76-2155), Wednesdays (76-2155) Rolando V. Raqueño

  4. Contact Information • Instructor • Rolando Raqueño • E-mail (rolo@cis.rit.edu) • Phone (475-6907) • Office (76-3108) • Office Hours • Monday and Wednesdays • 2:00-2:50 PM • Other times by appointment Rolando V. Raqueño

  5. Course Objective • Basic proficiency in UNIX operating system for problem solving in imaging • Learning elementary programming constructs in IDL and refinement of programming skills • Useful data manipulation techniques • Establish software development, validation, and documentation practices Rolando V. Raqueño

  6. UNIX Proficiency • Basic UNIX Environment Proficiency • X-Windowing Environment (networked) • The universally available editor “vi” • Navigation and File Manipulation • Understanding Basic Computing Data Type and Hardware differences • Documentation Tools (LaTeX) Rolando V. Raqueño

  7. Why UNIX? • Why the UNIX Environment? • Very mature technology • Maintains a large base of high quality “copy-left” programs • LINUX is “free” and can run on a 386 PC • Remote computing is a natural part of UNIX • Very close control of the computer • Minimalist approach to computing Rolando V. Raqueño

  8. Shortcuts and Timesavers • Learn shortcuts and time savers when solving programming related problems (when not to do traditional program) • a.k.a “Stupid UNIX Tricks” • Shell Scripts • AWK & SED • Makefiles • Computing applications in an imaging context Rolando V. Raqueño

  9. Compiling Traditional Programs in UNIX • Legacy FORTRAN and C code requires some knowledge of how to compile these programs • Tools to aid in compiling (makefiles) • Common pitfalls • Setup tips for input and output data files Rolando V. Raqueño

  10. Imaging Concepts • Application in an imaging context • Bi-level • Monochrome • Color • Multispectral • Hyperspectral Rolando V. Raqueño

  11. IDL Environment • IDL Basics,Syntax, and Semantics • Your responsibility to get started • IDL Graphical User Interface (GUI) development • Enable batch processing • How IDL interacts with the UNIX environment. Rolando V. Raqueño

  12. This Course is/is not • This course is not... • an algorithm course in image processing or computational theory • a programming course in C/C++ • This course will... • give you a means to prototype and test image processing algorithms • provide a foundation for prototyping algorithms that can be translated into traditional programming languages Rolando V. Raqueño

  13. This course is not… • This course is not... • Designed to make you a software engineer • This course will... • Give you the skills to communicate with software engineers about your algorithm, expected inputs, and expected output • Provide give them necessary concepts, specifications and test cases, i.e., The working prototype Rolando V. Raqueño

  14. LaTeX • Course will introduce fundamental LaTeX concepts • Help with documentation • Help with your thesis/dissertation Rolando V. Raqueño

  15. Documentation, Documentation • This course will... • Teach you about documentation in the form of source code control. RCS or SCCS under CVS • Inherently lacking in other operating systems (OS) Rolando V. Raqueño

  16. Prerequisites/Expectations • Experience in a high level programming language (e.g. C, FORTRAN, BASIC, PASCAL, ADA, etc.) in the last 20+ years. • Ability to make lots of mistakes (and remember them) • Ability to deal with frustration, and know when to quit • Good Typing Skills a plus • Good Technical Writing Skills • Be able to generate a User’s Guide Rolando V. Raqueño

  17. Milestones in the Progression of Programming Experience • Programming in traditional languages • Beginning (Monolithic programs) • single letter variables • Loops and maybe an occasional GOTO • Intermediate ( Use of subroutines and functions) • Favor Local variables rather than Global Variables • Understand parameter passing schemes • Advanced (Structures and abstract data types) • More meaningful variable names Rolando V. Raqueño

  18. Milestones in the Progression of Programming Experience • Programming in traditional languages • Learning that hand-optimizing code at the development is simply not worth the time • Learning to separate the algorithm from the bells and whistles (i.e., input and output code) • Creating a library of “tools” • Use of revision control utilities along with README’s and formal documentation. Rolando V. Raqueño

  19. Milestones in the Progression of Programming Experience • Programming in non-traditional languages • Thinking about the problems in terms of matrix and vector operations • Avoiding loops and conditionals • Thinking about the “Non-expert” by designing the Graphical User Interface (GUI) • *Realizing that there is no single software tool that solves everything. Rolando V. Raqueño

  20. Course Grading • Final IDL GUI Project 40% • Presentation and Report • Mid-term Exam 30% • Programming Assignment(s) 20% • Will be questions in Mid-term • Quizzes (every week) 10% Rolando V. Raqueño

  21. Course Text • Liam Gumley’s Practical IDL Programming (Required) • Unix Power Tools (Required) • Research Systems Incorporated (RSI) • Online Manuals • Using IDL • Building IDL Applications • Reference Manuals • Cliff Stoll’s The Cuckoo’s Egg • (Holiday Required Reading) Rolando V. Raqueño

  22. Other References • Text • Learning the UNIX Operating System • UNIX Power Tools • On-line • News groups • comp.lang.idl-pvwave • Web sites • www.rsinc.com • www.ctan.org (LaTeX references) Rolando V. Raqueño

  23. Other References • Notes • These Powerpoint slides will be available on-line for your reference. • These Notes will be available the Monday each week. • If not, old notes will be available • http://www.cis.rit.edu/~rvrpci/teaching/simg726/20012 • DL class • http://www.cis.rit.edu/class/simg726 • Send me mail and I will reply with the location of this year’s site. Rolando V. Raqueño

  24. Computing Resources • RIT’s ISC • Provides general computing resources to the RIT community (e.g. internet connectivity, LIMITED dial in line services) • CIS computing facilities • Imaging specific capabilities (IDL, etc.) • Undergraduate and Graduate DIP Lab • The “DEAL” with RSI Rolando V. Raqueño

  25. Syllabus until Holiday Break • Class #0 - Today • This Lecture • VNC • Assignment #1 • Get your account setup • Send e-mail to rolo@cis.rit.edu with personal info (Name, Address, Phone Number, Undergraduate/Graduate Majors, Computer Experience) • Go over the on-line tutorial vitutor (CIS) % ~rvrpci/pub/vitutor/vitutor • Get VNC installed on your home computer Rolando V. Raqueño

  26. Syllabus • Class #1 - December 1 • Tour of UNIX, X-Windows • Introduction vi • Getting started and Tour of IDL • Working with Data • Plotting • Hardcopy output from IDL • Project Assignment #1 (Due a week after we return) • Implementing Statistics Functions in IDL • Documentation in LaTeX Rolando V. Raqueño

  27. Syllabus • Class #2 • Number Systems in Computers • Fundamentals of IDL Programming • Final Project Topics • Intro to LaTeX • QUIZ #1 • Topics • man, ls, cp, mv, pwd Rolando V. Raqueño

  28. Syllabus • Class #3 • The PBMPLUS Utilities • IDL and PBMPLUS • Basic IDL Image Manipulations • Intro to BibTex Rolando V. Raqueño

  29. Syllabus • Class #4 • Reading/Writing Data in IDL • Image Formats • Final Project Examples • Quiz #2 • Topics • finger, grep, jobs, mkdir, ci, co Rolando V. Raqueño

  30. Syllabus • Class #5 • IDL debugging & GUI Introduction • Break Assignments • Read the Cuckoo’s Egg (Quiz Material) • Mockup Drawing of GUI Final Project Rolando V. Raqueño

  31. Summary • Course Information and Objectives • Prerequisites/Expectations and Experience • Course Grading • Course Text and Resources • Syllabus until Break Rolando V. Raqueño

More Related