Category : Printer + Display Graphics
Archive   : OVIP1.ZIP
Filename : OVIP1.DOC

Output of file : OVIP1.DOC contained in archive : OVIP1.ZIP

* *
* *
* OOO 1 000 *
* O O o 11 0 0 *
* O O 1 0 0 *
* O VVVVV VVV I PPPP 1 0 0 *
* O O V V I P P 1 0 0 *
* O O VV I P P 1 .. 0 0 *
* OOO V I PPPP 111 .. 000 *
* P *
* P *
* P *
* *





1 9 9 2





1.1 About this document

1.2 About OVIP


2.1 Hardware requirements

2.2 Installation

2.3 User interface


3.1 About OVIP menu

3.2 File menu
3.2.1 a word on file formats
3.2.2 opening an image file
3.2.3 importing an image
3.2.4 creating a new image
3.2.5 duplicating an image
3.2.6 saving an image
3.2.7 printing an image
3.2.8 exiting OVIP

3.3 Edit menu
3.3.1 copying image data
3.3.2 pasting an image
3.3.3 clearing an image
3.3.4 converting a color image to monochrome

3.4 Analysis menu
3.4.1 point values
3.4.2 intensity profiles
3.4.3 perspective plots of intensity
3.4.4 image statistics

3.5 Enhance menu
3.5.1 histogram equalization
3.5.2 linear stretch
3.5.3 interactive binary threshold
3.5.4 image scaling
3.5.5 image rotation, mirroring, and transposition

3.6 Filter menu
3.6.1 high-pass filtering
3.6.2 low-pass filtering
3.6.3 order statistics filtering

3.7 Draw menu
3.7.1 palette manipulation
3.7.2 drawing tools

3.8 Miscellaneous menu
3.8.1 changing the cursor





OVIP is a shareware product. You are granted the right
to distribute this software freely, provided you always
distribute the executable program along with all of the
original documentation and provided you do not charge for
the software. You may not alter any file nor may you
modify the package through the addition or omission of any

How to register

You are granted a limited license to use this product on
a trial basis for a period of 15 days. If you wish to
continue using the product after this trial period, you
must register by sending twenty dollars ($20) US to:

OVIP 1.0 Registration
Oviparous Software
P.O. Box 611992
San Jose, CA 95161-1992

A registration form at the end of this document is provided
for you to fill out and mail along with your registration

Why you should register

OVIP 1.0 took a considerable amount of work to complete.
You are obligated, both morally and legally, to adhere to
the terms of use outlined above.

What you get for registering

When you register, you will receive a letter confirming
the receipt of your registration fee. By registering, you
are entitled to use all releases of OVIP in the version 1.X
series. In addition, you will be able to upgrade to
future versions at a discount rate.

Limitation of liability

In no event shall Oviparous Software be liable for any
damages whatsoever arising out of the use or inability to
use OVIP 1.0 and any of its accompanying files. Because
some states do not allow the exclusion of liability for
consequential or incidental damages, the above limitation
may not apply to you.

Technical support

Technical support is currently available only by mail.
All problems and queries will be answered promptly. Please
provide as much detail as possible (preferably including
any image files necessary to recreate the problem). As
well, please provide complete details of your computer's
configuration. Send your support questions to:

OVIP 1.0 Technical Support
Oviparous Software
P.O. Box 611992
San Jose, CA 95161-1992


1.1 About this document

This document serves to inform the user of the functions
performed by OVIP 1.0. The first chapter gives a brief
history of why OVIP was created.

The second chapter describes the hardware and software
requirements of OVIP 1.0. As well, the user interface is
also described.

Chapter three is broken into sections that correspond to
the pull-down menus in the graphical user interface.
Each section has subsections that roughly correspond to
the menu items in each pull-down menu. The functions
of each menu item are described in detail in their
respective subsection of chapter3.

