Image Emacs, an editor for scanned images of text

In the late 1980's and early 1990's at Xerox PARC, Gary Kopec and I designed and implemented Image Emacs, an editor for scanned images of text. It was a full-fledged Emacs (buffers, mode line, M-x commands, keymaps, incremental search, undo), but instead of editing ASCII characters, the fundamental units were rectangular bitmaps of character images from a bitmap. Although the image parsing was occasionally incorrect, it turned out that finding, extracting, and editing characters by moving them around on the baseline of each line was considerably easier and more advantageous than either of the two alternatives at the time: performing full character recognition, which was too errorful to be routinely useable without proofreading the entire text, or employing bitmap editors, such as MacPaint, in which operations on characters and words would have been prohibitively tedious.

The code was about 20,000 lines of Common Lisp running on a Sun SPARCstation, with a couple of routines Gary wrote in C. I later implemented a more general editor, called eg, that manipulated hierarchically nested alignments of graphical objects—it could edit letters written on a circular arc, rotating the bitmaps so that the characters remaining orthogonally oriented to the baseline, and text written in boustrophedon, with lines read alternately left-to-right and right-to-left, as was Ancient Greek.

Both systems were fully implemented and reasonably robust, although they never saw extensive testing with large user communities. Gary's research interests moved into more quantitative methods of image analysis, and I went to medical school. As far as I know, the code is long dead.

We published an article about Image Emacs in CACM.

Author: Steven Bagley

Date: 2013-12-23 Mon