package Panotools::Script::Line::Mode; use strict; use warnings; use Panotools::Script::Line; use vars qw /@ISA/; @ISA = qw /Panotools::Script::Line/; =head1 NAME Panotools::Script::Line::Mode - Panotools stitching mode =head1 SYNOPSIS Optional stitching modes are described by an 'm' line =head1 DESCRIPTION m i2 g2.5 Set gamma value for internal computations (default 1.0) See This is especially useful in conjunction with the vignetting correction by division i2 Set interpolator, See one of: 0 - poly3 (default) 1 - spline16, 2 - spline36, 3 - sinc256, 4 - spline64, 5 - bilinear, 6 - nearest neighbor, 7 - sinc1024 m2 Huber Sigma p0.001 Photometric Huber Sigma s1 Photometric Symmetric Error =cut sub _defaults { my $self = shift; $self->{g} = 1.0; $self->{i} = 0; $self->{m} = 2; $self->{p} = 0.00784314; } sub _valid { return '^([fgimps])(.*)' } sub Identifier { my $self = shift; return "m"; } sub Report { my $self = shift; my @report; my $interpolator = 'UNKNOWN'; $interpolator = 'poly3' if $self->{i} == 0; $interpolator = 'spline16' if $self->{i} == 1; $interpolator = 'spline36' if $self->{i} == 2; $interpolator = 'sinc256' if $self->{i} == 3; $interpolator = 'spline64' if $self->{i} == 4; $interpolator = 'bilinear' if $self->{i} == 5; $interpolator = 'nearest neighbor' if $self->{i} == 6; $interpolator = 'sinc1024' if $self->{i} == 7; push @report, ['Gamma', $self->{g}] if defined $self->{g}; push @report, ['Interpolator', $interpolator] if defined $self->{i}; push @report, ['Huber Sigma', $self->{m}] if defined $self->{m}; push @report, ['Photometric Huber Sigma', $self->{p}] if defined $self->{p}; push @report, ['Photometric Symmetric Error', $self->{s}] if defined $self->{s}; [@report]; } 1;