Halftoning and Image Processing Algorithms
Halftoning and Image Processing Algorithms
net/publication/235161726
CITATIONS READS
0 2,871
2 authors:
All content following this page was uploaded by Nicholas George on 10 December 2014.
DAAH04-96-G-0232
P-35621-PH
FEBRUARY 1999
DAVID M. BERFANGER
Form Approved
REPORT DOCUMENTATION PAGE OMB NO. 0704-0188
Public reporting burden tar thi» coliaction of «formation is aatimatad to avaraga 1 hour par rasponsa, iiwhid^ thatinw tar ravww^ instiuclioni. taaretiingadsting data towcas.
gathering and maintaining tha data naadad, and compMing and raviawing tha coMaetion of mformabon. Sand cornrnam raoardir^ this buro^
collection of information, including suggestions for reducing this burden, to Washington Headquarters Services. Directorate for information Operations and Reports. 121S Jefferson
Davis Highway, Suite 120«, Arlington. VA 22202-4302. and to the Office of Management and Budget Paperwork Reduction Project (07044188), Washington. OC 20503.
1. AGENCY USE ONLY (Leave blank) 2. REPORT DATE 3. REPORT TYPE AND DATES COVERED
February 1999 Final Progress Report, 6/1/96 - 11/30/98
4. TITLE AND SUBTITLE 5. FUNDING NUMBERS
6. AUTHOR(S)/PI
David M. Berfanger
. Nicholas George, Wilson Professor of Electronic Imaging
The views, opinions and/or findings contained in this report are those of the authors) and should not be construed as
an official Department of the Army position, policy or decision, unless so designated by other documentation.
12a. DISTRIBUTION /AVAILABILITY STATEMENT 12 b. DISTRIBUTION CODE
The focus of this study was theoretical and experimental research on topics in the fields of color halftoning,
image processing and compression, and image quality. Our goals in this research were to advance the
understanding in image science for our new halftone algorithm and to contribute to image retrieval and
noise theory for such imagery. In the field of color halftone printing, research was conducted on deriving
a theoretical model of our new halftone algorithm based on a novel resampling of the output pixels,
developing halftone algorithms for combining the speed advantages of halftone screening techniques with
the quality advantages of error diffusion in the halftoning of color maps, and on color image enhancement
for halftone printing. In conjunction with this work, a software development effort was conducted both to
implement efficiently the halftoning algorithm itself and to ease its use through a graphical user interface.
Research efforts were also conducted in the areas of remote sensing and image compression of color and
monochrome images. In image compression we studied the use of controlled blurring to improve both
lossless and lossy methods, like DCT-based algorithms. In remote sensing we studied topics in image
classification of a scene according to such categories as terrain, vegitation, and image quality.
17. SECURITY CLASSIFICATION 18. SECURITY CLASSIFICATION 19. SECURITY CLASSIFICATION 20. LIMITATION OF ABSTRACT
OR REPORT OF THIS PAGE OF ABSTRACT
UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED UL
NSN 7540-01 -280-5500 Standard Form 298 (Rev. 2-89)
Enclosure 1 Prescribed by ANSI SU. 239-18
298-102
CENTER FOR ELECTRONIC IMAGING SYSTEMS
DAAH04-96-G-0232
P-35621-PH
FEBRUARY 1999
DAVID M. BERFANGER
TABLE OF CONTENTS
SECTION PAGE
1. ABSTRACT 2
3. PUBLICATIONS
5. SCIENTIFIC PERSONNEL
SECTION 1: ABSTRACT
The focus of this study was theoretical and experimental research on topics in the
fields of color halftoning, image processing and compression, and image quality.
Our goals in this research were to advance the understanding in image science for
our new halftone algorithm and to contribute to image retrieval and noise theory for
such imagery. In the field of color halftone printing, research was conducted on
deriving a theoretical model of our new halftone algorithm based on a novel
resampling of the output pixels, developing halftone algorithms for combining the
speed advantages of halftone screening techniques with the quality advantages of
error diffusion in the halftoning of color maps, and on color image enhancement for
halftone printing. In conjunction with this work, a software development effort was
conducted both to implement efficiently the halftoning algorithm itself and to ease its
use through a graphical user interface.
Research efforts were also conducted in the areas of remote sensing and image
compression of color and monochrome images. In image compression we studied
the use of controlled blurring to improve both lossless and lossy methods, like DCT-
based algorithms. In remote sensing we studied topics in image classification of a
scene according to such categories as terrain, vegitation, and image quality.
This program of research was heavily leveraged by participation for the ARO-URI in
Optoelectronic Systems, the Center in Electronic Imaging Systems (CEIS), and
Industrial sponsors including several U.S. corporations who are leaders in the
imaging field.
HALFTONING AND IMAGE PROCESSING ALGORITHMS
Supporting research was also conducted in color image fidelity, enhancement, and
processing for halftone printing. This includes a concentrated effort in the develop-
ment of image compression algorithms, as well as a more general study of color
rendering. In this research we aim to increase both the efficiency and the quality of
print produced by our system. Specific areas of activity include the following:
improving existing lossy compression algorithms, like DCT-based algorithms; incor-
porating image classification of a scene according to such categories as terrain
recognition and image quality; and studying the longevity of prints produced by our
system. This program of research is heavily leveraged by participation from the
ARO-URI in Optoelectronic Systems, the Center for Electronic Imaging Systems,
and industrial sponsors including several U.S. corporations who are leaders in the
imaging field.
With a central objective of providing basic research critical to the mission of the U.S.
Army Topographic Engineering Center (TEC), the first year of this project focused
on the development of software to operate our new halftone algorithm as part of the
QRMP system. In this activity, we were highly successful in developing software in
close cooperation with TEC and with the prime contractor, Martin-Marietta. In
addition, during the course of this first year's work, three patent applications were
filed.
During the second year of this project, under reduced funding, we continued to
provide extensive support to refine the system. We completed and delivered three
releases of our software as part of our collaborative development of the halftoning
module of the QRMP system. Version 3.0 of our software standardized the existing
user interface to facilitate operation of the software and enhanced the execution of
the expanded functionality of Version 2.0. Features included a multi-process
execution model, a straight forward calibration procedure, facilities to save calibra-
tion tables for commonly used media and inks, several user controls to adjust the free
parameters of the algorithm, the ability to work with several image file formats, and
the ability to save individual color channels into separate files. All of this work was
accompanied by a vigorous concentration on complete documentation of both the
theory and the operation of the software.
During the third year, which proceeded under a no-cost extension of the second year
funding, a final version of the software was completed: Htcontrol 3.1. This version
of the software corrected reported bugs and included underlying code documenta-
tion, as well as a user's manual and resource documentation (see Appendix).
"Object recognition and image coding," Nicholas George, B.J. Stossel, and D.M.
Berfanger, invited paper presented at Takayanagi Memorial Session, Asia Display
'95, Hamamatsu, Japan, October 1995.
"Lensless electronic imaging," Nicholas George, Opt. Comm. 133, 22-26 (1997).
"Theory for the propagation of short electromagnetic pulses," Nicholas George and
Stojan Radic, Opt. Comm. 139, 1-6 (1997).
HALFTONING AND IMAGE PROCESSING ALGORITHMS
SECTION 4: INVENTIONS
"Image data coding and compression system utilizing controlled blurring," Nicholas
George and Bryan J. Stossel, U.S. Patent No. 5,453,844, September 26,1995.
"Halftone correction system," Shen-Ge Wang, U.S. Patent No. 5,469,267, Novem-
ber 21, 1995.
"Halftone correction systems," Shen-Ge Wang, U.S. Patent No. 5,854,882, Decem-
ber. 29, 1998.
HALFTONING AND IMAGE PROCESSING ALGORITHMS
(3
z
w
D
X
Q
Z
UJ
Q.
£L
<
THE CENTER FOR ADVANCED TECHNOLOGY
ELECTRONIC IMAGING SYSTEMS
DOCUMENTATION FOR
HALFTONING AND IMAGE PROCESSING ALGORITHMS
DAVID M. BERFANGER
ABOUT HTCONTROL
VERSION 3.1
WHAT IS HTCONTROL?
WHAT IS HALFTONING?
New with version 3.1 is a previewer capability that allows the operator
to estimate the effects of altering the various parameters of the
algorithms. These parameters can be adjusted by the operator using
the several user controls available within the interface, including color,
black/white threshold, and sharpness. This ability to adapt the
algorithm to the particular needs of individual images allows the
operator to produce a final print with a near optimal appearance.
Less evadent changes with version 3.1 include several bug fixes and
some additional internal code alterations, intended to facilitate future
additions to the software. With version 3.0 the user interface was
completely divorced from the user front end. Now we have focused on
separating file format interpretation from the main body of the
halftoning algorithm. This continuing effort should allow for the
addition of other file formats to the list of those currently supported, like
Erdas .map image files.
FUTURE WORK
Work towards halftoning the .map file format has revealed what could
represent a major new area of research. Since vector graphics
represents a type of information fundamentally different from the
raster-type information currently being dealt with, specialized halftoning
could be of value in significantly improving the quality of a final print,
which includes this type of information. Along similar lines, since the
symbols used in map legends represent what is essentially vector-type
information, augmenting the current algorithm with automatic
recognition routines for segmenting these symbols from the rest of the
scene should provide a significant quality improvement for printed
maps.
Forward References
UNPACKING
> cd $(HT_INSTALL)
> $(HT_INSTALL)/htcontrol_3.1.
The TIFF library included with version 3.1 is identical to that distributed
with the last release with the exception of a few bug fixes. This library
has been slightly altered from the freely available version of the library.
Two makefiles are included with the distribution: Makefile.Sun and
Makefile.HP. These two makefiles have not been significantly
altered from those released with version 3.0. A succesful build of the
TIFF library will produce a linkable version in the following directory:
> $(HT_HOME)/lib
To build the TIFF library pick the appropriate makefile and initiate the
compilation process with the following commands:
> cd $(HT_HOME)/tiff
> make
8
Vista is a freely available image processing software package
compatible with Motif and X-Windows. For complete details about
installing Vista please refer to the various README and INSTALL files
that come included with the ditribution. These files can be found in the
$(HT_HOME)/vista directory. We have found the process to be very
straight forward requiring alteration of only one file: site.def. This
file is found in the $ (HT_HOME) /vista/config directory. The
site.def file provided with this distribution is the one we have used
to successfully install Vista on our Sun workstation, site. def. or ig
is the original version of the file, which comes with the Vista
distribution. Here are the alterations that need to be made:
These defines tell the system where to find standard includes and
libraries, including X-Windows and Motif. You should review the other
entries of site.def to insure that they are appropriate for your
system.
Once the site.def file has been updated for your system, the build
proceeds as follows:
> cd $(HT_HOME)/vista
Once both the TIFF library and the Vista package have been installed
the halftoning software may be compiled. Before compilation the
Makefile in the $ (HT_HOME) /src directory must be reviewed to
insure that the INCLUDE and LIB macros are set to values appropriate
for your system. Commented lines provide values for libraries and
compiler options used to build earlier versions of the halftoning
software. The makefile is currently set up for our system and works
perfectly. A few minor changes to macros should be all that is needed
to compile the software on other machines. Once the makefile is in
order, the build continues as follows:
> cd $(HT_HOME)/src
> make
10
EXPLORING HTCONTROL
BASIC OPERATION OF THE SOFTWARE
USER CUSTOMIZATION
Before you start this chapter you should insure that the Htcontrol and
all related software has been successfully installed according to the
procedure described in Chapter 1, Getting Started.
> cd ~
11
> cd .htcontrol
Before you begin, insure that your local environment and home
directory are setup correctly as described above. If the directory for
which the Htcontrol executables live has been included in your
command path, entering the following command will begin a Htcontrol
session:
> htcontrol
> -/.htcontrol/htcontrol_3.1/bin/htcontrol
12
THE MAIN WINDOW
Output File:
Using the main menu, a user can initiate all actions needed for
successfully producing a halftoned print. This includes selecting the
required filenames, requesting dialogs to adjust the parameters of the
halftoning algorithm, and initiating the procedure for calibrating the
software for a particular printing configuration. Additionally, a simple
online help system has been provided.
The File menu allows the operator to specify the necessary files for
halftoning: the input file, the output file, and (if required) the palette
file. Once these files have been specified the user can then initiate the
halftoning process. In doing this the user has the choice of having the
software immediately quit after the command has been processed or
remain open to initiate additional halftoning jobs. Also, the user can
request that the individual color channels of the input image be saved
into separate files or that the application be quit without any further
processing.
13
Fig. 2 The File Menu k-r •■'•■ University of Rochester Halftone Routine
[file Controls Calibration Help
Select Input File...
Select Output File-
Select Palette File...
b\ m
Halftone
Halftone and Quit
Save Separations
Quit
Palette File:
Halftone
This menu option initiates the halftoning process using the provided
filenames and the current control settings. During the halftoning
process a progress dialog is displayed showing the time to completion
of the job. This progress dialog provides a Cancel button to abort the
job. For a complete description of the available control settings, please
refer to Chapter 4, Adjusting the Halftoning Algorithm.
Save Separations
This menu option initiates the saving of the individual color channels of
the input image into separate files. When this option is selected, a
dialog is shown prompting the user for the separation type: either RGB
or CMYK. This dialog provides an Ok button to initiate the selected
separations job or alternately a Cancel button abort the operation
14
before it is initiated. The filenames used for the separate files are
derived from the provided output filename by appending appropriate
default filename extensions. During the separations process a
progress dialog is displayed showing the time to completion of the job.
This progress dialog provides a Cancel button to abort the job before it
reaches completion.
Quit
This menu option terminates application without any further
processing. Halftoning and Separations jobs that have already been
initiated are not effected by this action.
The Controls menu allows the user to request dialogs for adjusting
controls setting of the application or to preview the effect of these
control settings. Additionally, the user has the options of saving the
current control settings to a file for future recall. Finally, an option is
provided for the user to set the current controls settings as the default
values for future sessions. For a complete description of the available
control settings, please refer to Chapter 4, Adjusting the Halftoning
Algorithm.
Output Hie::
Palette Hie:
Show Controls
This menu option brings forward a dialog for adjusting the available
controls settings of the software. A complete description of this dialog
is presented in Chapter 4, Adjusting the Halftoning Algorithm.
Show Previewer
This menu option brings forward a dialog for viewing the selected input
file after the current controls settings have been applied. Currently this
15
previewer does not provide true "what-you-see-is-what-you-get"
performance; however, it does provide a useful estimation of the
effects of these controls settings. A complete description of the
operation of the previewer is presented in Chapter 4, Adjusting the
Halftoning Algorithm.
Set Defaults
This menu option tells the software to update its current defaults to the
current controls settings. This information is stored in the
.htcontrol directory assumed to be present in the user's home
directory.
The Calibration menu allows the user to request all functions involved
in calibrating of the halftoning algorithm. These include generating
calibration patches, calibrating the algorithm, and saving and recalling
calibrations tables. For a complete description of the calibration
proceedure, please refer to Chapter 3, Calibrating the Halftoning
Algorithm.
Output File:
Palette File:
16
Generate Calibration Patches...
This menu option brings forward a standard Motif file selection dialog
for selecting the name of a file in which to save the a printable version
of the standard calibration test patches.
Htcontrol provides a simple, but useful, online help feature. The help
feature can be accessed through the help menu or through the context
sensitive help buttons provided throughout the interface.
Input File:
Output File:
Palette Hie:
Version...
This menu option brings forward a standard Motif message dialog
describing important information about the version of the software,
which is currently running.
17
Index...
This menu option brings forward a dialog displaying a list of topics and
associated blurbs, which describe the topic. The topics appear in a
selectable list and reflect the content and structure of this manual.
THE TOOLBAR
MOTIF DIALOGS
[OKJ
OKI
OK j HII Htfp I
18
CALIBRATING THE HALFTONING ALGORITHM
THE HEART OF THE SOFTWARE
19
2. Scan the printed calibration patches into the workstation,
3.. Make the calibration table using the scanned input file, and
4. Select the resulting data as the current calibration table for the
software.
20
required. These parameters must be entered into the corresponding
text fields of the main window before the calibration table can be
generated. For additional information of entering these file names
please refer to Chapter 2, Exploring Htcontrol.
Wake^lbratlcft^WiK^feM;^
Fig. 7 The Make Calibration
Table Dialog Position knobs to register calibration patches.
IBS 88
&■■ ■■■
Bmm ■■■
mm ■■■
t
OK Cancel! Help
21
ADJUSTING THE HALFTONING ALGORITHM
OPTIMIZING THE SOFTWARE FOR INDIVIDUAL IMAGE
REQUIREMENTS
Beginning with version 3.0, all of the controls for customizing the
appearance of the final halftoned print have been located on a single
controls dialog (See Fig. 8). The controls available on this dialog
provide the operator with a visual means of adjusting all of the various
parameters to the halftoning algorithm. The controls belong to one of
two groups: color controls and fine controls.
The vlaue of each of the individual controls on the controls dialog can
be changed in on of two ways: a scale can be manipulated using the
mouse or a desired value can be entered directly into a text field.
There are five action buttons on the controls dialog: Ok, Apply,
Defaults, Cancel, and Help. Pressing the Ok button applies the
currently displayed controls settings and dismisses the dialog.
Pressing the Apply button applies the currently displayed controls
settings without dismissing the dialog. Pressing the Defaults button
resets all of the controls to their default value. Pressing the Cancel
Color Controls — .. ..
Cyan:f .!., ■-.■■■■
zr—rr: T:-i::L
Darkness: F ■ K> 1
Fine Controls ; i
Black Threshold: J ; !° ii
White Threshold:^! j !
Sharpness:; j ! ■&
11
:
; <* ij *PPly 1 Defaults! Cancel | Help
i!
. ,-
22
button Dismisses the dialog without applying the currently displayed
settings. Finally, pressing the Help button calls forward the Help
dialog.
Fine controls for the halftoning algorithm include white and black
clipping values, as well as a level of sharpness enhancement. These
settings are not for general use but may be adjusted if necessary.
Current controls settings can be saved to a file for later use. This is
initiated by selecting the "Save Controls Settings..." menu item in the
"Controls" menu. Upon selecting this menu item a standard Motif file
selection dialog is shown for the operator to select a filename for the
file in which to store the controls settings data.
23
RECALLING THE CONTROLS SETTINGS
Default controls settings can be set in the user resource file, as well as
by Htcontrol itself. Examples resource file entries for each of the
controls settings application resources are given below:
> *theCyanDefaultValue: 0
> *theMagentaDefaultValue: 0
> *theYellowDefaultValue: 0
> *theBlackDefaultValue: 0
> *theDarknessDefaultValue: 0
> *theBlackThresholdDefaultValue: 0
> *theSharpnessDefaultValue: 0
24
> *theControlsDefaultsFilename:
-7 .htcontrol/DefaultSettings
25
Htcontrol Resource File Documentation
Like most X-windows applications, Htcontrol is designed so that many of its
loads data from user-specified files. The data from this file is used to build the resource
database, containing both information about the configuration of the widgets in the
application and the settings of various data attributes which affect operation.
environment variable to allow Htcontrol to find the appropriate resource file. For addi-
tional information about the general use of resource files in X-windows we suggest the
books listed under References.
1. Htcontrol Resources
A major goal in the development of htcontrol (version 3.0) was to bring its graphi-
cal user interface into compliance with OSF/Motif standards. This included the
application's handling of user configurable resources. Htcontrol only hard-codes the
values of those resources that are essential to program operation. The rest of the re-
sources are left user configurable. Reasonable default values for configurable resources
are provided within the executable. Resources for htcontrol fall into three categories:
widget resources, application resources, and errror messages. This section contains a
brief description of the resource types.
sources that provide control over the appearance and functionality of the widgets: color,
text fonts, size, etc. For a complete listing of the configurable resources for Motif widget
classes see Ref. 1. A full listing of the names of the widgets, their class type, and their
location in htcontrol appears in Appendix A.
Htcontrol has several user deferable attributes which directly affect the operation
of the application: Default setting values, the Calibration filename, the default palette
filename, etc.
Resource files are ASCII text files containing line entries consisting of either a
resource name or a resource class name and a resource value separated by a colon(:).
For additional information about resource files see Ref. 2.
Widgets in htcontrol are created in a heirarchy that starts with a top-level shell
and is followed by successive generations of child widgets. To set the resources of a
child widget in a resource file the full widget path from the top-level shell to that child
widget must be specified. Pathnames are specified as a list of parent widgets starting
from the top-level shell, separated by a period and ending with the child widget you
want to change. For example, to set the labelString resource for thelnputFilenameLabel,
the following line in the htcontrol application would be placed in the resource file.
Htcontrol. .thelnputFilenameLabel.LabelString:
Input File
Being widget resource themselves Error message resources are set in the same way.
With the Error message dialog being a direct child of the TopLevelShell.
2.2 Wildcards
A wildcard (*) can also be used within a resource pathname allowing for both
shorter names and the setting of multiple resources with a single line. For example, the
following resource command could also be used to set the labelString for
thelnputFilenameLabel as above:
Similiarly, a user can set the background color resource for every widget in the
application using the command:
Htcontrol*background: blue
Within the Htcontrol resource file this could even be further shortened to the following:
*background: blue
Resource commands can also use the widget's class name instead of the widget name.
For example, the following line would set all LabelStrings in the xmLabel class.
Htcontrol. .thelnputFilenameLabel.xmLabel.LabelString:Input
File
If, through the use of wildcards or otherwise, two or more comands within a resource file
specify a common resource name several rules of precedence exist to resolve the
conflict.
Resource files are hard to debug since most errors are quietly ignored.
converted into actual values. The messages are not always clear, but may help. In order
to turn on the warning, add the following the command line to your resource file, (also
see example resource file in Appendix E)
*StringConversionWarnings: on
3. Setting Environment Variables
Once the resource file has been written it must be placed so that the program
will find its location. There are two locations that the program will look for by default: a
a lot of freedom as to the location of application files. Here applications are told where
to look through environment variables. Table 1 lists possible locations for resource files
in order of precedence. We find the most correct place for application resource files to
be is in a user's home directory. This avoids the need for setting user environment
variables, which often serve to complicate matters.
Table 1
References
Ref. 1.
Ref. 2.
theMainWindow xmMainWindowWidgetClass
theMenuBar xmRowColumnWidgetClass
theFilePulldownMenu xmRowColumnWidgetClass
theFileCascadeButton xmCascadeButtonWidgetClass
thelnputFilenameMenultem xmPushButtonWidgetClass
theOutputFilenameMenultem xmPushButtonWidgetClass
thePaletteFilenameMenultem xmPushButtonWidgetClass
fileMenultemSeparatorl xmSeparatorGadgetClass
theHalftoneMenultem xmPushButtonWidgetClass
theHalftoneAndQuitMenultem xmPushButtonWidgetClass
fileMenultemSeparator2 xmSeparatorGadgetClass
theSaveSeparationsMenultem xmPushButtonWidgetClass
fileMenultemSeparator3 xmSeparatorGadgetClass
theExitMenultem xmPushButtonWidgetClass
theControlsPulldownMenu xmRowColumnWidgetClass
theControlsCascadeButton xmCascadeButtonWidgetClass
theShowHideControlsMenultem xmPushButtonWidgetClass
theShowHidePreviewerMenultem xmPushButtonWidgetClass
theSaveSettingsMenultem xmPushButtonWidgetClass
theRecallSettingsMenultem xmPushButtonWidgetClass
theCalibrationPulldownMenu xmRowColumnWidgetClass
theCalibrationCascadeButton xmCascadeButtonWidgetClass
theGeneratePatchesMenultem xmPushButtonWidgetClass
theMakeTableMenultem xmPushButtonWidgetClass
theRecallTableMenultem xmPushButtonWidgetClass
theHelpPulldownMenu xmRowColumnWidgetClass
theHelpCascadeButton xmCascadeButtonWidgetClass
theVersionMenultem xmPushButtonWidgetClass
thelndexMenultem xmPushButtonWidgetClass
theWorkAreaForm xmFormWidgetClass
theToolBarForm xmFormWidgetClass
thelnputFilenamePushButton xmPushButtonWidgetClass
theOutputFilenamePushButton xmPushButtonWidgetClass
thePaletteFilenamePushButton xmPushButtonWidgetClass
theHalftonePushButtton xmPushButtonWidgetClass
theHalftoneAndQuitPushButton xmPushButtonWidgetClass
theControlsPushButton xmPushButtonWidgetClass
thePreviewerPushButton xmPushButtonWidgetClass
theFilenameEntryForm xmFormWidgetClass
thelnputFilenameForm xmFormWidgetClass
thelnputFilenameLabel xmLabelWidgetClass
thelnputFilenameTextField xmTextFieldWidgetClass
theOutputFilenameForm xmFormWidgetClass
theOutputFilenameLabel xmLabelWidgetClass
theOutputFilenameTextField xmTextFieldWidgetClass
thePaletteFilenameForm xmFormWidgetClass
thePaletteFilenameLabel xmLabelWidgetClass
thePaletteFilenameTextField xmTextFieldWidgetClass
theControlsDialog transientShellWidgetClass
theControlsMessageBox xmMessageBoxWidgetClass
theControlsForm xmFormWidgetClass
theControlsColorFrame xmFrameWidgetClass
theControlsColorForm xmFormWidgetClass
theControlsColorLabel xmLabelWidgetClass
theControlsFineFrame xmFrameWidgetClass
theControlsFineForm xmFormWidgetClass
theControlsFineLabel xmLabelWidgetClass
theControlsApplyButton xmPushButtonWidgetClass
theControlsResetButton xmPushButtonWidgetClass
theControlsCyanForm xmFormWidgetClass
theControlsCyanLabel xmLabelWidgetClass
theControlsCyanScale xmScaleWidgetClass
theControlsCyanTextField xmTextFieldWidgetClass
theControlsMagentaForm xm Form WidgetClass
theControlsMagentaLabel xmLabelWidgetClass
theControlsMagentaScale xmScaleWidgetClass
theControlsMagentaTextField xmTextFieldWidgetClass
theControlsYellowForm xmFormWidgetClass
theControlsYellowLabel xmLabelWidgetClass
theControlsYellowScale xmScaleWidgetClass
theControlsYellowTextField xmTextFieldWidgetClass
theControlsBlackForm xmFormWidgetClass
theControlsBlackLabel xmLabelWidgetClass
theControlsBlackScale xmScaleWidgetClass
theControlsBlackTextField xmTextFieldWidgetClass
theControlsDarknessForm xmFormWidgetClass
theControlsDarknessLabel xmLabelWidgetClass
theControlsDarknessScale xmScaleWidgetClass
theControlsDarknessTextField xmTextFieldWidgetClass
theControlsBlackThresholdForm xm Form WidgetClass
theControlsBlackThresholdLabel xmLabelWidgetClass
theControlsBlackThresholdScale xmScaleWidgetClass
theControlsBlackThresholdTextField xmTextFieldWidgetClass
theControlsWhiteThresholdForm xmForm WidgetClass
theControlsWhiteThresholdLabel xmLabelWidgetClass
theControlsWhiteThresholdScale xmScaleWidgetClass
theControlsWhiteThresholdTextField xmTextFieldWidgetClass
theControlsSharpnessForm xmFormWidgetClass
theControlsSharpnessLabel xmLabelWidgetClass
theControlsSharpnessScale xmScaleWidgetClass
theControlsSharpnessTextField xmTextFieldWidgetClass
theVersionDialog xmMessageBoxWidgetClass
theHelpDialog topLevelShellWidgetClass
theHelpDialogMessageBox xm MessageBoxWidgetC lass
theHelpDialogPanedWindow xmPanedWindowWidgetClass
theHelpDialogTopicsForm xmFormWidgetClass
theHelpDialogTopicsLabel xmLabelWidgetClass
theHelpDialogTopicsList xmListWidgetClass
theHelpDialogTextForm xmFormWidgetClass
theHelpDialogTextLabel xmLabelWidgetClass
theHelpDialogScrolledText xmTextedWidgetClass
theExitMenultem xmPushButtonWidgetClass
thelnputFileSelectionDialog xmFileSelectionBoxWidgetClass
theOutputFileSelectionDialog xmFileSelectionBoxWidgetClass
thePaletteFileSelectionDialog xmFileSelectionBoxWidgetClass
theRecallSettingsFileSelectionDialog xmFileSelectionBoxWidgetClass
theRecallCalibrationFileSelectionDialog xmFileSelectionBoxWidgetClass
theGeneratePatchesFileSelectionDialog xmFileSelectionBoxWidgetClass
theSaveSettingsFileSelectionDialog xmFileSelectionBoxWidgetClass
theHalftoneMessageBox xmMessageBoxWidgetClass
theHalftonelnfoAreaForm xmFormWidgetClass
theHalftonelnputFilenameForm xmFormWidgetClass
theHalftonelnputFilenameLabel xmLabelWidgetClass
theHalftonelnputFilenameTextField xmTextFieldWidgetClass
theHalftoneOutputFilenameForm xmFormWidgetClass
theHalftoneOutputFilenameLabel xmLabelWidgetClass
theHalftoneOutputFilenameTextField xmTextFieldWidgetClass
theProgressScrollBar xmScrolledBarWidgetClass
theSetDefaultSettingMenultem xmPushButtonWidgetClass
theSeparationTypeSelectionForm xmFormWidgetClass
separationsTypeSelectionDialog xmMessageBoxWidgetClass
theSeparationsTypeSelectionRadioBox xmRowColumnWidgetClass
theRGBSeparationsTypeToggleButton xmToggleButtonWidgetClass
theCMYKSeparationsTypeToggleButton xmToggleButtonWidgetClass
theMultibandSelectionDialog xmMessageBoxWidgetClass
aURMultibandSelectionDialog xmRowColumnWidgetClass
aURSpinBoxForm xmFormWidgetClass
aCalibrationDialogMessageBox xmMessageBoxWidgetClass
aCalibrationDialogForm xmFormWidgetClass
aCalibrationDialogScrolledWindow xmScrolledWindowWidgetClass
aCalibrationDialogForm2 xmFormWidgetClass
aCalibrationDialoglmageView vlmageViewWidgetClass
theSeparationsMessageBox xmMessageBoxWidgetClass
theSeparationslnfoAreaForm xmFormWidgetClass
theSeparationslnputFilenameForm xmFormWidgetClass
theSeparationslnputFilenameLabel xmLabelWidgetClass
theSeparationslnputFilenameTextField xmTextFieldWidgetClass
theRedOutputFilenameForm xmFormWidgetClass
theRedOutputFilenameLabel xmLabelWidgetClass
theRedOutputFilenameTextField xmTextFieldWidgetClass
theGreenOutputFilenameForm xmFormWidgetClass
theGreenOutputFilenameLabel xmLabelWidgetClass
theGreenOutputFilenameTextField xmTextFieldWidgetClass
theBlueOutputFilenameForm xmFormWidgetClass
theBlueOutputFilenameLabel xmLabelWidgetClass
theBlueOutputFilenameTextField xmTextFieldWidgetClass
theCyanOutputFilenameForm xmFormWidgetClass
theCyanOutputFilenameLabel xmLabelWidgetClass
theCyanOutputFilenameTextField xmTextFieldWidgetClass
theMagentaOutputFilenameForm xmFormWidgetClass
theMagentaOutputFilenameLabel xmLabelWidgetClass
theMagentaOutputFilenameTextField xmTextFieldWidgetClass
theYellowOutputFilenameForm xmFormWidgetClass
theYellowOutputFilenameLabel xmLabelWidgetClass
theYellowOutputFilenameTextField xmTextFieldWidgetClass
theBlackOutputFilenameForm xmFormWidgetClass
theBlackOutputFilenameLabel xmLabelWidgetClass
theBlackOutputFilenameTextField xmTextFieldWidgetClass
theCloseMenultem xmPushButtonWidgetClass
theRedSpinBoxLabel xmLabelWidgetClass
theG reen SpinBoxLabel xmLabelWidgetClass
theBlueSpinBoxLabel xmLabelWidgetClass
theRedSpinBoxTextField xmTextFieldWidgetClass
theGreenSpinBoxTextField xmTextFieldWidgetClass
theBlueSpinBoxTextField xmTextFieldWidgetClass
theRedSpinBoxForm xm Form WidgetClass
theGreenSpinBoxForm xmFormWidgetClass
theBlueSpinBoxDorm xmFormWidgetClass
theRedlncrementArrowButton xmPushButtonWidgetClass
theGreenlncrementArrowButton xmPushButtonWidgetClass
theBluelncrementArrowButton xmPushButtonWidgetClass
theRedDecrementArrowButton xmPushButtonWidgetClass
theGreenDecrementArrowButton xmPushButtonWidgetClass
theBlueDecrementArrowButton xmPushButtonWidgetClass
theMultibandSelectionDialog_geometryManagerForm xmFormWidgetClass
Appendix B: Widget Hierarchy
K M N U
I I I I
I i I I
1 i
B University of Rochester Halftone Routine
A theMainWindow xmMainWindowWidgetClass
B theMenuBar xmRowColumnWidgetClass
C theWorkAreaForm xmFormWidgetClass
D theFilenameEntryForm xmFormWidgetClass
E theToolBarForm xmFormWidgetClass
F thePaletteFilenameForm xmFormWidgetClass
G theOutputFilenameForm xmFormWidgetClass
H thelnputFilenameForm xm Form WidgetClass
1 thelnputFilenamePushButton xm Push Button WidgetClass
J theOutputputFilenamePushButton xmPushButtonWidgetClass
K thePaletteFilenamePushButton xmPushButton WidgetClass
L theHalftonePushButton xmPushButtonWidgetClass
M theHalftoneAndQuitPushButton xmPushButtonWidgetClass
N theControlsPushButton xmPushButtonWidgetClass
0 thelnputFilenameLabel xmLabelWidgetClass
P theOutputFilenameLabel xmLabelWidgetClass
Q thePaletteFilenameLabel xmLabelWidgetClass
R thelnputFilenameTextField xmTextFieldWidgetClass
S theOutputFilenameTextField xmTextFieldWidgetClass
T thePaletteFilenameTextField xmTextFieldWidgetClass
U thePaletteFilenamePushButton xmPushButtonWidgetClass
2. The File Menu
E -feet Defaults
Input me.
Output File:j
Palette File:
i_
Widaet Names Widaet Classes
theControlsCascadeButton xmCascadeButtonWidgetClass
B theShowHideControlsMenultem xmPushButtonWidgetClass
theSaveSettingsMenultem xmPushButtonWidgetClass
theRecallSettingsMenultem xmPushButtonWidgetClass
theSetDefaultSettingMenultem xmPushButtonWidgetClass
theControlsPulldownMenu xmRowColumnWidgetClass
4. The Calibration Menu
Input Hie:
Output File:
Palette Rle:
L
Widaet Names Widaet Classes
theCalibrationCascadeButton xmCascadeButtonWidgetClass
theMakeTableMenultem xmPushButtonWidgetClass
theRecallTableMenultem xmPushButtonWidgetClass
theCalibrationPulldownMenu xmRowColumnWidgetClass
5. The Help Menu
Input Rle:
Output File:
Palette Rle:
theHelpCascadeButton xmCascadeButtonWidgetClass
B theVersionMenultem xmPushButtonWidgetClass
thelndexMenultem xmPushButtonWidgetClass
theHelpPulldownMenu xmRowColumnWidgetClass
6. Palette Selection
JBtu
Oatptf Male HtftmJKMt C«*rfa
Output FileriI/home/optics2/kaufman/test
For certain file types the user can select a palette of colors. When a
file of this type is entered into the Input File textfield the Palette pushbutton
becomes selectable. The pushbutton will open a File-Selection Dialog Box
so that the user can browse the choices of palette files. If the user already
knows the palette file they can input it into the Palette File textfield
7. The File-Selection Dialog
Motif provides a way of automating the task of selecting files with the
File-Selection Dialog. The dialog allows the user to type the filename, or
search through directories to find the file. Using the filter the user can
specify what type of files they want to find. The File-Selection dialog can be
altered to the users liking using the resource file. Htcontrol uses the stan-
dard File-Selection Dialog and resources which can be found in Ref. 1 and
Ref. 2.
8. The Halftone Progress Window
B
I
I
Halftone in Progress
lfc)RCB B
i CMYK
OK Cancel Help
J
B theSeparationTypeSelectionForm xmFormWidgetClass
theSeparationsTypeSelectionRadioBox xmFormWidgetClass
theRGBSeparationsTypeToggleButton xmToggleButtonWidgetClass
theCMYKSeparationsTypeToggleButton xmToggleButtonWidgetClass
10. The RGB Color Separations Progress Window
KN H E
I I I Bl
I
University of Rochester Halftone Routine
i • ^r
J i l i
Jil | wripnj Color Separations ...
D
I 'I' =
► ihpiltdileT /janedsk ?_.&?/ tec /hteontrol /te~To
i
► iRed file: /hOifi*/opTic-?2/l .-tufn.an.
1
► Greg Riet /hvin':':/v6Tl''.32/f cti/fn^!Vtciit 111::G
O L I F
Widaet Names Widaet Classes
A theSeparationsMessageBox xmMessageBoxWidgetClass
B theSeparationslnfoAreaForm xmFormWidgetClass
C theProgressScrollBar xmScrolledBarWidgetClass
D theSeparationslnputFilenameForm xmFormWidgetClass
E theSeparationslnputFilenameLabel xmLabelWidgetClass
F theSeparationslnputFilenameTextField xmTextFieldWidgetClass
G theRedOutputFilenameForm xmFormWidgetClass
H theRedOutputFilenameLabel xm Label WidgetClass
1 theRedOutputFilenameTextField xmTextFieldWidgetClass
J theGreenOutputFilenameForm xmFormWidgetClass
K theGreenOutputFilenameLabel xmLabelWidgetClass
L theGreenOutputFilenameTextField xmTextFieldWidgetClass
M theBlueOutputFilenameForm xmFormWidgetClass
N theBlueOutputFilenameLabel xmLabelWidgetClass
0 theBlueOutputFilenameTextField xmTextFieldWidgetClass
11. The CMYK Color Separations Progress Window
K N H ,
Hi Bl
I IÜ
illrii /ersity of Rochester Halftone Rou tine
'Ml
m\
U | miüfiglcolor Separations ...
~T~P
IJ
+. Cyln
R O L I F
Widaet Names Widaet Classes
B H
Widaet Names Widget Classes
A theControlsDialog transientShellWidgetClass
B theControlsMessageBox xmMessageBoxWidgetClass
C theControlsForm xmFormWidgetClass
D theControlsApplyButton xmPushButtonWidgetClass
E theControlsResetButton xmPushButtonWidgetClass
F theControlsColorFrame xmFrameWidgetClass
G theControlsFineFrame xmFrameWidgetClass
H theControlsColorForm xmFormWidgetClass
1 theControlsFineForm xmFormWidgetClass
J theControlsColorLabel xmLabelWidgetClass
K theControlsFineLabel xmLabelWidgetClass
L theControlsCyanForm xmFormWidgetClass
M theControlsCyanLabel xmLabelWidgetClass
N theControlsCyanScale xmScaleWidgetClass
0 theControlsCyanTextField xmTextFieldWidgetClass
P theControlsMagentaForm xm Form WidgetClass
Q theControlsMagentaLabel xmLabelWidgetClass
R theControlsMagentaScale xmScaleWidgetClass
S theControlsMagentaTextField xmTextFieldWidgetClass
T theControlsYellowForm xmFormWidgetClass
U theControlsYellowLabel xmLabelWidgetClass
Widaet Names Widaet Classes
1
V theControlsYellowScale xmScaleWidgetClass
}
W theControlsYellowTextField xmTextFieldWidgetClass
i
X theControlsBlackForm xmFormWidgetClass
i
Y theControlsBlackLabel xmLabelWidgetClass
l theControlsBlackScale xmScaleWidgetClass
4
i theControlsBlackTextField xmTextFieldWidgetClass
l) theControlsDarknessForm xmFormWidgetClass
cJ theControlsDarknessLabel xmLabelWidgetClass
ci theControlsDarknessScale xmScaleWidgetClass
ei theControlsDarknessTextField xmTextFieldWidgetClass
f theControlsBlackThresholdForm xmFormWidgetClass
S1 theControlsBlackThresholdLabel xmLabelWidgetClass
h theControlsBlackThresholdScale xmScaleWidgetClass
1 theControlsBlackThresholdTextField xmTextFieldWidgetClass
j theControlsWhiteThresholdForm xmFormWidgetClass
k theControlsWhiteThresholdLabel xmLabelWidgetClass
1 theControlsWhiteThresholdScale xmScaleWidgetClass
rri theControlsWhiteThresholdTextField xmTextFieldWidgetClass
n theControlsSharpnessForm xmFormWidgetClass
0 theControlsSharpnessLabel xmLabelWidgetClass
P theControlsSharpnessScale xmScaleWidgetClass
q
theControlsSharpnessTextField xmTextFieldWidgetClass
13. The Printing Patches Progress Window
B
IF
I
theGeneratePatchesFileSelectionDialog xmFileSelectionBoxWidgetClass
B thePatchesMessageBox xmMessageBoxWidgetClass
thePatcheslnfoAreaForm xmFormWidgetClass
theProgressScrollBar xmScrolledBarWidgetClass
thePatchesOutputForm xmFormWidgetClass
thePatchesOuputLabel xmLabelWidgetClass
thePatchesOuputTextField xmTextFieldWidgetClass
14. The Make Calibration Table Window
theCalibrationDialogMessageBox xmMessageBoxWidgetClass
B aCalibrationDialogForm xmFormWidgetClass
aCalibrationlmageView vlmageViewWidgetClass
15. The Version Menu Window
A|
1997
OK
B M H C
ID
Multiband Selection
Green #--.
T Hu?
fLI
Mz —-L
i +
11 K
u OK
i
i I I
Cancql
I
O J
E
K
N I
I
I
I
\
\
\
P Q
Widaet Names Widaet Classes
A theMutlibandSelectionDialog xmMessageBoxWidgetClass
B theMultibandSelectionDialog_geometry
xmFormWidgetClass
ManagerForm
C theRedSpinBoxForm xmFormWidgetClass
D theRedSpinBoxLabel xmLabelWidgetClass
E theRedSpinBoxTextField xmTextFieldWidgetClass
F theRedlncrementArrowButton xm Push Button WidgetClass
G theRedDecrementArrowButton xmPushButtonWidgetClass
H theGreenSpinBoxForm xmFormWidgetClass
1 theGreenSpinBoxLabel xmLabelWidgetClass
J theGreenSpinBoxTextField xmTextFieldWidgetClass
K theGreenlncrementArrowButton xmPushButtonWidgetClass
L theGreenDecrementArrowButton xmPushButtonWidgetClass
M theBlueSpinBoxForm xmFormWidgetClass
N theBlueSpinBoxLabel xmLabelWidgetClass
0 theBlueSpinBoxTextField xmTextFieldWidgetClass
P theBluelncrementArrowButton xmPushButtonWidgetClass
Q theBlueDecrementArrowButton xmPushButtonWidgetClass
18. Standard Error Message
Error Dialog
Missing Filename
No calibration table filename provided
OK
Question Dialog
Filename Exists
OK Cancel
L^
A question dialog window is also created using a standard dialog. A
standard dialog consists of three parts: the text message, an icon showing
what kind of dialog is being displayed and three pushbuttons(OK, Cancel,
and Help). In the question dialog above the Help button is removed. This
dialog displays a question which the user can agree with by pressing the
OK buttton or disagree with by pressing the Cancel button.
APPENDIX C: Error Messages
readCalibrationPatchesError maketableError
calibrationPatchesFileFormatError writeError
separationsFilenameExists unwritableSeparationsFilename
noInputFilename invalidlnputFilename
noOutputFilename invalidOutputFilename
outputFilenameExists noPaletteFilename
invalidPaletteFilename noCalibrationTableFilename
unwritableCalibrationTableFilename noCalibrationPatchFilename
unreadableCalibrationTableFilename calibrationTableFilenameExists
unreadableCalibrationPatchFilename noControlsSettingsFilename
unwritabieCalibrationPatchFilename calibrationPatchFilenameExists
unwritableControlsSettingsFilename controlsSettingsFilenameExists
unreadableControlsSettingsFilename noSeparationsFilename
unwritableSeparationsFilename noHalftoneExecutableFilename
invalidHalftoneExecutableFilename writeControlsSettingsError
noSeparationsExecutableFilename readCalibrationPatchError
invalidSeparationsExecutableFilename outputOpenError
noPatchesExecutableFilename inputOpenError
invalidPatchesExecutableFilename erdasOpenError
writeDefaultControlsSettingsError paletteReadError
calibrationPatchFileFormatError tangentOpenError
tiff Open Error tifflnitError
unkownlnputFileTypeError separationsWriteError
theHalftonelnputFilenameLabel theRedSpinBoxLabel
theHalftoneOutputFilenameLabel theGreenSpinBoxLabel
theHalftonelnputFilenameTextField theBlueSpinBoxLabel
theHalftoneOutputFilenameTextField overlapReadError
theMultibandSelectionDialog calibrationReadError
outputWriteError erdasHalftoningError
tangentHalftoningError tiffHalftoningError
APPENDIX D: Application Resources
XtNdefaultCyanValue
XtCDefaultCyanValue
XtNdefaultMagentaValue
XtCDefaultMagentaValue
XtNdefaultYellowValue
XtCDefaultYellowValue
XtNdefaultBlackValue
XtCDefaultBlackValue
XtNdefaultDarknessValue
XtCDefaultDarknessValue
XtNdefaultBlackThresholdValue
XtCDefaultBlackThresholdValue
XtNdefaultWhiteThresholdValue
XtCDefaultWhiteThresholdValue
XtNdefaultSharpnessValue
XtCDefaultSharpnessValue
XtNcyanValue
XtCCyanValue
XtNmagentaValue
XtCMagentaValue
XtNyellowValue
XtCYellowValue
XtNblackValue
XtCBIackValue
XtNdarknessValue
XtCDarknessValue
XtNblackThresholdValue
XtCBIackThresholdValue
XtNwhiteThresholdValue
XtCWhiteThresholdValue
XtNsharpnessValue
XtCSharpnessValue
XtNcalibrationFilename
XtCCalibrationFilename
XtNpaletteFilename
XtCPaletteFilename
XtNdefaultSettingsFilename
XtCDefaultSettingsFilename
XtNhalftoneExecFilename
XtCHalftoneExecFilename
XtNseparationsExecFilename
XtCSeparationsExecFilename
XtNpatchesExecFilename
XtCPatchesExecFilename
XtNhelpFilename
XtCHelpFilename
XtNtangentFilenameExtension
XtCTangentFilenameExtension
XtNtiffFilenameExtension
XtCTiffFilenameExtension
XtNerdasFilenameExtension
XtCErdasFilenameExtension
XtNredSeparationFilenameExtension
XtCRedSeparationFilenameExtension
XtNredSeparationFilenameExtension
XtCRedSeparationFilenameExtension
XtNgreenSeparationFilenameExtension
XtCGreenSeparationFilenameExtension
XtNblueSeparationFilenameExtension
XtCBIueSeparationFilenameExtension
XtNcyanSeparationFilenameExtension
XtCCyanSeparationFilenameExtension
XtNmagentaSeparationFilenameExtension
XtCMagentaSeparationFilenameExtension
XtNyellowSeparationFilenameExtension
XtCYellowSeparationFilenameExtension
XtNblackSeparationFilenameExtension
XtCBIackSeparationFilenameExtension
XtNcalibrationFilenameExtension
XtCCaJibrationFilenameExtension
XtNpaletteFiienameExtension
XtCPaletteFilenameExtension
XtNseparationsType
XtCSeparationsType
APPENDIX E: Example Resource File - Htcontrol 3.0