Imaging Processing and Graphics Experience Summary


Below is a summary of some of my graphics and imaging experience.

  • Recently used Win32 VC++, Qt, and OpenGL for 3-6M triangle terrain rendering from space shuttle DEMs:
  • Java/Vista, terrain visualization directly from USGS DEM files (directly implemented Phong-based shading)
  • Some Java 3D experimentation (Java 3D is scene graph based)
  • C/SunOS, extraction of 2D curved surface from 3D CT volumetric data
  • Took CHAP (CHAnnel Processor, SIMD) assembly language course at Pixar which included graphics computation pipelining techniques (1980s).  (Aerojet owned a Pixar Image Computer with a 48-bit RGBA framebuffer.)
  • C/SunOS, directly implemented 3D ray casting from eye ( x, y, z ) through each pixel ( x, y, z ) of monitor into 3D space behind monitor where rays (3D lines) intersected 2D images placed in this space with arbitrary orientations producing bilinearly-interpolated perspective views of tilted/rotated 2D images.
  • C/SunOS, Pixar, created stereoscopic X-ray cineloops and stereo cursor that could be positioned in 3D
2D Graphical UI Components

Here are a few examples of 2D UI components I've coded in Java/Swing (click to enlarge):

Other 2D experience:
Imaging (more details here, 5th slide)
  • Recently completed Computational Photography online Coursera course.  Homework assignments use Python, NumPy, SciPy, and OpenCV
  • Java/Vista, recently developed HSI color space-based image segmentation and region filling algorithms (implemented URL's 3rd pseudocode algorithm)
  • Live video display and capture (RGB and grayscale; proprietary framegrabber boards, 1980s)
  • C/DOS, developed inner-luminal wall boundary detection algorithm and code for medical intravascular ultrasound manufacturer
  • C/DOS, Histogram, graph-pixels-along-a-line charting, region filling algorithms, blob statistics
  • C/DOS, Real-time bilinear interpolation magnifying glass
  • C/DOS, 24-bit color and 8-16 bit grayscale imaging
  • C/DOS, Indexed color maps, real-time window/level (window/level explained halfway down this URL page)
  • C/DOS, Convolution, contrast-limited adaptive histogram equalization (CLAHE) example (right side is enhanced version of left side)
  • C/DOS, Bi-quadratic image registration/warping, image scaling, shear-based rotation (Ed Catmull, A.R. Smith)
  • C/DOS, Cubic spline blob boundary fitting/drawing via user-entered boundary points
  • C/Solaris, high-resolution digital X-Ray acquisition and image reconstruction mode via CT scanner
  • C/Solaris, many CT and digital X-Ray image processing enhancement and analysis algorithms
  • C/Solaris, wrote software to repair glitches in CT system raw data (sinograms)
  • Hardware
    • Low-level control and image readout of SCSI digital cameras; (TIFF image data structure in camera memory)
    • Control of Photometrics 14-bit digital camera for early digital mammography system
    • Extensive reading/writing of framebuffer via direct C pointer to VRAM
    • Extensive work with expanded and extended memory models
    • Used BIOS interrupt 15h function 87h “Move Block”, Global Descriptor Tables (GDT)
    • Interact directly with S3 VGA board chips, mostly using inp() and outp():

Subpages (1): Java 3D Examples