At the end of the manual is a customer survey that you
are strongly encouraged to fill out after you have used
OVIP 1.0 for a few hours.

1.2 About OVIP

OVIP was created for the purpose of displaying, analyzing,
and manipulating images on PC-AT compatibles with SVGA
video systems capable of displaying at 640x480 pixels
with 256 colors. It is aimed specifically at "high-end"
systems (those with SVGA, mouse, and substantial amounts
of memory). While many of the image filtering and
enhancement functions are useful only for gray-scale images,
overall OVIP was designed for use with both gray-scale and
color images.


2.1 Hardware requirements

The following minimum system requirements are needed to
run OVIP 1.0:

1) Super VGA card with enough memory (usually 512K
or more) to use the 640x480x256 mode. The
following video cards are currently supported:

Orchid Prodesigner II (Tseng ET4000)

2) Super VGA monitor (color recommended).

3) 80286, 80386, or 80486 CPU

4) DOS 4.1 or better

5) Microsoft mouse (or compatible)

6) Some extended memory.

7) Epson RX series printer (optional)

When an image is loaded, it resides entirely in extended
memory. There is no lower limit to the amount of extended
memory that your system must have to run OVIP. The more
extended memory your system has, the more (or larger) images
can be loaded at the same time. If no extended memory is
available, then it will not be possible to load any images.
Extended memory is used directly without conforming to the
XMS standard. Thus if HIMEM.SYS is installed, it will appear
to OVIP that no extended memory is available. The call to
install HIMEM.SYS usually is made in your CONFIG.SYS file.
By commenting out the call to install HIMEM.SYS, you will be
able to use OVIP.

2.2 Installation

OVIP 1.0 is released with two files:


The first file is the executable and the second file is the
ASCII text version of this document (the users manual).
You may run OVIP from any floppy or hard disk. Once you
have copied OVIP1.EXE into a suitable directory, go to that
directory (using the change directory command) and simply
type 'OVIP1'. There are currently no command-line options
in OVIP.

2.3 User interface

It is assumed that the user has had enough experience with
graphical user interfaces to be familiar with the operation
of a mouse (including functions such as "clicking on"
objects), pull-down menus, dialog boxes, and windows.
OVIP 1.0 has its own graphical user interface. The
interface consists of three main features:

1) The menu bar

2) Windows

3) Dialog boxes

When OVIP is first started, only the menu bar and mouse
cursor will be displayed. The menu bar is located at the
top of the screen and displays a series of text strings
horizontally across the screen. Clicking on one of these
text strings causes the corresponding pull-down menu to
appear. To select an item from a menu, click on the menu
and drag the cursor to the menu item, then release the
mouse button. Once a menu item is selected, an action of
some sort will usually occur.

Dialog boxes are used as the primary means of getting
information from the user. Dialog boxes are static
graphics objects and the presence of one on the screen
precludes the use of any other graphical object (including
the menu). Dialog boxes come in many forms and are
described in detail in chapter 3.

