Readme PanoTools 2.6b1 for Windows, MacOS and Linux

Changes to version 2.6b0
- Colour correction capability in PTStitcher expanded: 
  option 'k' - corrects rgb-channels (as in previous version)
  option 'b' - corrects only brightness, no colour change
  option 'd' - correct only colours, no brightness change
- Linux version added, with sources for library file
- Fixed bug in PTAverage (command line parsing)

Changes to version 2.5b2
- Colour correction capability in PTStitcher added. See
  <http://www.fh-furtwangen.de/~dersch/cbcorrect.cb.html>
- PTEditor: Switched order of roll and pitch transformation 
  in preview; now matches the subsequent 'Paste' operation.
  

Changes to version 2.5b1

- Fixed bug in PTEditor: Insertion of previously
  extracted images did not work correctly.

Changes to version 2.5b0


- Fixed bug which scrambled PSD-multilayer output with 48bit input.
- Fixed memory leak in PSD-writer. The output format "PSD_mask" 
  now requires significantly less memory.
- Option "PSD_mask" now includes all pixel data, not just the
  unmasked areas. Therefore, stitcher seams may be moved and
  edited now.
- New scripting option for cropping input images added (command 'C'). 
  The syntax is identical to the "selection" command ('S').
  All image parameters (e.g. field-of-view) refer to the cropped
  part of the image. Example:
  o f0 y0 p0 r0 v70 C10,200,20,150
  The image is cropped to the rectangle left=10, right=200, top=20, bottom=150.
  The field of view (70 degrees) refers to the cropped image.
- PTEditor now supports HTML-file output, and fisheye-format input. 
  See updated documentation
  <http://www.fh-furtwangen.de/~dersch/pted/pteditor.html>

Changes to 2.5a1:
- Sources are now included in the distribution. See
  the separate Readme file in the Sources directory
  about how to build the application.

Changes to 2.5a0:

- MacOS version added
- works on MacOS 9.1 now. This required major changes.
  Btw: avoid this OS. Everything is slowed down including
  PanoTools. Some API functions just don't work. I am
  using it only for testing.
- Feather tool fixed
- The new multiple-layer TIFF-output option has been changed
  to generate multiple individual images, everything else
  did not work on Macs. It has the advantage, that users
  without Photoshop can now also work with multilayer panoramas.
- TIFF warnings suppressed (now reads Photoshop TIFFs without
  complaining).

All my BMP-images work with PTStitcher, so I couldn't
address the problem which some users reported.

The color correction switches do not work yet.


PTStitcher:
===========

Large parts of PTStitcher have been rewritten.
The previous version was closely related to the
Panorama Tools plugin, and therefore treated the
input files sequentially. Each input image was
read, remapped, and merged to the final panorama.
This required commands like '+buf -buf' to manage
this merging.

The new version now remaps all images first to
an intermediate multiple image TIFF-file. All
further actions like seaming, blending etc are
then performed using this file. This approach
is faster, requires less memory, and is more
flexible with better results. It also makes
the 'buf' commands obsolete. The "old" stitching
method is still available through the 'adjust'
Photoshop plugin, but will be removed in future
versions.

The remapper uses significantly less memory, see below.
The seamer is completely new and works much faster
than the old version, especially with large images.
Typically, stitching is now faster than remapping.
There is also more feedback about what the program
is doing at any time.


Supported Input File Formats:

TIFF - The open TIFF library by Sam Leffler/Silicon Graphics,
except LZW-compression, is used to read TIFF images. 
To input 16bit sample-sized images (ie 48/64bit pixels), use 
planar-configuration. This is default for most TIFF-writers. 
The same applies if an alpha-masked image is used. Non-planar images
are also read correctly, but automatically converted
to 8bit samples, and alpha is stripped.

PNG - Guy Eric Schalnat's libpng is used to read any type
of PNG-file, including 16bit sampled images.

JPEG, BMP - like previous versions of PTStitcher.



Supported Output File Formats:

TIFF_m - Multiple image TIFF-file. This is similar
to the previous PSD_nomask format, except that it is
16bit capable. Unfortunately, Photoshop can just
read the first of the multiple images (or I missed
something). GraphicConverter on Macs and I_View
on PCs can read it correctly.

