Panotools::Script(3) User Contributed Perl Documentation Panotools::Script(3)NAMEPanotools::Script - Panorama Tools scripting
SYNOPSIS
Read, write and manipulate hugin script files.
DESCRIPTION
Library and utilities for manipulating project files created by the
hugin photo stitching software.
This file format is shared with various other tools, in particular this
module is also capable of working with Panorama Tools script files.
USAGE
my $p = new Panotools::Script;
$p->Read ('/path/to/script.txt');
$p->Write ('/path/to/script.txt');
File paths in a Panorama Tools script file are generally relative to
the directory containing the script. Modify this or otherwise prefix
the filenames by supplying an optional second argument:
$p->Write ('/path/to/script.txt', '../path/to/prefix/tofiles');
Clone a script object
$clone = $p->Clone;
Access various sections of the scriptfile:
$p->Mode; # a L<Panotools::Script::Line::Mode> object
$p->Panorama; # a L<Panotools::Script::Line::Panorama> object
$p->Variable; # a L<Panotools::Script::Line::Variable> object
$p->Image; # an array of L<Panotools::Script::Line::Image> objects
$p->Output; # an array of L<Panotools::Script::Line::Output> objects
$p->Control; # an array of L<Panotools::Script::Line::Control> objects
$p->ControlMorph; # an array of L<Panotools::Script::Line::ControlMorph> objects
Rotate transform all the images in a project, angles in degrees:
$p->Transform ($roll, $pitch, $yaw);
'o' output lines are generated by PTOptimizer and contain stitching
parameters for each input image. 'i' image lines provide parameters
for optimisation as well as stitching.
Update the 'image' lines based on 'output' lines and vice-versa like
so:
$p->Output2Image;
$p->Image2Output;
Remove duplicate control points from the project, returns a list of
deleted points:
my $deleted = $p->Duplicates;
Remove all points with an error distance greater than a threshold
measured in pixels, returns a list of deleted points:
my $pruned = $p->Prune (12.345);
Extract a new object consisting of just the requested images, related
control points and optimisation settings:
my $subset = $p->Subset (1, 2, 34, 56);
Images can be requested in any order, but they will be returned in the
same order as the 'parent' project.
Merge a project with another:
$p->Merge ($newstuff);
This adds extra images from $newstuff, skipping duplicates. All
control points except exact duplicates are imported regardless.
Get a summary of control point error distances in pixel units scaled to
the output panorama:
my ($total, $min, $max, $average, $sigma) = $p->Stats;
Centre input images into the final panorama:
$p->Centre ('y');
$p->Centre ('p');
$p->Centre ('r');
Split the project into exposure stacks based in roll, pitch & yaw, or
into exposure layers based on EV values:
$stacks = $pto->Stacks;
$layers = $pto->ExposureLayers;
Returns a list of image number lists.
e.g. extract the first stack as a new project:
$pto_stack = $pto->Subset (@{$pto->Stacks->[0]});
Split a project into exposure layers, returns a list of lists of image
ids:
my $layers = $pto->ExposureLayers (1.0);
Deafults to 0.5EV difference threshold.
Get a list of unconnected groups, i.e. a list of image id lists:
$groups = $pto->ConnectedGroups;
warn 'just one group' if scalar @{$groups} == 1;
Count the connections between any two images:
$points = $pto->Connections (3, 5);
Given a project with unlinked lens parameters, link them together with
the same lens number if all distortion, and photometric parameters
match:
$pto->UnifyLenses;
Given a project with stacks indicated by 'j' parameters, hard-link the
positions (only recognised by Hugin with layout mode code).
$pto->LinkStacks;
Return the angular distance in degrees between two images:
$deg = $pto->AngularDistance (3, 5);
Look at all photos and calculate an optimal pixel width for this
panorama, optionally supply a scaling factor:
$width = $pto->OptimalWidth (0.7);
This number is rounded up to the nearest multiple of 16 pixels.
COPYRIGHT
Copyright (c) 2001 Bruno Postle <bruno@postle.net>. All Rights
Reserved.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with this software; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
perl v5.14.1 2011-06-13 Panotools::Script(3)