Windows are used to display images, as well as a few other
things (such as the palette). Windows differ from dialog
boxes in that they are not static. Windows may be moved
around, and the presence of one does not preclude the use
of other graphics objects. When several windows exist,
they may overlap each other. An occluded window may be
brought to the front by clicking on it. The front-most
window (the current window) will be used in all processing
functions selected. The upper left box of all windows
is used to close the window. The drag bar (which also
displays the window's title) is used to move the window
around. Windows that are used for images have additional
features. The upper right corner of an image window is
used to display the image, centered on the screen, on
a black background (no other images will be visible, nor
will the menu bar or cursor). Clicking the mouse button
will restore the graphics state of the program. The lower
right corner is used to resize the image window. The
scroll-bars may be used when the dimensions of the image
exceed the dimensions of the window.

As with many programs, the best way to understand the OVIP
user interface is to try it out and learn as you go.


3.1 About OVIP menu

This menu item starts a series of dialog boxes that treat
the user to a rendering of the illustrious Oviparous
Software logo. As well, the version number, copyright,
and registration information are given.

3.2 File menu

3.2.1 a word on file formats

In addition to raw binary (or raster) images, OVIP 1.0 is
capable of loading and storing images under three different
file formats. One of the main advantages of using one of
the formatted file types is that the image parameters (size,
radiometric resolution, color lookup table (LUT)) need not
be re-entered every time the image is loaded. A secondary
benefit of using a file format is the possibility of
incorporating data compression into the format specification
to reduce the amount of space needed to store the image.

There are dozens of competing file formats in use today.
OVIP 1.0 uses the following three image file formats; GIF,

GIF (an acronym for Graphics Interchange Format) was
developed by Compuserve. GIF was chosen because of its
popularity (especially in the PC arena). OVIP 1.0 only
supports the GIF87a format. The more recent GIF89a format
is not yet supported. The GIF format is based on a
compression algorithm known as LZW (the initials of the

TIFF (an acronym for Tag Image File Format) was developed
jointly by Aldus and Microsoft. TIFF was also chosen to be
included in OVIP 1.0 because of its popularity across many
platforms. TIFF is capable of storing images in a wide
variety of ways (both compressed and uncompressed).
OVIP 1.0 uses TIFF Rev. 4.0 tags and only uses a somewhat
minimal set of tags. Only uncompressed TIFF files are
supported. Thus, most TIFF files created by OVIP will be
portable, however, some TIFF files (especially compressed
ones) created by other programs may not be readable by

The OVIP format was created to address some of the short-
comings of the other two file formats. Similar to the
GIF format (but simpler), it has a fixed-length header.
Unlike GIF, it can be used to store images either compressed
or uncompressed. The compression algorithm used is a
combination of DPCM and run-length coding, coupled with
variable-length coding (shift-codes).

Given the choice of file formats, which one is best for
you? Obviously it depends on your application. The first
question is whether to compress or not compress.
Compression adds a considerable delay when loading and
storing images. This is because of the computation required
to unpack and decode (or pack and encode when saving) the
image data. So, if you have lots of space on your hard disk
and you want to load images frequently, use the OVIP
uncompressed or TIFF formats. If your disk space is limited
(this is especially true when storing images on a floppy
disk) or if you only access the image infrequently, use the
OVIP compressed or GIF formats.

If you decide to use a compressed format, you must choose
between the OVIP compressed and GIF formats. Both formats,
as currently implemented, take about the same time to load
an image. One approach to deciding which format to use is
to save the image using both formats and delete the larger
of the two files.

The LZW algorithm used in GIF files was designed to
recognize patterns. It gathers statistics on the image
data, on-the-fly, in the form of a table that records
strings that have been encountered. Once the string table
gets too large, it is reset and starts to get filled again.
Thus, this algorithm is fairly adaptive. Unfortunately,
this algorithm is only capable of matching EXACT patterns.
This becomes a serious problem for digitized video images
containing many quantization levels and even small amounts
of background noise.

OVIP, on the other hand, gathers all the statistics, up
front, in a single pass through the image. It then uses
the statistics to determine the parameters that will
optimize the performance (i.e. maximize the compression) of
the algorithm. Thus, OVIP is slower at saving files than
GIF, and the compression technique is less adaptive since
global image statistics are used. However, since the
statistics are precomputed, OVIP compressed files load
faster than GIF files. This is important since images
are usually saved once and then loaded many times.
Because OVIP uses DPCM, it is much more robust when noise
is added to the image. Unlike GIF files, the OVIP
algorithm is capable of recognizing when it cannot compress
an image and will then use its uncompressed format. GIF
will apply its algorithm to an image regardless of the
results. This means that GIF files are sometimes larger
compressed than the original uncompressed binary file!

Unfortunately, there is no fast method to determine
which format to choose. A number of images were downloaded
from BBSs and Usenet. Almost all of these images were
color and with varying amounts of radiometric resolution.
The GIF LZW compressor consistently performed marginally
better than the OVIP compressor. Next, a series of large
(512x480) monochrome images were taken using a CCD camera
and an 8-bit frame-grabber. In this case the OVIP
compressor consistently compressed the images to just over
half their original size. The GIF compressor consistently
performed worse than the OVIP compressor and in one case
actually used 20% more disk space than the original binary
image. Note that both of these formats are lossless, meaning
that when compressed and decompressed, the pixel values are
identical to those prior to compression.

Another issue in choosing a file format is portability.
TIFF was developed to maximize the flexibility of the
format. This flexibility approach was taken to such an
extreme that the cost to the developer trying to use all tag
types becomes excessive. This problem is compounded by the
open-ended nature of the file structure that allows any user
to obtain a set of unique tags for their personal
definitions. Thus, TIFF files of any complexity will
probably not be very portable.

OVIP, being a new entrant into the image file format arena
is, on the surface, not very portable. When uncompressed
OVIP is used, the raw binary image data is relatively easy
to extract. The uncompressed OVIP file format is shown

| 256 Byte Header |
| 256*3 Byte 8-bit Color LUT |
| Image Data |

Thus, by stripping off the first 1024 bytes of the file,
the raw image data may be directly accessed. The OVIP
compressed format requires a program capable of decoding
that data. The OVIP format may be used without royalty
payment, so long as proper acknowledgment is made to
Oviparous Software. Complete specifications (including
documented 'C' files) are available free of charge by
sending a floppy disk and SASE to:

OVIP 1.0 Developers Documentation
Oviparous Software
P.O. Box 611992
San Jose, CA 95161-1992

Of the three formats, GIF is currently the most widely
used. Raw binary images are also very portable, but require
the user to remember the image parameters.

3.2.2 opening an image file

The OPEN menu item calls up a dialog box with several
controls. At the top of the dialog box is the current
directory path. The boxes directly below the path show the
files (on the right) and the sub-directories (on the left).
Clicking on a file will highlight it. Clicking on a
sub-directory or disk will immediately change the current
path, causing the file and directory boxes to be refreshed.
The user may move through the directory tree until the
desired image file is located. Below the file box are
a set of buttons that allow the user to select the file
type (GIF, TIFF, OVIP). The default setting is AUTO
DETECT. If the image files conform to their specifications,
the user should never have to explicitly select a file
format. Once the appropriate format has been selected, the
user selects the file from the file box (the highlighted
file is the one that will be opened). To open the selected
file, click on the OPEN button. Pressing CANCEL will abort
the process. Once the OPEN button has been pressed, the
image will be loaded and placed in a window which will
be the current window. Note that when loaded using
AUTO DETECT, the name of the file is irrelevant, the file
format is detected using the first few bytes of the file.
Also note that when an image is loaded, its pixel values
and LUT are re-mapped (if necessary) to make LUT[0] black
and LUT[255] white.

3.2.3 importing an image

The IMPORT function is used to load 8 bits/pixel images
stored in a binary raster format. The dialog box for the
IMPORT function is very similar to that of the OPEN function
(see 3.2.2). The only difference is that the file format
selection controls have been replaced with four text boxes
in which the user must enter the size of the file header,
the number of pixels per scan line, the number of lines per
band, and the number of bands. Once an image has been
selected, and the OPEN button is pressed, the image will
be loaded. The number of bytes specified in the header
entry will be skipped, and then the data for the image is
read in and displayed in a new window (which will be the
current window).

Note that since raw binary images do not carry an
associated LUT, a gray scale LUT will be automatically
assigned to the image. Note also that, although OVIP 1.0
can read in multiband images, only the first band will
be displayed.

3.2.4 creating a new image

The NEW function allows the user to create a new image.
A dialog box appears which allows the user to select the
horizontal and vertical size of the image. As well, the
user can select one of two palettes for the image (gray
scale or color spectrum). Finally, the user may choose
the fill color of the image. When the OK button is
pressed, the specified image is created (the image is a
solid fill of the specified color). A window then appears
with the new image.

3.2.5 duplicating an image

When DUPLICATE is selected, the current window is checked.
If it is not an image window (or if there are no windows)
the user is alerted and nothing happens. Otherwise, a copy
of the image in the current window is made in memory and
the image is then displayed in its own image window.

3.2.6 saving an image

When selected, the current window is checked. If it is
not an image window, or if no windows exist, the user is
alerted and no action is taken. Otherwise, a dialog box
appears. The dialog box is similar in appearance to those
for opening and importing images (see 3.2.2 and 3.2.3).
The current path is displayed at the top of the dialog box.
Below the path, to the left, is a box listing the sub-
directories and disks. This box is used to move around in
the DOS directory tree. Thus a file may be saved anywhere
on the disk. The name of the file is to the right of the
directory box and is contained in two text boxes (one for
the 8-character file name, and one for the 3-character
extension). Below the directory box is a set of buttons
that allow the user to select the format that the image is
to be saved as (see 3.2.1). Note that selecting a format
causes the extension of the file name to be set to the
default for that file format. Thus, in cases where
"non-standard" extensions are used, always select the file
format prior to changing the name.

Pressing the SAVE button initiates the file writing
routine. If the named file already exists, the user is
prompted for a decision as to whether or not to overwrite
the existing file. Note that, regardless of the number of
bits per pixels of radiometric resolution the image
originally had when loaded, it will always be represented
internally and saved using 8 bits per pixel.

3.2.7 printing an image

Image printing (hardcopy) has only been implemented on
an Epson RX series dot-matrix printer. Unfortunately, I've
got no other printers to do tests with. If you really need
printer support, make sure you fill in your customer survey
and let your voice be heard!

3.2.8 exiting OVIP

Selecting the QUIT option terminates OVIP 1.0. All
images currently on the screen will be lost. OVIP 1.0
will return the graphics state to its original mode
upon termination.

3.3 Edit menu

3.3.1 copying image data

Before COPY is selected, the user must define a
rectangular region within the current window. This is done
by clicking on a point within the window and dragging the
cursor to a second point. In the process, a rectangular
outline will be interactively updated. Upon release of the
mouse button, the outline will remain until another action
is taken (at which time the outline will be erased). If
the action immediately following the area selection is a
COPY command, the set of pixels within the rectangle is
copied into OVIP's internal copy storage area (hidden from
the user). The copied data will remain there until the
COPY option is selected again.

3.3.2 pasting an image

Like COPY (see 3.3.1), PASTE requires the user to use the
mouse to define a rectangular region within the current
window. If the region defined is smaller than the image
previously copied, the image will be clipped on the right
and bottom so that it will fit in the paste rectangle. If
the rectangle exceeds the size of the image previously
copied, then the copied image will be placed in the upper
left corner of the paste rectangle.

3.3.3 clearing an image

When CLEAR is selected, the current image will be cleared
by setting all of its pixels to the current color. The
default current color is 255. Actually, the term "current
color" is a misnomer. Perhaps "current pixel value" is
more accurate. In any event, the current color is set
using the palette (see 3.7.1).

3.3.4 converting a color image to monochrome

When COLOR->B&W is selected, the current image is
converted to a black and white image. This is done by
mapping each pixel in the image using:

new_pixel_value = (LUT[RED][old_pixel_value] +
LUT[GREEN][old_pixel_value] +
LUT[BLUE][old_pixel_value]) / 3

The image is then given a gray scale LUT and redisplayed in
its original window.

3.4 Analysis menu

3.4.1 point values

When POINT VALUES is selected, the menu bar is erased.
In its place the coordinates of the cursor are displayed
along with the pixel value at that coordinate. These values
are updated as the user moves the cursor around the screen.
When the mouse button is pressed, the process stops and
the menu bar is returned to its normal state.

3.4.2 intensity profiles

The PROFILE option requires two points to be input by the
user. The points are entered using the mouse. When first
selected, the menu bar disappears and the coordinates of the
cursor are displayed in its place. The coordinates of the
first point are updated until the mouse button is pressed.
Once pressed, the second coordinate is displayed. As the
mouse is moved around further (with the mouse button still
depressed), the second coordinate is updated. As well, a
line between the first coordinate and the second coordinate
is displayed and updated as the cursor is moved. Finally,
when the mouse button is released, the menu bar is restored
and the line between the coordinates is erased.

Next, a new image is displayed which is a plot of the
pixel values that were under the line between the two
points. The axis of ordinates of the plot is the pixel
value (from 0 to 255) and the axis of abscissas is the
pixel (where pixel 0 is the pixel under the first point and
the last pixel is that under the second point). Hence the
term intensity profile. This profile plot is itself an
image and may be processed and saved as such.

3.4.3 perspective plots of intensity

The PERSPECTIVE PLOT option, like the intensity profile
option (see 3.4.2), also requires two points. The two
points are selected interactively using the mouse
(see 3.4.2) and define a rectangle. The set of pixels
under the rectangle are then plotted using a perspective
projection and a "wire-frame" to give the appearance of a
3-D surface in which the height component is the pixel
value. The resulting plot is displayed in an image window
and is thereafter treated as an image.

3.4.4 image statistics

When the STATISTICS option is selected, the image in the
current window is run through an elementary statistical
analysis. An image window is then displayed showing a
histogram of the image (this gives details of the relative
frequency of the pixel values). As well, the maximum,
minimum, mean, and standard deviation of the pixel values
are shown. The image window containing the histogram plot
with the statistics is thereafter treated the same as any
other image.

3.5 Enhance menu

3.5.1 histogram equalization

The EQUALIZE function is a commonly used image enhancement
technique. It is applicable only to images with a gray-
scale LUT. Applying this function to a color image will
most likely lead to an unrecognizable result. The histogram
equalization process is a contrast enhancement technique
which has the effect of transforming the image so that the
histogram is flat (uniform distribution of pixel values).
Of course, because of the discrete nature of the image, the
histogram will be only approximately flat. The histogram
equalization process is documented in [Schowengerdt R.A.,
"Techniques for Image Processing and Classification in
Remote Sensing" Academic Press, 1983]. When selected, the
current image is transformed and the pixel values of the
image are re-mapped. The transformed image is then
displayed in the original image window.

3.5.2 linear stretch

LINEAR STRETCH is another commonly used contrast
enhancement algorithm. Like the histogram equalization
technique (see 3.5.1), this method is only applicable to
black and white (gray-scale) images and will produce
unpredictable results if applied to color images. The
actual algorithm used is very simple. First the minimum
and maximum pixel values are found. Then all pixels in
the image are re-mapped according to:

new_value = (255 * (old_value - minimum_value) /
(maximum_value - minimum_value))

The transformed image replaces the original image in
memory, after which the window is refreshed.

3.5.3 interactive binary threshold

The THRESHOLD option calls up the binary threshold window
(or brings it to the front if it was already present).
Within the threshold window are three sliding controls.
The controls represent the thresholds for the red, green,
and blue components of the RGB color space. If a pixel
value is less than the threshold value, then the pixel value
is dropped to zero. Otherwise it is raised to its maximum
(255). Hence, for each of the primary colors, the image is
binary. Note that the thresholding process is applied to
the LUT of the most current image window. The binary
threshold window may remain on-screen indefinitely, but the
controls and thresholds are applied only if the threshold
window is the current window.

The user may change the threshold interactively by
clicking on the sliding controls. The text boxes to
the right of the sliding threshold controls hold the
threshold value. The values in these boxes may be altered
in order to effect a change on the threshold. If the
"coupled" button is activated, all three thresholds will be
given the same value and will retain the same value as
any control is moved. By pressing on the APPLY TO IMAGE
button, the threshold is applied to the most current image
by altering all of its pixel values according to the
threshold chosen. The binary threshold window will close
itself after APPLY TO IMAGE has been pressed.

3.5.4 image scaling

Selection of the SCALE option calls up a dialog box with
several controls. The two buttons at the top allow the
user to choose whether to allow independent scaling along
the two axes of the image. By default, the image is scaled
the same on both axes. Below this button are the text
box(es) (two if independent scaling is chosen, one
otherwise) in which the user is to enter the scale
factor(s). The next two buttons determine the interpolation
method used in the scaling process. Bilinear interpolation
produces substantially better results than nearest-neighbor
interpolation, however the computation time required is
increased. The user is referred to [Schowengerdt R.A.,
"Techniques for Image Processing and Classification in
Remote Sensing" Academic Press, 1983] for details on these
interpolation methods.

Once a scale factor and interpolation method are chosen,
pressing the OK button initiates the scaling process,
after which the scaled image is re-displayed in its window.

3.5.5 image rotation, mirroring, and transposition

The ROTATE option calls up a dialog box with a choice of
four transformations; 90 degree rotation, horizontal flip,
vertical flip, and transpose. The user is to select
one of these transformations and then press the OK button,
after which the image will be transformed and re-displayed
in its window. The 90 degree rotation is a counter
clockwise rotation which has been implemented as a
horizontal flip followed by a transpose

3.6 Filter menu

The filters described in this section are only useful
for gray-scale images. Using them on color images will
give unpredictable results. The interested reader is
referred to [Pratt W.K., "Digital Image Processing", Wiley
Interscience, 1978] for detailed descriptions of the
filters discussed below.

3.6.1 high-pass filtering

When the HIGH-PASS option is chosen, a dialog box prompts
the user for the kernel type (Sobel, Prewitt, or simple)
and for the operation (gradient magnitude, horizontal
derivative, vertical derivative, or orientation). When used
in conjunction with the THRESHOLD option (see 3.5.3), these
filters can be used for edge detection.

3.6.2 low-pass filtering

The LOW-PASS option allows the user to select a low-pass
filter. A choice of four filter kernels is available to
select from. The 2x2 and 3x3 kernels tend to blur the image
evenly in both directions. The 3x1 (horizontal) and
1x3 (vertical) filters are directional. These filters are
typically used for noise reduction in images.

3.6.3 order statistics filtering

The ORDER STATISTICS option allows the user to choose one
of three order statistics filters; the median filter, the
maximum filter (or dilation), or the minimum filter (or
erosion), As well, the user may select the direction
of the filter. The median filter is an edge-preserving
smoothing filter (that is, it tends to reduce sharp noise
spikes without blurring edges). The minimum and maximum
filters are morphological filters and together are useful
for skeletonizing binary images.

3.7 Draw menu

3.7.1 palette manipulation

The SHOW PALETTE option displays the palette window (or
makes it the current window if it is already on-screen).
The palette window initially displays a gray-scale palette.
The controls to the right allow the user to choose a
different palette. By pressing the box labeled IMAGE, the
LUT of the most current image window is transferred to the
palette LUT. The APPLY TO IMAGE button copies the palette
LUT to the most current image window. The combination of
these two controls allows the user to transfer LUTs across

The INVERT box "inverts" the palette LUT according to:

NEW_LUT[i] = OLD_LUT[255-i] (0 < i < 255)

Note that LUT[0] (black) and LUT[255] (white) are never
changed. This is because doing so would spoil the OVIP
graphical user interface which depends on having these
two LUT values stable. The ROTATE box causes the palette
to be rotated according to:

NEW_LUT[i] = OLD_LUT[i+1] (0 < i < 254)

NEW_LUT[254] = OLD_LUT[1]

This rotation is synchronized with the computer's clock-
calendar which counts time in divisions of 1/100 second.
The [+] and [-] boxes beside the rotate box allow the
user to speed up and slow down the rate of the palette's

The text boxes on the left of the palette window are used
to alter the palette LUT. A pixel value may be chosen by
selecting the value box and typing the value in, or by
simply clicking on the palette at the appropriate value.
Either way, the value becomes the current color (see 3.3.3)
and the red, green, and blue color components are shown.
These components may be altered to change the color of the
chosen pixel value.

3.7.2 drawing tools

Unfortunately, this feature did not get developed in time
for this release of OVIP. If you really need drawing tools,
make sure you fill in your customer survey and let your
voice be heard!

3.8 Miscellaneous menu

3.8.1 changing the cursor

The default cursor is the arrow cursor. Selecting the
CHANGE CURSOR option displays a dialog box with all the
available cursors. Currently there are three cursors to
choose from. By clicking on one of them, the cursor
selected becomes the cursor that will be used until another
call to CHANGE CURSOR is made.


Registration for OVIP 1.0








Please enclose $20 (US), making check payable to Oviparous
Software. Please do not send cash. Send to:

OVIP 1.0 Registration
Oviparous Software
P.O. Box 611992
San Jose, CA 95161-1992


Oviparous Software is always looking for ways to improve
its products. An integral part of this process is getting
feedback from you, our customer. If you have used this
product, please take the time to fill in the survey and
mail it in with your registration. Even if you do not
wish to register, your input is welcome and you are
encouraged to fill out the survey and send it in.

Q1) Where did you obtain this product:
(circle one)

(a) bulletin board (BBS)
(b) commercial information service
(c) from a friend/co-worker
(d) from a mail-order shareware disk vendor
(e) from a retail shareware disk vendor
(f) other (specify) ___________________________

Q2) Approximately how many hours (total) have you used
this product?
(circle one)

(a) < 1 hour
(b) < 10 hours
(c) > 10 hours

Q3) Have you found this product to have:
(circle one)