TIFF_mask - Same as TIFF_m with stitching masks.
This is similar to the previous PSD_mask format, 
with 16bit capability.

PSD_m - alias for PSD_nomask

PNG 
TIFF - Now uses packedbits compression.
JPEG,VRML,PICT,QTVR,IVR,... like previous version.



Memory Requirements:

are significantly reduced. Image remapping now
uses a tiled-output algorithm which allows to
create almost unlimited sized panoramas on small
computers. Stitching is more disc-based, which
reduces memory requirements by 50-65% compared
with the previous method. 

The following are estimated
RAM and disc-sizes for a panorama with size
pano_size, and num_im images of size im_size.
pano_size and im_size are uncompressed sizes,
ie width*height*4(8) bytes.

TIFF_m:  RAM = 1 * im_size + 1MByte
         DISC = (1-2) * pano_size

All other formats:
	RAM = 1 * pano_size + 1MByte
	DISC = (1-2) * pano_size + num_im * im_size


Masking of Input Images:

This was previously controlled using the 'm' options,
which are now ignored. Instead, a selection rectangle
can be set by adding 'S' (capital letter) followed by
the pixelcoordinates left,right,top,bottom to the
appropriate 'o'-line. Example: S100,600,100,800
Only pixels inside the rectangle will be used for
conversion. Please note, that image parameters
like field-of-view still refer to the whole image,
not just the rectangle. 

An exception to this behaviour are circular fisheye
images, format 'f2'. The selection above now is
interpreted as circle with the same diameter as the
width of the rectangle. This diameter may be larger than
the width of the image. This makes it possible to
correctly mask fisheye images from D1 and other
digital cameras.

Finally, an arbitrary mask may be set using an alpha
mask for the input image. Only TIFF and PNG formats
support this option. The resulting masks are remapped
and used by the stitcher like any other mask.


Feather

Stitching masks are feathered using a width taken from
the 'u' parameter (default 10 pixels). This was previousy 
an 'o'-line parameter. It is now read from the 'p'-line
and globally used for all images. 

Command line

Input image names had to be supplied on the command
line, which causes problems on the Windows platform
due to the limited length of this line. Now imagenames
are read from the 'i'-lines in the scriptfile, and don't
have to be supplied separately. If they are, then these
values override the names in the script. Calling PTStitcher
on the commandline can now be as short as
PTStitcher -o pano.jpg script.txt
PTPicker now uses this convention to call the helper 
application.


PTEditor:
=========

This JAVA application can interactively extract and
insert images from panoramas. These images can be
edited by your favorite Graphics program. This 
program had been posted for the MacOS-platform, and
the corresponding Readme file is included.

There is a small bug which I haven't been able
to solve yet: The progress bar window which appears
when inserting or extracting images, is shown
minimized. This seems to be a consequence of JAVA-C
interaction, since the same code behaves normal
in the plugin.


PTPicker:
=========

Only change to PTViewer is an experimental
autoalign feature available in the 'Edit' menu.
Select a control-point and press 'align'.
The point in the selected window is registered 
and aligned to subpixel accuracy.

This algorithm was a quick hack and needs
some more refinement. 
 

Panorama Tools Plugin:
=====================

A bug in the 'Preferences' dialog has been fixed,
which prevented selecting long filenames for
temporary images or the host Graphics program.

The Pan-control plugin has been removed. Its 
functionality is contained in the PTEditor
application.

I will remove more features from the plug-in
in the future: Stitching will go, and the
'remap' and 'pespective' plug-ins will be
removed, since their functionalities are
available in the other two.


PTOptimizer
===========

The optimizing feature of PTPicker has been put in a separate
helper application, which reads the script, and appends the stitching
commands. This is not the old PTOptimizer version which worked
without control points.

The optimization algorithm has been changed. The previous versions
used the pixel distance of control points as figure of merit for
the optimization process. This overemphesizes points at large
pitch angles, and made insertion of nadir/zenith images
difficult. The new version optimizes the angular difference.
The result script still lists the pixel distance since this
is easier to interpret. Control points set with 't1/2'-option, 
which is used for vertical/horizontal alignement, are still 
processed using the pixeldistance method.




Helmut Dersch


