Engauge Digitizer 2
Loading...
Searching...
No Matches
Engauge Digitizer II

The Engauge Digitizer II application quickly extracts numeric data from images containing graphs with curves and two axes drawn. Converting an image into data may be described as doing the opposite of graphing - which converts numeric data into graph images.

For users

Major features added since version Engauge Digitizer 5.2 include:

  • Sub-pixel point placement increases accuracy
  • Undo/redo makes recovering from mistakes easy
  • Easier and more powerful zooming
  • Improved drag-and-drop
  • Wizard provides an interactive tutorial to explain the basic steps
  • Wizard creates a checklist guide to interactively leads user through steps from file import to file export
  • MSI installer for Windows operating system

For developers

Engauge Digitizer Version 2 uses the new Qt5 library, rather than the old Qt3 library used by Version 1. The Qt3 library is disappearing from most operating systems, but Qt5 should be available for many years.

The code takes advantage of some powerful open source toolkits:

  • CCCC provides important metrics to identify possible problem areas (run docccc in src directory)
  • Doxygen documents all C++ classes (run doxygen in src directory)
  • FFTW provides a fast-fourier transform (FFT) for faster image processing, especially cross-correlations
  • Log4cpp provides configurable logging
  • OpenJPEG supports JPEG2000 images on systems without support for that format

The code is architected with some important design patterns:

  • Command pattern provides Undo/Redo using commands and a command stack, and also provides robust data transfer between threads using commands and a FIFO command queue
  • Factory pattern generates points with the details encapsulated in the factory class
  • Functor pattern provides efficient processing of Curve and Point data from outside the Document class, without violating encapsulation of performed by generic iteration through the Curves with functors
  • Model/View pattern separates graphical object management in the GraphicsScene, and graphical presentation and interaction in the GraphicsView. Delegates, representing the document, interact with the Model and View
  • State pattern isolates each digitizing mode into one state, with a context class acting as a container and single class for interfacing across the state machine boundary
  • Strategy pattern encapsulates code chunks when the chunk to be used depends on the current context

Code development has been moved from sourceforge.net to github.com, and Doxygen documentation has been added.