(a) no bugs
(b) minor bugs
(c) major (program-crashing) bugs
(d) so many bugs the product is unusable

Q4) Would you recommend this product to someone else?
(circle one)

(a) yes
(b) no
(c) maybe

Q5) What is your primary use for this product?
(circle one or two)

(a) viewing images
(b) file format conversion
(c) compression for archival purposes
(d) manipulation of images
(e) analysis of images
(f) other (specify) ________________________

Q6) Which of the following are the most important features
that need to be added to this product?
(circle two)

(a) increase speed
(b) increase user-friendliness
(c) drawing tools
(d) image printing (specify) ___________________
(e) more filters and processing
(f) more analysis tools
(g) greater color support
(h) more file formats (specify) ________________
(i) more hardware support (specify) ____________
(j) other (specify) ____________________________

Q7) How important would phone-in technical support be?
(circle one)

(a) very important
(b) moderately important
(c) not too important
(d) not important at all

Q8) How do you feel about the price of this product
(circle one)

(a) incredibly good price
(b) good price
(c) competitive price
(d) expensive
(e) outrageously over-priced

Q9) Overall, on a scale of 1 to 10, where 10 is total
satisfaction and 1 is total disgust, how would you
rate this product?
(enter rating below)



CPU: ()8086/8088 ()80286 ()80386 ()80486
CPU SPEED: _____ MHz
FLOPPIES: _____ 5.25" _____ 3.5"
HARD DRIVE: _____ Mbytes
MEMORY: Expanded _____ Mbytes
Extended _____ Mbytes
()SVGA 512K
()SVGA 1024K

COMMENTS: _________________________________________________

  3 Responses to “Category : Printer + Display Graphics
Archive   : OVIP1.ZIP
Filename : OVIP1.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: