From: <bru...@us...> - 2007-08-29 21:38:46
|
Revision: 731 http://panotools.svn.sourceforge.net/panotools/?rev=731&view=rev Author: brunopostle Date: 2007-08-29 14:38:48 -0700 (Wed, 29 Aug 2007) Log Message: ----------- enblend-svg converts to tiff and runs enblend rather than enblend-mask Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/bin/enblend-svg Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-08-23 21:17:06 UTC (rev 730) +++ trunk/Panotools-Script/Changes 2007-08-29 21:38:48 UTC (rev 731) @@ -2,6 +2,7 @@ 0.08 - tif2svg uses autotrace to generate initail vector masks + - enblend-svg converts to tiff and runs enblend rather than enblend-mask 0.07 - new tools: qtvr2erect, tif2svg, enblend-svg Modified: trunk/Panotools-Script/bin/enblend-svg =================================================================== --- trunk/Panotools-Script/bin/enblend-svg 2007-08-23 21:17:06 UTC (rev 730) +++ trunk/Panotools-Script/bin/enblend-svg 2007-08-29 21:38:48 UTC (rev 731) @@ -2,11 +2,13 @@ use strict; use warnings; +use File::Temp qw/tempdir/; use File::Spec; # Splits an SVG file into layers, then runs enblend-mask on the # resulting SVG files. (c) July 2007 Bruno Postle <br...@po...> +my $tempdir = tempdir (CLEANUP => 1); my $file = pop @ARGV; exit unless ($file =~ /\.svg$/i); $file = File::Spec->rel2abs ($file); @@ -20,16 +22,30 @@ my @files; my $index = 0; + +# deal with imagemagick brokenness +my $curdir = File::Spec->curdir (); +$curdir = File::Spec->rel2abs ($curdir); +my ($v, $d, $f) = File::Spec->splitpath ($file); +my $basedir = File::Spec->catpath ($v, $d, ''); +chdir $basedir; + for my $layer (@layers) { $xml =~ s/<g.*<\/g>/$layer/gs; my $out = "$file-enblend-svg-$$-$index.svg"; open (OUT, ">$out"); print OUT $xml; - push @files, $out; + + my $tempfile = File::Spec->catfile ($tempdir, "$index.tif"); + system ('convert', '-background', 'transparent', $out, $tempfile); + + push @files, $tempfile; $index++; } -system ('enblend-mask', @ARGV, @files); +chdir $curdir; + +system ('enblend', @ARGV, @files); unlink @files; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-08-30 22:38:00
|
Revision: 733 http://panotools.svn.sourceforge.net/panotools/?rev=733&view=rev Author: brunopostle Date: 2007-08-30 15:37:59 -0700 (Thu, 30 Aug 2007) Log Message: ----------- tif2svg and enblend-svg support jpeg proxy images Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/bin/enblend-svg trunk/Panotools-Script/bin/tif2svg Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-08-29 21:44:23 UTC (rev 732) +++ trunk/Panotools-Script/Changes 2007-08-30 22:37:59 UTC (rev 733) @@ -3,6 +3,7 @@ 0.08 - tif2svg uses autotrace to generate initail vector masks - enblend-svg converts to tiff and runs enblend rather than enblend-mask + - tif2svg and enblend-svg support creating jpg proxy images 0.07 - new tools: qtvr2erect, tif2svg, enblend-svg Modified: trunk/Panotools-Script/bin/enblend-svg =================================================================== --- trunk/Panotools-Script/bin/enblend-svg 2007-08-29 21:44:23 UTC (rev 732) +++ trunk/Panotools-Script/bin/enblend-svg 2007-08-30 22:37:59 UTC (rev 733) @@ -34,13 +34,25 @@ { $xml =~ s/<g.*<\/g>/$layer/gs; my $out = "$file-enblend-svg-$$-$index.svg"; + + # switch out jpg if tif alternative exists + my @jpeg = $xml =~ /"([^"]+)\.jpg"/gs; + if (-e "$jpeg[0].tif") + { + print STDOUT "Switching $jpeg[0].jpg for $jpeg[0].tif\n"; + $xml =~ s/$jpeg[0].jpg/$jpeg[0].tif/g; + } + open (OUT, ">$out"); print OUT $xml; my $tempfile = File::Spec->catfile ($tempdir, "$index.tif"); + print STDOUT "Creating $tempfile ... "; system ('convert', '-background', 'transparent', $out, $tempfile); + print STDOUT "Done.\n"; push @files, $tempfile; + close OUT; unlink $out; $index++; } Modified: trunk/Panotools-Script/bin/tif2svg =================================================================== --- trunk/Panotools-Script/bin/tif2svg 2007-08-29 21:44:23 UTC (rev 732) +++ trunk/Panotools-Script/bin/tif2svg 2007-08-30 22:37:59 UTC (rev 733) @@ -10,6 +10,7 @@ my $tempdir = tempdir (CLEANUP => 1); my @files = grep (/\.tif$/i, @ARGV); +my @args = grep (!/\.tif$/i, @ARGV); exit unless @files; @@ -61,6 +62,12 @@ my $index = 0; for my $file (@files) { + if (grep (/--jpeg-proxies/, @args)) + { + my $tif = $file; + $file =~ s/\.tif/\.jpg/; + system ('convert', $tif, $file); + } $file =~ s/.*(\/|\\)//; print SVG qq| <g inkscape:groupmode="layer" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-09-02 21:39:05
|
Revision: 734 http://panotools.svn.sourceforge.net/panotools/?rev=734&view=rev Author: brunopostle Date: 2007-09-02 14:38:59 -0700 (Sun, 02 Sep 2007) Log Message: ----------- Change tempfile/tempdir usage to fix tests on windows Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/lib/Panotools/Script.pm trunk/Panotools-Script/t/010.read-stitch.t trunk/Panotools-Script/t/011.read-optimise.t trunk/Panotools-Script/t/012.read-pto.t trunk/Panotools-Script/t/020.create-script.t trunk/Panotools-Script/t/021.morph.t Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/Changes 2007-09-02 21:38:59 UTC (rev 734) @@ -4,6 +4,7 @@ - tif2svg uses autotrace to generate initail vector masks - enblend-svg converts to tiff and runs enblend rather than enblend-mask - tif2svg and enblend-svg support creating jpg proxy images + - replaced tempfile with tempdir for windows, still broken on OS X 0.07 - new tools: qtvr2erect, tif2svg, enblend-svg Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2007-09-02 21:38:59 UTC (rev 734) @@ -32,12 +32,12 @@ use Panotools::Matrix qw(matrix2rollpitchyaw rollpitchyaw2matrix); use Math::Trig; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; use File::Spec; use Storable qw/ dclone /; -our $VERSION = 0.07; +our $VERSION = 0.08; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; @@ -196,7 +196,8 @@ sub Preview { my $self = shift; - my ($fh, $tempfile) = tempfile (SUFFIX => '.jpg', UNLINK => $CLEANUP); + my $tempdir = tempdir (CLEANUP => $CLEANUP); + my $tempfile = File::Spec->catfile ($tempdir, 'preview.jpg'); my $aspect = $self->Panorama->{w} / $self->Panorama->{h}; my $clone = $self->Clone; my $height = sqrt (40000 / $aspect); @@ -279,8 +280,9 @@ { my $self = shift; $self->Image2Output; - my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => $CLEANUP); - my ($fh2, $outfile) = tempfile (SUFFIX => '.txt', UNLINK => $CLEANUP); + my $tempdir = tempdir (CLEANUP => $CLEANUP); + my $tempfile = File::Spec->catfile ($tempdir, 'optimise.txt'); + my $outfile = File::Spec->catfile ($tempdir, 'outfile.txt'); my $clone = $self->Clone; for my $image (@{$clone->Image}) { @@ -402,7 +404,8 @@ my $self = shift; my $outfile = shift; my @options = @_; - my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => $CLEANUP); + my $tempdir = tempdir (CLEANUP => $CLEANUP); + my $tempfile = File::Spec->catfile ($tempdir, 'stitch.txt'); $self->Image2Output; my $vector = File::Spec->abs2rel ($self->{basedir}, File::Spec->tmpdir); $self->Write ($tempfile, $vector); Modified: trunk/Panotools-Script/t/010.read-stitch.t =================================================================== --- trunk/Panotools-Script/t/010.read-stitch.t 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/t/010.read-stitch.t 2007-09-02 21:38:59 UTC (rev 734) @@ -5,7 +5,9 @@ use warnings; use Test::More 'no_plan'; use lib 'lib'; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; +use File::Spec; +my $tempdir = tempdir (CLEANUP => 1); use_ok ('Panotools::Script'); @@ -13,7 +15,7 @@ $p->Read ('t/data/cemetery/hugin-stitch.txt'); { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '010.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } @@ -24,7 +26,7 @@ $p->Panorama->{f} = '5'; { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '010-mercator.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } @@ -34,7 +36,7 @@ $p->{stitcher} = $stitcher; { - my ($fh, $image) = tempfile (SUFFIX => '.tif', UNLINK => 1); + my $image = File::Spec->catfile ($tempdir, '010-uncompressed.tif'); $p->Panorama->{n} = '"TIFF c:NONE"'; ok ($p->Stitch ($image), "$stitcher stitched uncompressed file"); like ((stat($image))[7], '/^1[12][0-9]{5}$/', "$stitcher uncompressed size is about 1.2MiB"); @@ -48,7 +50,7 @@ #} { - my ($fh, $image) = tempfile (SUFFIX => '.tif', UNLINK => 1); + my $image = File::Spec->catfile ($tempdir, '010-deflate.tif'); $p->Panorama->{n} = '"TIFF c:DEFLATE"'; ok ($p->Stitch ($image), "$stitcher stitched DEFLATE compressed file"); like ((stat($image))[7], '/^[567][0-9]{5}$/', "$stitcher DEFLATE compressed size is about 5-700kB"); Modified: trunk/Panotools-Script/t/011.read-optimise.t =================================================================== --- trunk/Panotools-Script/t/011.read-optimise.t 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/t/011.read-optimise.t 2007-09-02 21:38:59 UTC (rev 734) @@ -5,7 +5,9 @@ use warnings; use Test::More 'no_plan'; use lib 'lib'; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; +use File::Spec; +my $tempdir = tempdir (CLEANUP => 1); use_ok ('Panotools::Script'); @@ -13,9 +15,8 @@ $p->Read ('t/data/cemetery/hugin-optimise.txt'); { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '011.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); -#`cp $tempfile /tmp/foo.txt`; die; } # set projection to Mercator Modified: trunk/Panotools-Script/t/012.read-pto.t =================================================================== --- trunk/Panotools-Script/t/012.read-pto.t 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/t/012.read-pto.t 2007-09-02 21:38:59 UTC (rev 734) @@ -5,15 +5,18 @@ use warnings; use Test::More 'no_plan'; use lib 'lib'; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; +use File::Spec; +my $tempdir = tempdir (CLEANUP => 1); + use_ok ('Panotools::Script'); my $p = new Panotools::Script; $p->Read ('t/data/cemetery/hugin.pto'); { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '012.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } Modified: trunk/Panotools-Script/t/020.create-script.t =================================================================== --- trunk/Panotools-Script/t/020.create-script.t 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/t/020.create-script.t 2007-09-02 21:38:59 UTC (rev 734) @@ -5,14 +5,16 @@ use warnings; use Test::More 'no_plan'; use lib 'lib'; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; +use File::Spec; +my $tempdir = tempdir (CLEANUP => 1); use_ok ('Panotools::Script'); my $p = new Panotools::Script; { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '020.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } # set Gamma correction to 2.2 @@ -44,7 +46,7 @@ } { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 1); +my $tempfile = File::Spec->catfile ($tempdir, '020.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } Modified: trunk/Panotools-Script/t/021.morph.t =================================================================== --- trunk/Panotools-Script/t/021.morph.t 2007-08-30 22:37:59 UTC (rev 733) +++ trunk/Panotools-Script/t/021.morph.t 2007-09-02 21:38:59 UTC (rev 734) @@ -5,8 +5,11 @@ use warnings; use Test::More 'no_plan'; use lib 'lib'; -use File::Temp qw/ tempfile /; +use File::Temp qw/ tempdir /; +use File::Spec; +my $tempdir = tempdir (CLEANUP => 1); + use_ok ('Panotools::Script'); my $p = new Panotools::Script; @@ -24,9 +27,19 @@ } { -my ($fh, $tempfile) = tempfile (SUFFIX => '.txt', UNLINK => 0); +my $tempfile = File::Spec->catfile ($tempdir, '021.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); } -$p->Stitch ('/tmp/foo.jpg'); +{ +my $tempfile = File::Spec->catfile ($tempdir, '021.jpg'); +ok ($p->Stitch ($tempfile), "stitched to $tempfile");; +} + +$p->Panorama->Set (n => 'TIFF'); + +{ +my $tempfile = File::Spec->catfile ($tempdir, '021.tif'); +ok ($p->Stitch ($tempfile), "stitched to $tempfile");; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-09-02 22:20:39
|
Revision: 735 http://panotools.svn.sourceforge.net/panotools/?rev=735&view=rev Author: brunopostle Date: 2007-09-02 15:20:42 -0700 (Sun, 02 Sep 2007) Log Message: ----------- Some documentation Modified Paths: -------------- trunk/Panotools-Script/META.yml trunk/Panotools-Script/bin/enblend-svg trunk/Panotools-Script/bin/tif2svg Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2007-09-02 21:38:59 UTC (rev 734) +++ trunk/Panotools-Script/META.yml 2007-09-02 22:20:42 UTC (rev 735) @@ -1,13 +1,13 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Panotools-Script -version: 0.07 +version: 0.08 version_from: lib/Panotools/Script.pm installdirs: site requires: Image::Magick: 5 Math::Matrix: 0.4 - Storable: 2.0 + Storable: 2 distribution_type: module generated_by: ExtUtils::MakeMaker version 6.17 Modified: trunk/Panotools-Script/bin/enblend-svg =================================================================== --- trunk/Panotools-Script/bin/enblend-svg 2007-09-02 21:38:59 UTC (rev 734) +++ trunk/Panotools-Script/bin/enblend-svg 2007-09-02 22:20:42 UTC (rev 735) @@ -61,3 +61,39 @@ system ('enblend', @ARGV, @files); +__END__ + +=head1 NAME + +enblend-svg - Wrapper around enblend for blending SVG layers + +=head1 Synopsis + + enblend-svg [options] -o OUTPUT INPUT + +=head1 DESCRIPTION + +Wrapper around enblend. Usage is exactly the same as for enblend, except that +it takes a single SVG file as input. The SVG file needs to contain multiple +Inkscape layers. See tif2svg for a tool to create such SVG files. + +Requires enblend and ImageMagick linked against librsvg. + +L<http://enblend.sourceforge.net/> + +Note that this tool expects that TIFF images are to be preferred to JPEG. So +if JPEG images are referenced in the SVG file and TIFF equivalents exist, then +they will be used instead. + +=head1 License + +This software is distributed under the same terms as enblend itself. + +=head1 See Also + +L<perl>, L<Panotools::Script> + +=head1 Author + +September 2007, Bruno Postle <bruno AT postle.net> + Modified: trunk/Panotools-Script/bin/tif2svg =================================================================== --- trunk/Panotools-Script/bin/tif2svg 2007-09-02 21:38:59 UTC (rev 734) +++ trunk/Panotools-Script/bin/tif2svg 2007-09-02 22:20:42 UTC (rev 735) @@ -84,3 +84,43 @@ print SVG qq| </svg>| +__END__ + +=head1 NAME + +tif2svg - generates an SVG file from hugin 'multiple TIFF' output + +=head1 Synopsis + + tif2svg [options] INPUT INPUT ... + +=head1 DESCRIPTION + +Takes a list of TIFF files and assembles an SVG file with each TIFF referenced +on a separate layer. Alpha channels are traced with 'autotrace' and this +vector path is inserted as clip paths. + +Typically, multiple TIFF output is generated by hugin/nona, instead of adjusting +alpha channels for enblend, this tool allows the masks to adjusted in Inkscape +instead. The saved SVG file can be blended with 'enblend-svg'. + +Requires ImageMagick and autotrace. + +L<http://enblend.sourceforge.net/> + +Note that the 'multiple TIFF' files can be large and unwieldy, use the +--jpeg-proxies option to generate JPEG versions for use in Inkscape. +'enblend-svg' will swap these back when blending. + +=head1 License + +This software is distributed under the same terms as enblend itself. + +=head1 See Also + +L<perl>, L<Panotools::Script> + +=head1 Author + +September 2007, Bruno Postle <bruno AT postle.net> + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-09-03 22:11:18
|
Revision: 736 http://panotools.svn.sourceforge.net/panotools/?rev=736&view=rev Author: brunopostle Date: 2007-09-03 15:11:22 -0700 (Mon, 03 Sep 2007) Log Message: ----------- Stitch() method, fix stupid bug introduced by trying to fix windows bugs Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/META.yml trunk/Panotools-Script/lib/Panotools/Script.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-09-02 22:20:42 UTC (rev 735) +++ trunk/Panotools-Script/Changes 2007-09-03 22:11:22 UTC (rev 736) @@ -1,5 +1,8 @@ Revision history for Panotools::Script. +0.09 + - Stitch() method, fix stupid bug introduced by trying to fix windows bugs + 0.08 - tif2svg uses autotrace to generate initail vector masks - enblend-svg converts to tiff and runs enblend rather than enblend-mask Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2007-09-02 22:20:42 UTC (rev 735) +++ trunk/Panotools-Script/META.yml 2007-09-03 22:11:22 UTC (rev 736) @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Panotools-Script -version: 0.08 +version: 0.09 version_from: lib/Panotools/Script.pm installdirs: site requires: Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2007-09-02 22:20:42 UTC (rev 735) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2007-09-03 22:11:22 UTC (rev 736) @@ -37,7 +37,7 @@ use Storable qw/ dclone /; -our $VERSION = 0.08; +our $VERSION = 0.09; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; @@ -407,10 +407,10 @@ my $tempdir = tempdir (CLEANUP => $CLEANUP); my $tempfile = File::Spec->catfile ($tempdir, 'stitch.txt'); $self->Image2Output; - my $vector = File::Spec->abs2rel ($self->{basedir}, File::Spec->tmpdir); + my $vector = File::Spec->abs2rel ($self->{basedir}, $tempdir); $self->Write ($tempfile, $vector); my $cwd = File::Spec->curdir; - chdir (File::Spec->tmpdir); + chdir ($tempdir); system ($self->{stitcher}, @options, '-o', $outfile, $tempfile); chdir ($cwd); return 0 unless ($? == 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-09-04 20:56:11
|
Revision: 737 http://panotools.svn.sourceforge.net/panotools/?rev=737&view=rev Author: brunopostle Date: 2007-09-04 13:56:14 -0700 (Tue, 04 Sep 2007) Log Message: ----------- Use Image::Size instead of Image::Magick for sizing images Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/META.yml trunk/Panotools-Script/Makefile.PL trunk/Panotools-Script/README trunk/Panotools-Script/bin/erect2cubic trunk/Panotools-Script/bin/erect2planet trunk/Panotools-Script/bin/erect2qtvr trunk/Panotools-Script/bin/erect2qtvr-gui trunk/Panotools-Script/bin/qtvr2erect trunk/Panotools-Script/bin/tif2svg trunk/Panotools-Script/lib/Panotools/Script.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/Changes 2007-09-04 20:56:14 UTC (rev 737) @@ -1,5 +1,8 @@ Revision history for Panotools::Script. +0.10 + - replace Image::Magick with Image::Size for sizing images + 0.09 - Stitch() method, fix stupid bug introduced by trying to fix windows bugs Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/META.yml 2007-09-04 20:56:14 UTC (rev 737) @@ -5,7 +5,7 @@ version_from: lib/Panotools/Script.pm installdirs: site requires: - Image::Magick: 5 + Image::Size: 3 Math::Matrix: 0.4 Storable: 2 Modified: trunk/Panotools-Script/Makefile.PL =================================================================== --- trunk/Panotools-Script/Makefile.PL 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/Makefile.PL 2007-09-04 20:56:14 UTC (rev 737) @@ -11,7 +11,7 @@ 'bin/process-masks-gui', 'bin/enblend-svg-gui', 'bin/erect2qtvr-gui', 'bin/transform-pano', 'bin/nona-mask', 'bin/qtvr2erect' ], 'VERSION_FROM' => 'lib/Panotools/Script.pm', # finds $VERSION - 'PREREQ_PM' => {'Math::Matrix' => 0.4, 'Image::Magick' => 5.0, 'Storable' => 2.0}, + 'PREREQ_PM' => {'Math::Matrix' => 0.4, 'Image::Size' => 3.0, 'Storable' => 2.0}, ($] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => 'lib/Panotools/Script.pm', # retrieve abstract from module AUTHOR => 'Bruno Postle <br...@po...>') : ()), Modified: trunk/Panotools-Script/README =================================================================== --- trunk/Panotools-Script/README 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/README 2007-09-04 20:56:14 UTC (rev 737) @@ -21,10 +21,11 @@ ------------ Math::Matrix -Image::Magick +Image::Size This module requires 'autooptimiser' and 'nona' from hugin. Some of -the scripts require 'enblend', 'autotrace' and ImageMagick command-line tools. +the scripts require 'freepv', 'enblend', 'autotrace' and ImageMagick +command-line tools. The various *-gui tools require 'zenity' and will only work on Linux/unix systems. Modified: trunk/Panotools-Script/bin/erect2cubic =================================================================== --- trunk/Panotools-Script/bin/erect2cubic 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/erect2cubic 2007-09-04 20:56:14 UTC (rev 737) @@ -4,20 +4,14 @@ use warnings; use File::Spec; use Panotools::Script; +use Image::Size; my $erect = shift or die "usage\n $0 equirectangular.tif"; $erect = File::Spec->rel2abs ($erect); my $cwd = File::Spec->rel2abs (File::Spec->curdir); -my ($width, $height); +my ($width, $height) = imgsize ($erect); -{ - use Image::Magick; - my $image = new Image::Magick; - $image->Read ($erect); - ($width, $height) = $image->Get ('width', 'height'); -} - my $face = int ($width / 3.1418); my $scratch = new Panotools::Script; Modified: trunk/Panotools-Script/bin/erect2planet =================================================================== --- trunk/Panotools-Script/bin/erect2planet 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/erect2planet 2007-09-04 20:56:14 UTC (rev 737) @@ -4,6 +4,7 @@ use warnings; use File::Spec; use Panotools::Script; +use Image::Size; my $erect = shift or die "usage\n $0 equirectangular.tif"; $erect = File::Spec->rel2abs ($erect); @@ -14,15 +15,8 @@ $sgraphic =~ s/\.([[:alnum:]]+)$/-sgraphic/; -my ($width, $height); +my ($width, $height) = imgsize ($erect); -{ - use Image::Magick; - my $image = new Image::Magick; - $image->Read ($erect); - ($width, $height) = $image->Get ('width', 'height'); -} - my $face = $width; my $stereographic = new Panotools::Script; Modified: trunk/Panotools-Script/bin/erect2qtvr =================================================================== --- trunk/Panotools-Script/bin/erect2qtvr 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/erect2qtvr 2007-09-04 20:56:14 UTC (rev 737) @@ -4,6 +4,7 @@ use warnings; use File::Spec; use Panotools::Script; +use Image::Size; use File::Temp qw/tempdir/; @@ -64,15 +65,8 @@ # get the width and height of the input image -my ($width, $height); +my ($width, $height) = imgsize ($erect); -{ - use Image::Magick; - my $image = new Image::Magick; - $image->Read ($erect); - ($width, $height) = $image->Get ('width', 'height'); -} - # calculate an 'ideal' cubeface size my $face = 8 * int (int ($width / 3.1416) / 8); Modified: trunk/Panotools-Script/bin/erect2qtvr-gui =================================================================== --- trunk/Panotools-Script/bin/erect2qtvr-gui 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/erect2qtvr-gui 2007-09-04 20:56:14 UTC (rev 737) @@ -2,7 +2,7 @@ use strict; use warnings; -use Image::Magick; +use Image::Size; my $cwd = `cat \$HOME/.erect2qtvr-gui` || $ENV{'HOME'}; chomp $cwd; @@ -31,9 +31,7 @@ `echo '$cwd' > \$HOME/.erect2qtvr-gui` if ($cwd =~ /^\//); } -my $image = new Image::Magick; -$image->Read ($erect); -my ($width, $height) = $image->Get ('width', 'height'); +my ($width, $height) = imgsize ($erect); unless ($width and $height and $width == 2 * $height) { Modified: trunk/Panotools-Script/bin/qtvr2erect =================================================================== --- trunk/Panotools-Script/bin/qtvr2erect 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/qtvr2erect 2007-09-04 20:56:14 UTC (rev 737) @@ -5,7 +5,7 @@ use File::Temp qw/tempdir/; use File::Spec; -use Image::Magick; +use Image::Size; use Panotools::Script; for my $mov (@ARGV) @@ -15,9 +15,7 @@ system ('qtvr2img', $mov, "$tempdir/cube"); $mov = File::Spec->rel2abs ($mov); - my $image = new Image::Magick; - $image->Read ("$tempdir/cube_0.pnm"); - my ($width, $height) = $image->Get ('width', 'height'); + my ($width, $height) = imgsize ("$tempdir/cube_0.pnm"); my $erect = new Panotools::Script; $erect->Panorama->Set (h => int ($width * 1.5708), Modified: trunk/Panotools-Script/bin/tif2svg =================================================================== --- trunk/Panotools-Script/bin/tif2svg 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/bin/tif2svg 2007-09-04 20:56:14 UTC (rev 737) @@ -2,7 +2,7 @@ use strict; use warnings; -use Image::Magick; +use Image::Size; use File::Temp qw/tempdir/; use File::Spec; @@ -20,9 +20,7 @@ $stub1 =~ s/\.tif$//i; $stub1 =~ s/.*(\/|\\)//; -my $image = new Image::Magick; -$image->Read ($files[0]); -my ($width, $height) = $image->Get ('width', 'height'); +my ($width, $height) = imgsize ($files[0]); open (SVG, ">$stub0-$stub1.svg"); @@ -104,7 +102,7 @@ alpha channels for enblend, this tool allows the masks to adjusted in Inkscape instead. The saved SVG file can be blended with 'enblend-svg'. -Requires ImageMagick and autotrace. +Requires Image::Size and autotrace. L<http://enblend.sourceforge.net/> Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2007-09-03 22:11:22 UTC (rev 736) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2007-09-04 20:56:14 UTC (rev 737) @@ -37,7 +37,7 @@ use Storable qw/ dclone /; -our $VERSION = 0.09; +our $VERSION = 0.10; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-09-08 21:06:36
|
Revision: 740 http://panotools.svn.sourceforge.net/panotools/?rev=740&view=rev Author: brunopostle Date: 2007-09-08 14:06:37 -0700 (Sat, 08 Sep 2007) Log Message: ----------- jpeg2qtvr fix CRLF bug on windows Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/bin/erect2qtvr trunk/Panotools-Script/bin/jpeg2qtvr Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-09-04 21:15:09 UTC (rev 739) +++ trunk/Panotools-Script/Changes 2007-09-08 21:06:37 UTC (rev 740) @@ -2,6 +2,7 @@ 0.10 - replace Image::Magick with Image::Size for sizing images + - jpeg2qtvr fix CRLF bug on windows 0.09 - Stitch() method, fix stupid bug introduced by trying to fix windows bugs Modified: trunk/Panotools-Script/bin/erect2qtvr =================================================================== --- trunk/Panotools-Script/bin/erect2qtvr 2007-09-04 21:15:09 UTC (rev 739) +++ trunk/Panotools-Script/bin/erect2qtvr 2007-09-08 21:06:37 UTC (rev 740) @@ -19,7 +19,7 @@ push @qtvr_opts, ($key .'='. $value); } -my $cleanup = $opts->{'--cleanup'} || 1; +my $cleanup = 1; $cleanup = 0 if ($opts->{'--cleanup'} == 0); my $quality = $opts->{'--quality'} || 70; my $pitch = $opts->{'--pitch'} || 0; my $yaw = $opts->{'--yaw'} || 0; Modified: trunk/Panotools-Script/bin/jpeg2qtvr =================================================================== --- trunk/Panotools-Script/bin/jpeg2qtvr 2007-09-04 21:15:09 UTC (rev 739) +++ trunk/Panotools-Script/bin/jpeg2qtvr 2007-09-08 21:06:37 UTC (rev 740) @@ -103,6 +103,7 @@ my ($width_image, $height_image) = JPEGsize ($image0); die 'Can\'t determine JPEG dimensions' unless ($width_image == $height_image); +print STDERR "Cubeface size: $width_image\n"; my ($preview0, $preview1, $preview2, $preview3, $preview4, $preview5, $width_preview, $height_preview); @@ -134,6 +135,7 @@ ($width_preview, $height_preview) = JPEGsize ($preview0); die 'Can\'t determine preview JPEG dimensions' unless ($width_preview == $height_preview); + print STDERR "Preview size: $width_preview\n"; } # date is seconds since midnight, January 1, 1904 @@ -1110,27 +1112,25 @@ if ($outfile) { - open (OUTFILE, '> '. $opts->{'--outfile'}); + open (OUTFILE, '>'. $opts->{'--outfile'}); + binmode (OUTFILE, ':raw'); print OUTFILE $mov; close OUTFILE; } else { + binmode (STDOUT, ':raw'); print STDOUT $mov; } sub pack4B { - my $bytes = sprintf ('%.8x', shift); - $bytes =~ /(..)(..)(..)(..)/; - return chr(hex($1)). chr(hex($2)). chr(hex($3)). chr(hex($4)); + return pack ('N', shift); } sub pack2B { - my $bytes = sprintf ('%.4x', shift); - $bytes =~ /(..)(..)/; - return chr(hex($1)). chr(hex($2)); + return pack ('n', shift); } sub packfloat This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-11-20 16:36:52
|
Revision: 745 http://panotools.svn.sourceforge.net/panotools/?rev=745&view=rev Author: brunopostle Date: 2007-11-20 08:36:51 -0800 (Tue, 20 Nov 2007) Log Message: ----------- fix cubic2erect (Peter Crowley) Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/bin/cubic2erect Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-11-18 19:37:16 UTC (rev 744) +++ trunk/Panotools-Script/Changes 2007-11-20 16:36:51 UTC (rev 745) @@ -3,6 +3,7 @@ 0.10 - replace Image::Magick with Image::Size for sizing images - jpeg2qtvr fix CRLF bug on windows + - fix cubic2erect (Peter Crowley) 0.09 - Stitch() method, fix stupid bug introduced by trying to fix windows bugs Modified: trunk/Panotools-Script/bin/cubic2erect =================================================================== --- trunk/Panotools-Script/bin/cubic2erect 2007-11-18 19:37:16 UTC (rev 744) +++ trunk/Panotools-Script/bin/cubic2erect 2007-11-20 16:36:51 UTC (rev 745) @@ -5,41 +5,41 @@ use Panotools::Script; use File::Spec; +use Image::Size; my @images = @ARGV; die "usage\n $0 front.tif right.tif back.tif left.tif up.tif down.tif equirectangular.tif\n" unless scalar @images == 7; my $out = File::Spec->rel2abs ($ARGV[6]); -for my $index (0 .. 5) -{ - my ($volume, $directories, $file) = File::Spec->splitpath ($images[$index]); - my $basedir = File::Spec->catpath ($volume, $directories, ''); - $images[$index] = $file; - chdir $basedir; -} +my ($face, $face2) = imgsize ($ARGV[3]); my $pano = new Panotools::Script; -$pano->Panorama->Set (v => 360, f => 2, u => 0, w => 4000, h => 2000, n => '"TIF"'); +my $height = int ($face * 3.1418 / 2); +my $width = $height * 2; +$pano->Panorama->Set (v => 360, f => 2, u => 0, w => $width, h => $height, n => "\"TIFF c:DEFLATE\""); +$pano->{basedir} = File::Spec->curdir; +$pano->{stitcher} = 'nona'; + $pano->Image->[0] = new Panotools::Script::Line::Image; -$pano->Image->[0]->Set (v => 90, r => 0, p => 0, y => 0, n => "\"$images[0]\""); +$pano->Image->[0]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 0, y => 0, n => "\"" . File::Spec->rel2abs ($images[0]) . "\""); $pano->Image->[1] = new Panotools::Script::Line::Image; -$pano->Image->[1]->Set (v => 90, r => 0, p => 0, y => 90, n => "\"$images[1]\""); +$pano->Image->[1]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 0, y => 90, n => "\"" . File::Spec->rel2abs ($images[1]) . "\""); $pano->Image->[2] = new Panotools::Script::Line::Image; -$pano->Image->[2]->Set (v => 90, r => 0, p => 0, y => 180, n => "\"$images[2]\""); +$pano->Image->[2]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 0, y => 180, n => "\"" . File::Spec->rel2abs ($images[2]) . "\""); $pano->Image->[3] = new Panotools::Script::Line::Image; -$pano->Image->[3]->Set (v => 90, r => 0, p => 0, y => 270, n => "\"$images[3]\""); +$pano->Image->[3]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 0, y => 270, n => "\"" . File::Spec->rel2abs ($images[3]) . "\""); $pano->Image->[4] = new Panotools::Script::Line::Image; -$pano->Image->[4]->Set (v => 90, r => 0, p => 90, y => 0, n => "\"$images[4]\""); +$pano->Image->[4]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 90, y => 0, n => "\"" . File::Spec->rel2abs ($images[4]) . "\""); $pano->Image->[5] = new Panotools::Script::Line::Image; -$pano->Image->[5]->Set (v => 90, r => 0, p => -90, y => 0, n => "\"$images[5]\""); +$pano->Image->[5]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => -90, y => 0, n => "\"" . File::Spec->rel2abs ($images[5]) . "\""); $pano->Stitch ($out); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-11-20 23:10:23
|
Revision: 746 http://panotools.svn.sourceforge.net/panotools/?rev=746&view=rev Author: brunopostle Date: 2007-11-20 15:10:26 -0800 (Tue, 20 Nov 2007) Log Message: ----------- bump version for release Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/META.yml trunk/Panotools-Script/lib/Panotools/Script.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2007-11-20 16:36:51 UTC (rev 745) +++ trunk/Panotools-Script/Changes 2007-11-20 23:10:26 UTC (rev 746) @@ -1,6 +1,6 @@ Revision history for Panotools::Script. -0.10 +0.11 - replace Image::Magick with Image::Size for sizing images - jpeg2qtvr fix CRLF bug on windows - fix cubic2erect (Peter Crowley) Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2007-11-20 16:36:51 UTC (rev 745) +++ trunk/Panotools-Script/MANIFEST 2007-11-20 23:10:26 UTC (rev 746) @@ -1,23 +1,23 @@ .cvsignore bin/cubic2erect bin/enblend-mask +bin/enblend-svg +bin/enblend-svg-gui bin/erect2cubic bin/erect2planet +bin/erect2qtvr +bin/erect2qtvr-gui bin/jpeg2qtvr -bin/erect2qtvr -bin/qtvr2erect +bin/nona-mask bin/process-masks +bin/process-masks-gui bin/pto2tiff -bin/transform-pano -bin/nona-mask +bin/pto2tiff-gui +bin/qtvr2erect +bin/qtvr2erect-gui bin/tif2svg -bin/enblend-svg -bin/qtvr2erect-gui bin/tif2svg-gui -bin/pto2tiff-gui -bin/process-masks-gui -bin/enblend-svg-gui -bin/erect2qtvr-gui +bin/transform-pano Changes lib/Panotools/Matrix.pm lib/Panotools/Script.pm Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2007-11-20 16:36:51 UTC (rev 745) +++ trunk/Panotools-Script/META.yml 2007-11-20 23:10:26 UTC (rev 746) @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Panotools-Script -version: 0.09 +version: 0.11 version_from: lib/Panotools/Script.pm installdirs: site requires: Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2007-11-20 16:36:51 UTC (rev 745) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2007-11-20 23:10:26 UTC (rev 746) @@ -37,7 +37,7 @@ use Storable qw/ dclone /; -our $VERSION = 0.10; +our $VERSION = 0.11; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-11-24 23:48:46
|
Revision: 748 http://panotools.svn.sourceforge.net/panotools/?rev=748&view=rev Author: brunopostle Date: 2007-11-24 15:48:51 -0800 (Sat, 24 Nov 2007) Log Message: ----------- Move Transform() method to lower level object Modified Paths: -------------- trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm trunk/Panotools-Script/lib/Panotools/Script.pm trunk/Panotools-Script/t/012.read-pto.t Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm 2007-11-24 23:20:02 UTC (rev 747) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm 2007-11-24 23:48:51 UTC (rev 748) @@ -3,6 +3,8 @@ use strict; use warnings; use Panotools::Script::Line; +use Panotools::Matrix qw(matrix2rollpitchyaw rollpitchyaw2matrix); +use Math::Trig; use vars qw /@ISA/; @ISA = qw /Panotools::Script::Line/; @@ -162,6 +164,29 @@ return (join ' ', ($self->Identifier, @tokens)) ."\n" if (@tokens); } +=pod + +Rotate transform the image, angles in degrees: + + $i->Transform ($roll, $pitch, $yaw); + +=cut + +sub Transform +{ + my $self = shift; + my ($roll, $pitch, $yaw) = @_; + my @transform_rpy = map (deg2rad ($_), ($roll, $pitch, $yaw)); + my $transform_matrix = rollpitchyaw2matrix (@transform_rpy); + my @rpy = map (deg2rad ($_), ($self->{r}, $self->{p}, $self->{y})); + my $matrix = rollpitchyaw2matrix (@rpy); + my $result = $transform_matrix->multiply ($matrix); + my ($r, $p, $y) = map (rad2deg ($_), matrix2rollpitchyaw ($result)); + $self->{r} = $r; + $self->{p} = $p; + $self->{y} = $y; +} + sub _prepend { my $vector = shift; Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2007-11-24 23:20:02 UTC (rev 747) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2007-11-24 23:48:51 UTC (rev 748) @@ -29,9 +29,6 @@ use Panotools::Script::Line::ControlMorph; use Panotools::Script::Line::Variable; -use Panotools::Matrix qw(matrix2rollpitchyaw rollpitchyaw2matrix); -use Math::Trig; - use File::Temp qw/ tempdir /; use File::Spec; @@ -327,17 +324,9 @@ { my $self = shift; my ($roll, $pitch, $yaw) = @_; - my @transform_rpy = map (deg2rad ($_), ($roll, $pitch, $yaw)); - my $transform_matrix = rollpitchyaw2matrix (@transform_rpy); for my $image (@{$self->Image}) { - my @rpy = map (deg2rad ($_), ($image->{r}, $image->{p}, $image->{y})); - my $matrix = rollpitchyaw2matrix (@rpy); - my $result = $transform_matrix->multiply ($matrix); - my ($r, $p, $y) = map (rad2deg ($_), matrix2rollpitchyaw ($result)); - $image->{r} = $r; - $image->{p} = $p; - $image->{y} = $y; + $image->Transform ($roll, $pitch, $yaw); } $self->Image2Output; } Modified: trunk/Panotools-Script/t/012.read-pto.t =================================================================== --- trunk/Panotools-Script/t/012.read-pto.t 2007-11-24 23:20:02 UTC (rev 747) +++ trunk/Panotools-Script/t/012.read-pto.t 2007-11-24 23:48:51 UTC (rev 748) @@ -15,6 +15,12 @@ my $p = new Panotools::Script; $p->Read ('t/data/cemetery/hugin.pto'); +$p->Transform (10,20,30); + +like ($p->Image->[0]->{r}, '/-3.8642696077/'); +like ($p->Image->[0]->{y}, '/-7.517201107/'); +like ($p->Image->[0]->{p}, '/21.94771605/'); + { my $tempfile = File::Spec->catfile ($tempdir, '012.txt'); ok ($p->Write ($tempfile), "script written to $tempfile"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2007-12-11 22:35:40
|
Revision: 751 http://panotools.svn.sourceforge.net/panotools/?rev=751&view=rev Author: brunopostle Date: 2007-12-11 14:35:45 -0800 (Tue, 11 Dec 2007) Log Message: ----------- Create a .pto script instead of creating the cubeface images Modified Paths: -------------- trunk/Panotools-Script/README trunk/Panotools-Script/bin/erect2cubic Modified: trunk/Panotools-Script/README =================================================================== --- trunk/Panotools-Script/README 2007-11-26 10:18:35 UTC (rev 750) +++ trunk/Panotools-Script/README 2007-12-11 22:35:45 UTC (rev 751) @@ -33,16 +33,13 @@ TODO ---- -* z lines -* More tests -* pod documentation -* autopano support -* straighten +* retire Stitch(), Preview() & Optimise() methods +# enblend mask, merge mask rather than replace +* enblend-svg, render just masks, use enblend-mask to merge +* nona-mask, allow full command-line parameters +* align_image_stack based tca calculator +* preserve comment line extensions * open/save lens profiles -* Delete control points -* error distance -* jpeg2qtvr calculate window size from fov and cubeface size -* fix OS X bug with paths Copyright and licence Modified: trunk/Panotools-Script/bin/erect2cubic =================================================================== --- trunk/Panotools-Script/bin/erect2cubic 2007-11-26 10:18:35 UTC (rev 750) +++ trunk/Panotools-Script/bin/erect2cubic 2007-12-11 22:35:45 UTC (rev 751) @@ -2,41 +2,58 @@ use strict; use warnings; -use File::Spec; use Panotools::Script; use Image::Size; -my $erect = shift or die "usage\n $0 equirectangular.tif"; -$erect = File::Spec->rel2abs ($erect); -my $cwd = File::Spec->rel2abs (File::Spec->curdir); +# Takes an equirectangular image and produces a .pto file suitable for +# extracting six cube faces in TIFF format. Cube faces are produced in front, +# right, back, left, up & down order. The cube edge length is set to the +# sphere diameter reduced to the nearest multiple of 8. Prerotate the scene +# with --roll, --pitch and --yaw parameters if required. +# +# erect2cubic --erect=panorama.tif --ptofile=cube_project.pto +# nona -o cube_prefix cube_project.pto +# +# Bruno Postle 2007, this tool is part of Panotools::Script -my ($width, $height) = imgsize ($erect); +my $opts = {}; -my $face = int ($width / 3.1416); +while (@ARGV) +{ + my ($key, $value) = split ('=', shift); + $opts->{$key} = $value; +} -my $scratch = new Panotools::Script; -$scratch->Panorama->Set (v => 90, f => 0, u => 0, w => $face, h => $face, n => '"TIFF"'); +my $roll = $opts->{'--roll'} || 0; +my $pitch = $opts->{'--pitch'} || 0; +my $yaw = $opts->{'--yaw'} || 0; +my $erect = $opts->{'--erect'} or die "no --erect specified"; +my $ptofile = $opts->{'--ptofile'} or die "no --ptofile specified"; -$scratch->{stitcher} = 'nona'; +my ($width, $height) = imgsize ($erect); -$scratch->Image->[0] = new Panotools::Script::Line::Image; +my $face = 8 * int ($width / 3.14159265 / 8); -$scratch->Image->[0]->Set (w => $width, h => $height, v => 360, f => 4, r => 0, p => 0, y => 0, n => "\"$erect\""); -$scratch->Stitch (File::Spec->catfile ($cwd, 'front.tif')); +my $p = new Panotools::Script; +$p->Panorama->Set (v => 90, f => 0, u => 0, w => $face, h => $face, n => '"TIFF_m"'); -$scratch->Transform (0, 0, -90); -$scratch->Stitch (File::Spec->catfile ($cwd, 'right.tif')); +$p->Image->[0] = new Panotools::Script::Line::Image; +$p->Image->[0]->Set (w => $width, h => $height, v => 360, f => 4, r => 0, p => 0, y => 0, n => "\"$erect\""); -$scratch->Transform (0, 0, -90); -$scratch->Stitch (File::Spec->catfile ($cwd, 'back.tif')); +$p->Image->[0]->Transform ($roll, $pitch, $yaw); -$scratch->Transform (0, 0, -90); -$scratch->Stitch (File::Spec->catfile ($cwd, 'left.tif')); +$p->Image->[1] = $p->Image->[0]->Clone; +$p->Image->[1]->Transform (0, 0, -90); +$p->Image->[2] = $p->Image->[0]->Clone; +$p->Image->[2]->Transform (0, 0, 180); +$p->Image->[3] = $p->Image->[0]->Clone; +$p->Image->[3]->Transform (0, 0, 90); +$p->Image->[4] = $p->Image->[0]->Clone; +$p->Image->[4]->Transform (0, -90, 0); +$p->Image->[5] = $p->Image->[0]->Clone; +$p->Image->[5]->Transform (0, 90, 0); -$scratch->Transform (0, 0, -90); -$scratch->Transform (0, -90, 0); -$scratch->Stitch (File::Spec->catfile ($cwd, 'up.tif')); +$p->Write ($ptofile); -$scratch->Transform (0, 180, 0); -$scratch->Stitch (File::Spec->catfile ($cwd, 'down.tif')); +0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-03 00:31:04
|
Revision: 770 http://panotools.svn.sourceforge.net/panotools/?rev=770&view=rev Author: brunopostle Date: 2008-01-02 16:31:03 -0800 (Wed, 02 Jan 2008) Log Message: ----------- Remove tests for deprecated Stitch() and Optimise() methods Modified Paths: -------------- trunk/Panotools-Script/lib/Panotools/Script.pm trunk/Panotools-Script/t/010.read-stitch.t trunk/Panotools-Script/t/011.read-optimise.t trunk/Panotools-Script/t/012.read-pto.t trunk/Panotools-Script/t/021.morph.t Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-02 01:17:22 UTC (rev 769) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-03 00:31:03 UTC (rev 770) @@ -184,28 +184,6 @@ =pod -Preview a project (requires ImageMagick) - - $p->Preview; - -=cut - -sub Preview -{ - my $self = shift; - my $tempdir = tempdir (CLEANUP => $CLEANUP); - my $tempfile = File::Spec->catfile ($tempdir, 'preview.jpg'); - my $aspect = $self->Panorama->{w} / $self->Panorama->{h}; - my $clone = $self->Clone; - my $height = sqrt (40000 / $aspect); - my $width = $aspect * $height; - $clone->Panorama->Set (w => int ($width), h => int ($height), n => '"JPEG"'); - $clone->Stitch ($tempfile); - system ('display', '-sample', '200%', $tempfile); -} - -=pod - Access various sections of the scriptfile: $p->Mode; # a L<Panotools::Script::Line::Mode> object @@ -265,14 +243,8 @@ $self->{controlmorph}; } -=pod +# deprecated Optimise() method -Optimise image parameters in a project: - - $p->Optimise; - -=cut - sub Optimise { my $self = shift; @@ -380,14 +352,8 @@ } } -=pod +# deprecated Stitch() method -Stitch a project: - - $p->Stitch ('/path/to/output.jpg'); - -=cut - sub Stitch { my $self = shift; Modified: trunk/Panotools-Script/t/010.read-stitch.t =================================================================== --- trunk/Panotools-Script/t/010.read-stitch.t 2008-01-02 01:17:22 UTC (rev 769) +++ trunk/Panotools-Script/t/010.read-stitch.t 2008-01-03 00:31:03 UTC (rev 770) @@ -30,34 +30,3 @@ ok ($p->Write ($tempfile), "script written to $tempfile"); } -for my $stitcher ('nona') -{ - -$p->{stitcher} = $stitcher; - -{ - my $image = File::Spec->catfile ($tempdir, '010-uncompressed.tif'); - $p->Panorama->{n} = '"TIFF c:NONE"'; - ok ($p->Stitch ($image), "$stitcher stitched uncompressed file"); - like ((stat($image))[7], '/^1[12][0-9]{5}$/', "$stitcher uncompressed size is about 1.2MiB"); -} - -#{ -# my ($fh, $image) = tempfile (SUFFIX => '.tif', UNLINK => 1); -# $p->Panorama->{n} = '"TIFF c:LZW"'; -# ok ($p->Stitch ($image), "$stitcher stitched LZW compressed file"); -# like ((stat($image))[7], '/^[567][0-9]{5}$/', "$stitcher LZW compressed size is about 5-700kB"); -#} - -{ - my $image = File::Spec->catfile ($tempdir, '010-deflate.tif'); - $p->Panorama->{n} = '"TIFF c:DEFLATE"'; - ok ($p->Stitch ($image), "$stitcher stitched DEFLATE compressed file"); - like ((stat($image))[7], '/^[567][0-9]{5}$/', "$stitcher DEFLATE compressed size is about 5-700kB"); -} - -} - -#ok ($p->Optimise == 0, 'optimisation fails because of no control points'); - - Modified: trunk/Panotools-Script/t/011.read-optimise.t =================================================================== --- trunk/Panotools-Script/t/011.read-optimise.t 2008-01-02 01:17:22 UTC (rev 769) +++ trunk/Panotools-Script/t/011.read-optimise.t 2008-01-03 00:31:03 UTC (rev 770) @@ -22,6 +22,3 @@ # set projection to Mercator #$p->Panorama->{f} = '5'; -ok ($p->Optimise, 'Optimisation succeeds'); - - Modified: trunk/Panotools-Script/t/012.read-pto.t =================================================================== --- trunk/Panotools-Script/t/012.read-pto.t 2008-01-02 01:17:22 UTC (rev 769) +++ trunk/Panotools-Script/t/012.read-pto.t 2008-01-03 00:31:03 UTC (rev 770) @@ -26,5 +26,3 @@ ok ($p->Write ($tempfile), "script written to $tempfile"); } -ok ($p->Optimise, 'Optimisation succeeds'); - Modified: trunk/Panotools-Script/t/021.morph.t =================================================================== --- trunk/Panotools-Script/t/021.morph.t 2008-01-02 01:17:22 UTC (rev 769) +++ trunk/Panotools-Script/t/021.morph.t 2008-01-03 00:31:03 UTC (rev 770) @@ -31,15 +31,5 @@ ok ($p->Write ($tempfile), "script written to $tempfile"); } - -{ -my $tempfile = File::Spec->catfile ($tempdir, '021.jpg'); -ok ($p->Stitch ($tempfile), "stitched to $tempfile");; -} - $p->Panorama->Set (n => 'TIFF'); -{ -my $tempfile = File::Spec->catfile ($tempdir, '021.tif'); -ok ($p->Stitch ($tempfile), "stitched to $tempfile");; -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-05 00:38:27
|
Revision: 773 http://panotools.svn.sourceforge.net/panotools/?rev=773&view=rev Author: brunopostle Date: 2008-01-04 16:38:29 -0800 (Fri, 04 Jan 2008) Log Message: ----------- Add pto2fulla, tca calculator Modified Paths: -------------- trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/Makefile.PL Added Paths: ----------- trunk/Panotools-Script/bin/pto2fulla Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-01-03 19:28:31 UTC (rev 772) +++ trunk/Panotools-Script/MANIFEST 2008-01-05 00:38:29 UTC (rev 773) @@ -11,6 +11,7 @@ bin/nona-mask bin/process-masks bin/process-masks-gui +bin/pto2fulla bin/pto2tiff bin/pto2tiff-gui bin/qtvr2erect Modified: trunk/Panotools-Script/Makefile.PL =================================================================== --- trunk/Panotools-Script/Makefile.PL 2008-01-03 19:28:31 UTC (rev 772) +++ trunk/Panotools-Script/Makefile.PL 2008-01-05 00:38:29 UTC (rev 773) @@ -6,12 +6,12 @@ 'EXE_FILES' => [ 'bin/cubic2erect', 'bin/erect2cubic', 'bin/jpeg2qtvr', 'bin/erect2qtvr', 'bin/enblend-mask', 'bin/process-masks', 'bin/erect2planet', 'bin/pto2tiff', - 'bin/tif2svg', 'bin/enblend-svg', + 'bin/tif2svg', 'bin/enblend-svg', 'bin/pto2fulla', 'bin/qtvr2erect-gui', 'bin/tif2svg-gui', 'bin/pto2tiff-gui', 'bin/process-masks-gui', 'bin/enblend-svg-gui', 'bin/erect2qtvr-gui', 'bin/transform-pano', 'bin/nona-mask', 'bin/qtvr2erect' ], 'VERSION_FROM' => 'lib/Panotools/Script.pm', # finds $VERSION - 'PREREQ_PM' => {'Math::Matrix' => 0.4, 'Image::Size' => 3.0, 'Storable' => 2.0}, + 'PREREQ_PM' => {'Math::Matrix' => 0.4, 'Image::Size' => 2.9, 'Storable' => 2.0}, ($] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => 'lib/Panotools/Script.pm', # retrieve abstract from module AUTHOR => 'Bruno Postle <br...@po...>') : ()), Added: trunk/Panotools-Script/bin/pto2fulla =================================================================== --- trunk/Panotools-Script/bin/pto2fulla (rev 0) +++ trunk/Panotools-Script/bin/pto2fulla 2008-01-05 00:38:29 UTC (rev 773) @@ -0,0 +1,42 @@ +#!/usr/bin/perl +use strict; +use warnings; + +# Takes hugin .pto projects created according to this tutorial: +# http://hugin.sourceforge.net/tutorials/tca/ +# outputs 'fulla' command-line parameters suitable for correcting +# transverse chromatic aberration. Bruno Postle, December 2007 + +use Panotools::Script; + +my $results; +my $pi = 3.14159; + +for my $file (@ARGV) +{ + my $pto = new Panotools::Script; + $pto->Read ($file); + my $green = $pto->Image->[0]; + my $red = $pto->Image->[1]; + my $blue = $pto->Image->[2]; + + my $red_scale = sin ($green->{v} * $pi / 360) / sin ($red->{v} * $pi / 360); + my $blue_scale = sin ($green->{v} * $pi / 360) / sin ($blue->{v} * $pi / 360); + + my $red_d = 1 - $red->{a} - $red->{b} - $red->{c}; + my $blue_d = 1 - $blue->{a} - $blue->{b} - $blue->{c}; + + my $red_a = sprintf "%f", $red->{a} * $red_scale * $red_scale * $red_scale * $red_scale; + my $red_b = sprintf "%f", $red->{b} * $red_scale * $red_scale * $red_scale; + my $red_c = sprintf "%f", $red->{c} * $red_scale * $red_scale; + $red_d = sprintf "%f", $red_d * $red_scale; + + my $blue_a = sprintf "%f", $blue->{a} * $blue_scale * $blue_scale * $blue_scale * $blue_scale; + my $blue_b = sprintf "%f", $blue->{b} * $blue_scale * $blue_scale * $blue_scale; + my $blue_c = sprintf "%f", $blue->{c} * $blue_scale * $blue_scale; + $blue_d = sprintf "%f", $blue_d * $blue_scale; + + $results .= "-r $red_a:$red_b:$red_c:$red_d -b $blue_a:$blue_b:$blue_c:$blue_d\n"; +} + +print $results; Property changes on: trunk/Panotools-Script/bin/pto2fulla ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-05 00:40:08
|
Revision: 775 http://panotools.svn.sourceforge.net/panotools/?rev=775&view=rev Author: brunopostle Date: 2008-01-04 16:40:14 -0800 (Fri, 04 Jan 2008) Log Message: ----------- Update Changelog and TODO Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/README Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-05 00:39:12 UTC (rev 774) +++ trunk/Panotools-Script/Changes 2008-01-05 00:40:14 UTC (rev 775) @@ -1,5 +1,12 @@ Revision history for Panotools::Script. +0.12 + - remove Preview(), Optimise() methods + - enblend mask, merge mask rather than replace + - enblend-svg, render just masks, use enblend-mask to merge + - nona-mask, allow full command-line parameters + - pto2fulla align_image_stack based tca calculator + 0.11 - replace Image::Magick with Image::Size for sizing images - jpeg2qtvr fix CRLF bug on windows Modified: trunk/Panotools-Script/README =================================================================== --- trunk/Panotools-Script/README 2008-01-05 00:39:12 UTC (rev 774) +++ trunk/Panotools-Script/README 2008-01-05 00:40:14 UTC (rev 775) @@ -33,11 +33,7 @@ TODO ---- -* retire Stitch(), Preview() & Optimise() methods -# enblend mask, merge mask rather than replace -* enblend-svg, render just masks, use enblend-mask to merge -* nona-mask, allow full command-line parameters -* align_image_stack based tca calculator +* retire Stitch() method * preserve comment line extensions * open/save lens profiles This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-06 00:42:23
|
Revision: 781 http://panotools.svn.sourceforge.net/panotools/?rev=781&view=rev Author: brunopostle Date: 2008-01-05 16:42:27 -0800 (Sat, 05 Jan 2008) Log Message: ----------- write .pto project instead of rendering image Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/bin/erect2planet Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-05 23:42:44 UTC (rev 780) +++ trunk/Panotools-Script/Changes 2008-01-06 00:42:27 UTC (rev 781) @@ -6,6 +6,7 @@ - enblend-svg, render just masks, use enblend-mask to merge - nona-mask, allow full command-line parameters - pto2fulla align_image_stack based tca calculator + - erect2planet output pto project instead of rendering image 0.11 - replace Image::Magick with Image::Size for sizing images Modified: trunk/Panotools-Script/bin/erect2planet =================================================================== --- trunk/Panotools-Script/bin/erect2planet 2008-01-05 23:42:44 UTC (rev 780) +++ trunk/Panotools-Script/bin/erect2planet 2008-01-06 00:42:27 UTC (rev 781) @@ -6,29 +6,22 @@ use Panotools::Script; use Image::Size; -my $erect = shift or die "usage\n $0 equirectangular.tif"; -$erect = File::Spec->rel2abs ($erect); +my $img_erect = shift or die "usage\n $0 equirectangular.tif"; -# FIXME should accept transform parameters +my $pto_sgraphic = $img_erect; +$pto_sgraphic =~ s/\.([[:alnum:]]+)$/-sgraphic.pto/; +exit if -e $pto_sgraphic; -my $sgraphic = $erect; +my ($width, $height) = imgsize ($img_erect); +my $face = int (0.6 * $width); +my ($volume, $directories, $file) = File::Spec->splitpath ($img_erect); -$sgraphic =~ s/\.([[:alnum:]]+)$/-sgraphic/; - -my ($width, $height) = imgsize ($erect); - -my $face = $width; - my $stereographic = new Panotools::Script; $stereographic->Panorama->Set (v => 270, f => 4, u => 0, w => $face, h => $face, n => '"TIFF"'); - -$stereographic->{stitcher} = 'nona'; - $stereographic->Image->[0] = new Panotools::Script::Line::Image; +$stereographic->Image->[0]->Set (w => $width, h => $height, v => 360, f => 4, r => 0, p => 0, y => 0, n => "\"$file\""); +$stereographic->Write ($pto_sgraphic); -$stereographic->Image->[0]->Set (w => $width, h => $height, v => 360, f => 4, r => 0, p => 0, y => 0, n => "\"$erect\""); -$stereographic->Stitch ($sgraphic); - __END__ =head1 NAME @@ -41,12 +34,12 @@ =head1 DESCRIPTION -Generates a suitably sized stereographic image from a 360 degree +Generates a suitably sized stereographic .pto project from a 360 degree equirectangular image. Input is in any image format understood by hugin, output is in TIFF format with a field of view of 270 degrees. The output filename is derived automatically from the input filename with -'-sgraphic' appended. +'-sgraphic.pto' appended. Existing .pto files will not be overwritten. L<http://hugin.sourceforge.net/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-13 00:11:50
|
Revision: 787 http://panotools.svn.sourceforge.net/panotools/?rev=787&view=rev Author: brunopostle Date: 2008-01-12 16:11:52 -0800 (Sat, 12 Jan 2008) Log Message: ----------- Remove Stitch() method completely Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/META.yml trunk/Panotools-Script/README trunk/Panotools-Script/bin/erect2qtvr trunk/Panotools-Script/lib/Panotools/Script.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-12 00:51:20 UTC (rev 786) +++ trunk/Panotools-Script/Changes 2008-01-13 00:11:52 UTC (rev 787) @@ -1,7 +1,7 @@ Revision history for Panotools::Script. 0.12 - - remove Preview(), Optimise() methods + - remove Preview(), Optimise() and Stitch() methods - enblend mask, merge mask rather than replace - enblend-svg, render just masks, use enblend-mask to merge - nona-mask, allow full command-line parameters Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2008-01-12 00:51:20 UTC (rev 786) +++ trunk/Panotools-Script/META.yml 2008-01-13 00:11:52 UTC (rev 787) @@ -5,7 +5,7 @@ version_from: lib/Panotools/Script.pm installdirs: site requires: - Image::Size: 3 + Image::Size: 2.9 Math::Matrix: 0.4 Storable: 2 Modified: trunk/Panotools-Script/README =================================================================== --- trunk/Panotools-Script/README 2008-01-12 00:51:20 UTC (rev 786) +++ trunk/Panotools-Script/README 2008-01-13 00:11:52 UTC (rev 787) @@ -1,9 +1,9 @@ Panotools::Script - Panorama Tools scripting ============================================ -A perl module for reading, writing and driving Panorama Tools and hugin script files +A perl module for reading, writing and manipulating hugin script files -http://panotools.sourceforge.net/ +http://hugin.sourceforge.net/ Installation @@ -23,9 +23,8 @@ Math::Matrix Image::Size -This module requires 'autooptimiser' and 'nona' from hugin. Some of -the scripts require 'freepv', 'enblend', 'autotrace' and ImageMagick -command-line tools. +Some of the scripts require 'nona', 'freepv', 'enblend', 'autotrace' and +ImageMagick command-line tools. The various *-gui tools require 'zenity' and will only work on Linux/unix systems. @@ -33,7 +32,6 @@ TODO ---- -* retire Stitch() method * preserve comment line extensions * open/save lens profiles Modified: trunk/Panotools-Script/bin/erect2qtvr =================================================================== --- trunk/Panotools-Script/bin/erect2qtvr 2008-01-12 00:51:20 UTC (rev 786) +++ trunk/Panotools-Script/bin/erect2qtvr 2008-01-13 00:11:52 UTC (rev 787) @@ -63,22 +63,15 @@ my $prefix = File::Spec->catfile ($tempdir, 'cube'); -my $pto_temp = "$erect.erectqtvr.$$.pto"; +my $pto_temp = "$stub.erect2qtvr.$$.pto"; system ('erect2cubic', "--erect=$erect", "--ptofile=$pto_temp", "--filespec=TIFF_m", "--pitch=$pitch", "--yaw=$yaw"); -system ('nona', '-m', 'TIFF_m', '-p', 'UINT8', '-o', $prefix, $pto_temp); +system ('nona', '-m', 'TIFF_m', '-p', 'UINT8', '-o', "$prefix-face", $pto_temp); -# get the width and height of the input image -my ($width, $height) = imgsize ($erect); - -# calculate an 'ideal' cubeface size -my $face = 8 * int (int ($width / 3.1416) / 8); - # generate JPEG cubefaces - for my $index (0 .. 5) { - system ('convert', '-quality', $quality, $prefix."000$index.tif", $prefix."000$index.jpg"); + system ('convert', '-quality', $quality, "$prefix-face000$index.tif", "$prefix-face000$index.jpg"); } # fisheye cubefaces for preview track @@ -94,7 +87,6 @@ $scratch = new Panotools::Script; $scratch->Panorama->Set (v => 90, f => 0, w => 256, h => 256, n => '"TIFF"'); -$scratch->{stitcher} = 'nona'; $scratch->Image->[0] = new Panotools::Script::Line::Image; for my $index (0 .. 5) @@ -102,15 +94,17 @@ # generate JPEG preview cubefaces system ('mogrify', '-geometry', '32x32', "$prefix-preview000$index.tif"); $scratch->Image->[0]->Set (w => 32, h => 32, v => 100, f => 3, r => 0, p => 0, y => 0, n => "\"$prefix-preview000$index.tif\""); - $scratch->Stitch ("$prefix-preview000$index.tif"); - system ('convert', '-quality', $quality, "$prefix-preview000$index.tif", "$prefix-preview000$index.jpg"); + $scratch->Write ($pto_temp); + system ('nona', '-o', "$prefix-preview-rectilinear.tif", $pto_temp); + unlink $pto_temp; + system ('convert', '-quality', $quality, "$prefix-preview-rectilinear.tif", "$prefix-preview000$index.jpg"); } print "Tempdir: $tempdir\n" unless $cleanup; $outfile = "$stub.mov" unless (defined $outfile); -system ('jpeg2qtvr', @qtvr_opts, "--prefix=$prefix"."000", "--preview=$prefix-preview000", "--outfile=$outfile"); +system ('jpeg2qtvr', @qtvr_opts, "--prefix=$prefix-face000", "--preview=$prefix-preview000", "--outfile=$outfile"); __END__ Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-12 00:51:20 UTC (rev 786) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-13 00:11:52 UTC (rev 787) @@ -6,7 +6,7 @@ =head1 SYNOPSIS -Read, manipulate and write Panorama Tools script files. +Read, write and manipulate hugin script files. =head1 DESCRIPTION @@ -34,7 +34,7 @@ use Storable qw/ dclone /; -our $VERSION = 0.11; +our $VERSION = 0.12; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; @@ -64,8 +64,6 @@ $self->{output} = []; $self->{control} = []; $self->{controlmorph} = []; - $self->{stitcher} = $ENV{STITCHER} || 'nona'; # nona, PTmender, PTStitcher, Tmender - $self->{optimiser} = $ENV{OPTIMISER} || 'autooptimiser'; # PToptimizer PTOptimizer, autooptimiser $self->{basedir} = File::Spec->rel2abs (File::Spec->curdir); } @@ -311,25 +309,5 @@ } } -# deprecated Stitch() method - -sub Stitch -{ - my $self = shift; - my $outfile = shift; - my @options = @_; - my $tempdir = tempdir (CLEANUP => $CLEANUP); - my $tempfile = File::Spec->catfile ($tempdir, 'stitch.txt'); - $self->Image2Output; - my $vector = File::Spec->abs2rel ($self->{basedir}, $tempdir); - $self->Write ($tempfile, $vector); - my $cwd = File::Spec->curdir; - chdir ($tempdir); - system ($self->{stitcher}, @options, '-o', $outfile, $tempfile); - chdir ($cwd); - return 0 unless ($? == 0); - return 1; -} - 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-14 00:06:45
|
Revision: 788 http://panotools.svn.sourceforge.net/panotools/?rev=788&view=rev Author: brunopostle Date: 2008-01-13 16:06:31 -0800 (Sun, 13 Jan 2008) Log Message: ----------- Read and write hugin image metadata and project option in comment lines Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/README trunk/Panotools-Script/lib/Panotools/Script.pm Added Paths: ----------- trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-13 00:11:52 UTC (rev 787) +++ trunk/Panotools-Script/Changes 2008-01-14 00:06:31 UTC (rev 788) @@ -7,6 +7,7 @@ - nona-mask, allow full command-line parameters - pto2fulla align_image_stack based tca calculator - erect2planet output pto project instead of rendering image + - read and write hugin image metadata and options in comment lines 0.11 - replace Image::Magick with Image::Size for sizing images Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-01-13 00:11:52 UTC (rev 787) +++ trunk/Panotools-Script/MANIFEST 2008-01-14 00:06:31 UTC (rev 788) @@ -26,7 +26,9 @@ lib/Panotools/Script/Line/Control.pm lib/Panotools/Script/Line/ControlMorph.pm lib/Panotools/Script/Line/Image.pm +lib/Panotools/Script/Line/ImageMetadata.pm lib/Panotools/Script/Line/Mode.pm +lib/Panotools/Script/Line/Option.pm lib/Panotools/Script/Line/Output.pm lib/Panotools/Script/Line/Panorama.pm lib/Panotools/Script/Line/Variable.pm Modified: trunk/Panotools-Script/README =================================================================== --- trunk/Panotools-Script/README 2008-01-13 00:11:52 UTC (rev 787) +++ trunk/Panotools-Script/README 2008-01-14 00:06:31 UTC (rev 788) @@ -32,7 +32,6 @@ TODO ---- -* preserve comment line extensions * open/save lens profiles Added: trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm (rev 0) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm 2008-01-14 00:06:31 UTC (rev 788) @@ -0,0 +1,59 @@ +package Panotools::Script::Line::ImageMetadata; + +use strict; +use warnings; +use Panotools::Script::Line; + +use vars qw /@ISA/; +@ISA = qw /Panotools::Script::Line/; + +=head1 NAME + +Panotools::Script::Line::ImageMetadata - hugin input image metadata + +=head1 SYNOPSIS + +A single input image is described by an 'i' line, this is optionally prefixed +by a '#-hugin' line containing metadata in a key=value format + +=head1 DESCRIPTION + +=cut + +sub Assemble +{ + my $self = shift; + $self->_sanitise; + my @tokens; + for my $entry (sort keys %{$self}) + { + push @tokens, $entry .'='. $self->{$entry}; + } + return (join ' ', ($self->Identifier, @tokens)) ."\n" if (@tokens); +} + +sub _defaults +{ + my $self = shift; +} + +sub _valid { return '^([[:alnum:]]+)=(.*)' } + +sub Identifier +{ + my $self = shift; + return "#-hugin"; +} + +sub _sanitise +{ + my $self = shift; + my $valid = $self->_valid; + for my $key (keys %{$self}) + { + delete $self->{$key} unless (grep /$valid/, "$key="); + } +} + +1; + Added: trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm (rev 0) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm 2008-01-14 00:06:31 UTC (rev 788) @@ -0,0 +1,59 @@ +package Panotools::Script::Line::Option; + +use strict; +use warnings; + +=head1 NAME + +Panotools::Script::Line::Option - Hugin Options + +=head1 SYNOPSIS + +Option parameters are described by a line beginning with '#hugin_' + +=head1 DESCRIPTION + +=cut + +sub new +{ + my $class = shift; + $class = ref $class || $class; + my $self = bless {}, $class; + $self->_defaults; + return $self; +} + +sub _defaults +{ + my $self = shift; +} + +sub Identifier +{ + my $self = shift; + return "#hugin_"; +} + +sub Parse +{ + my $self = shift; + my $string = shift || return 0; + my ($key, $value) = $string =~ /^#hugin_([[:alnum:]]+) +(.+)/g; + $self->{$key} = $value; + return 1; +} + +sub Assemble +{ + my $self = shift; + my @items; + for my $entry (sort keys %{$self}) + { + push @items, $self->Identifier . $entry .' '. $self->{$entry}; + } + return (join "\n", @items) ."\n" if (@items); +} + + +1; Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-13 00:11:52 UTC (rev 787) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2008-01-14 00:06:31 UTC (rev 788) @@ -23,7 +23,9 @@ use Panotools::Script::Line::Mode; use Panotools::Script::Line::Panorama; +use Panotools::Script::Line::Option; use Panotools::Script::Line::Image; +use Panotools::Script::Line::ImageMetadata; use Panotools::Script::Line::Output; use Panotools::Script::Line::Control; use Panotools::Script::Line::ControlMorph; @@ -59,8 +61,10 @@ my $self = shift; $self->{mode} = new Panotools::Script::Line::Mode; $self->{panorama} = new Panotools::Script::Line::Panorama; + $self->{option} = new Panotools::Script::Line::Option; $self->{variable} = new Panotools::Script::Line::Variable; $self->{image} = []; + $self->{imagemetadata} = []; $self->{output} = []; $self->{control} = []; $self->{controlmorph} = []; @@ -90,6 +94,7 @@ $line =~ s/(\r|\n)//g; $self->Mode->Parse ($line) if ($line =~ /^m /); $self->Panorama->Parse ($line) if ($line =~ /^p /); + $self->Option->Parse ($line) if ($line =~ /^#hugin_/); $self->Variable->Parse ($line) if ($line =~ /^v /); if ($line =~ /^i /) { @@ -115,6 +120,13 @@ $controlmorph->Parse ($line); push @{$self->ControlMorph}, $controlmorph; } + if ($line =~ /^#-hugin /) + { + # per-image metadata + my $imagemeta = new Panotools::Script::Line::ImageMetadata; + $imagemeta->Parse ($line); + push @{$self->ImageMetadata}, $imagemeta; + } } $self->Output2Image; return 1; @@ -142,9 +154,10 @@ print FILE $self->Panorama->Assemble; print FILE $self->Mode->Assemble; print FILE "\n# Image lines\n"; - for my $image (@{$self->Image}) + for my $index (0 .. length (@{$self->Image}) - 1) { - print FILE $image->Assemble ($vector); + print FILE $self->ImageMetadata->[$index]->Assemble if defined ($self->ImageMetadata->[$index]); + print FILE $self->Image->[$index]->Assemble if defined ($self->Image->[$index]); } print FILE "\n# Variable lines\n"; print FILE $self->Variable->Assemble; @@ -157,6 +170,8 @@ { print FILE $controlmorph->Assemble; } + print FILE "\n# option lines\n"; + print FILE $self->Option->Assemble; print FILE "\n*\n"; print FILE "\n# Output image lines\n"; for my $output (@{$self->Output}) @@ -202,6 +217,12 @@ $self->{panorama}; } +sub Option +{ + my $self = shift; + $self->{option}; +} + sub Variable { my $self = shift; @@ -223,6 +244,12 @@ $self->{image}; } +sub ImageMetadata +{ + my $self = shift; + $self->{imagemetadata}; +} + sub Output { my $self = shift; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-14 23:48:28
|
Revision: 790 http://panotools.svn.sourceforge.net/panotools/?rev=790&view=rev Author: brunopostle Date: 2008-01-14 15:48:05 -0800 (Mon, 14 Jan 2008) Log Message: ----------- ptoinfo hugin project reporting tool Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/Makefile.PL trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm trunk/Panotools-Script/lib/Panotools/Script/Line/Mode.pm trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm trunk/Panotools-Script/lib/Panotools/Script/Line/Panorama.pm trunk/Panotools-Script/lib/Panotools/Script/Line/Variable.pm Added Paths: ----------- trunk/Panotools-Script/bin/ptoinfo Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/Changes 2008-01-14 23:48:05 UTC (rev 790) @@ -6,6 +6,7 @@ - enblend-svg, render just masks, use enblend-mask to merge - nona-mask, allow full command-line parameters - pto2fulla align_image_stack based tca calculator + - ptoinfo hugin project reporting tool - erect2planet output pto project instead of rendering image - read and write hugin image metadata and options in comment lines Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/MANIFEST 2008-01-14 23:48:05 UTC (rev 790) @@ -12,6 +12,7 @@ bin/process-masks bin/process-masks-gui bin/pto2fulla +bin/ptoinfo bin/pto2tiff bin/pto2tiff-gui bin/qtvr2erect Modified: trunk/Panotools-Script/Makefile.PL =================================================================== --- trunk/Panotools-Script/Makefile.PL 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/Makefile.PL 2008-01-14 23:48:05 UTC (rev 790) @@ -6,7 +6,7 @@ 'EXE_FILES' => [ 'bin/cubic2erect', 'bin/erect2cubic', 'bin/jpeg2qtvr', 'bin/erect2qtvr', 'bin/enblend-mask', 'bin/process-masks', 'bin/erect2planet', 'bin/pto2tiff', - 'bin/tif2svg', 'bin/enblend-svg', 'bin/pto2fulla', + 'bin/tif2svg', 'bin/enblend-svg', 'bin/pto2fulla', 'bin/ptoinfo', 'bin/qtvr2erect-gui', 'bin/tif2svg-gui', 'bin/pto2tiff-gui', 'bin/process-masks-gui', 'bin/enblend-svg-gui', 'bin/erect2qtvr-gui', 'bin/transform-pano', 'bin/nona-mask', 'bin/qtvr2erect' ], Added: trunk/Panotools-Script/bin/ptoinfo =================================================================== --- trunk/Panotools-Script/bin/ptoinfo (rev 0) +++ trunk/Panotools-Script/bin/ptoinfo 2008-01-14 23:48:05 UTC (rev 790) @@ -0,0 +1,64 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Panotools::Script; + +for my $path_pto (@ARGV) +{ + my $pto = new Panotools::Script; + $pto->Read ($path_pto); + print STDOUT "---\nHugin project file: $path_pto\n"; + + # general project info + print STDOUT "Project:\n"; + print STDOUT ' Number of images: '. scalar (@{$pto->Image}) ."\n"; + for my $item (@{$pto->Panorama->Report}, @{$pto->Option->Report}, @{$pto->Mode->Report}) + { + print STDOUT ' '. (join ': ', @{$item}) ."\n"; + } + + # summarise control points + my $results = {}; + for my $control (@{$pto->Control}) + { + my $t = $control->{t}; + $results->{$t} += 1; + } + print STDOUT " Normal control points: ". $results->{0} ."\n" if (defined $results->{0}); + delete $results->{0}; + print STDOUT " Horizontal control points: ". $results->{1} ."\n" if (defined $results->{1}); + delete $results->{1}; + print STDOUT " Vertical control points: ". $results->{2} ."\n" if (defined $results->{2}); + delete $results->{2}; + print STDOUT " Straight lines: ". scalar (keys %{$results}) ."\n" if (scalar keys %{$results}); + + for my $index (0 .. scalar (@{$pto->Image}) - 1) + { + # summarise input image + print STDOUT "Image $index:\n"; + for my $item (@{$pto->Image->[$index]->Report}, @{$pto->ImageMetadata->[$index]->Report}, @{$pto->Variable->Report ($index)}) + { + print STDOUT ' '. (join ': ', @{$item}) ."\n"; + } + + # summarise control points for this image + my $results = {}; + for my $control (@{$pto->Control}) + { + my $N = $control->{N}; + my $n = $control->{n}; + next unless ($n == $index or $N == $index); + $results->{$N} += 1; + $results->{$n} += 1; + } + delete $results->{$index}; + for my $key (sort keys %{$results}) + { + print STDOUT " Connections to image $key: ". $results->{$key} ."\n"; + } + } +} + + Property changes on: trunk/Panotools-Script/bin/ptoinfo ___________________________________________________________________ Name: svn:executable + * Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Image.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -45,13 +45,6 @@ g - horizontal shear t - vertical shear - K0a, K0b linear color/grayvalue correction coefficients for each channel - K1a, K1b (for grayscale images Only K0a, K0b is used): - K2a, K2b i_red = K0a * i_red + K0b - i_green = K1a * i_green + K1b - i_blue = K2a * i_blue + K2b - This correction is applied after the flatfield flatfield correction. - Eev exposure of image in EV (exposure values) Er white balance factor for red channel Eb white balance factor for blue channel @@ -94,12 +87,6 @@ Vx - horizontal offset Vy - vertical offset - Vf filename of flatfield image. - For additive correction the image will be used as it is. - In the case of correction by division, the flatfield will be divided by - its mean value. - - S100,600,100,800 Selection(l,r,t,b), Only pixels inside the rectangle will be used for conversion. Original image size is used for all image parameters (e.g. field-of-view) refer to the original image. @@ -107,18 +94,8 @@ The selection will be circular for circular fisheye images, and rectangular for all other projection formats - X10 World coordinates of camera position, only used for PTStereo - Y200 If the camera is aligned (yaw = pitch = roll = 0.0), - Z-13.5 X is coordinate to the right, Y vertically up and - -Z is forward viewing direction. nName file name of the input image. - C100,600,100,800 Crop(l,r,t,b), Only pixels inside the rectangle will be used for conversion. - Cropped image size is used for all image parameters - (e.g. field-of-view) refer to the cropped part of the image. - - i (the small letter). Morph-to-fit using control points. - i f2 r0 p0 y0 v183 a0 b-0.1 c0 S100,600,100,800 n"photo1.jpg" i f2 r0 p0 y180 v183 a0 b-0.1 c0 S100,600,100,800 n"photo1.jpg" @@ -202,5 +179,37 @@ return "\"$name\""; } +sub Report +{ + my $self = shift; + my @report; + + my $format = 'UNKNOWN'; + $format = "Rectilinear" if $self->{f} == 0; + $format = "Cylindrical" if $self->{f} == 1; + $format = "Circular Fisheye" if $self->{f} == 2; + $format = "Full-frame Fisheye" if $self->{f} == 3; + $format = "Equirectangular" if $self->{f} == 4; + + push @report, ['Dimensions', $self->{w} .'x'. $self->{h}]; + push @report, ['Megapixels', int ($self->{w} * $self->{h} / 1024 / 1024 * 10) / 10]; + push @report, ['Format', $format]; + push @report, ['Horizontal Field of View', $self->{v}]; + push @report, ['Roll Pitch Yaw', $self->{r} .','. $self->{p} .','. $self->{y}]; + push @report, ['Lens distortion', $self->{a} .','. $self->{b} .','. $self->{c}] if defined $self->{a}; + push @report, ['Image centre', $self->{d} .','. $self->{e}] if defined $self->{d}; + push @report, ['Image shear', $self->{g} .','. $self->{t}] if defined $self->{g}; + push @report, ['Exposure Value', $self->{Eev}]; + push @report, ['Red Blue colour balance', $self->{Er} .','. $self->{Eb}]; + push @report, ['EMOR parameters', $self->{Ra} .','. $self->{Rb} .','. $self->{Rc} .','. $self->{Rd} .','. $self->{Re}]; + push @report, ['Vignetting parameters', $self->{Va} .','. $self->{Vb} .','. $self->{Vc} .','. $self->{Vd}]; + push @report, ['Vignetting centre', $self->{Vx} .','. $self->{Vy}]; + push @report, ['Selection area', $self->{S}] if defined $self->{S}; + push @report, ['File name', $self->{n}]; + + [@report]; +} + + 1; Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/ImageMetadata.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -55,5 +55,19 @@ } } +sub Report +{ + my $self = shift; + my @report; + for my $entry (sort keys %{$self}) + { + my @tokens = $entry =~ /(^[a-z]+|[A-Z][a-z]+|[A-Z][A-Z]+(?=[A-Z][a-z]))/g; + my $name = join ' ', @tokens; + push @report, [$name, $self->{$entry}] unless ($self->{$entry} =~ /false/i); + } + [@report]; +} + + 1; Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Mode.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Mode.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Mode.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -35,31 +35,13 @@ 5 - bilinear, 6 - nearest neighbor, 7 - sinc1024 - - 8 - Box - 9 - Bartlett/Triangle - 10 - Hermite - 11 - Hanning - 12 - Hamming - 13 - Blackmann - 14 - Gaussian 1/sqrt(2) - 15 - Gaussian 1/2 - 16 - Quadardic - 17 - Cubic - 18 - Catmull-Rom - 19 - Mitchell - 20 - Lanczos2 - 21 - Lanczos3 - 22 - Blackman/Bessel - 23 - Blackman/sinc - - f0 Invoke Faster Transformation also invoked by creating a file named "pano12_opt.txt" - in the same foler as project with a line FAST_TRANSFORM + m2 Huber Sigma - p0 Create panorama after optimizing control points - 0 no(default), 1 yes + p0.001 Photometric Huber Sigma + s1 Photometric Symmetric Error + =cut sub _defaults @@ -69,7 +51,7 @@ $self->{i} = "0"; } -sub _valid { return '^([fgip])(.*)' } +sub _valid { return '^([fgimps])(.*)' } sub Identifier { @@ -77,4 +59,27 @@ 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; Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Option.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -55,5 +55,18 @@ return (join "\n", @items) ."\n" if (@items); } +sub Report +{ + my $self = shift; + my @report; + for my $entry (sort keys %{$self}) + { + my @tokens = $entry =~ /(^[a-z]+|[A-Z][a-z]+|[A-Z][A-Z]+(?=[A-Z][a-z]))/g; + my $name = join ' ', @tokens; + push @report, [$name, $self->{$entry}] unless ($self->{$entry} =~ /false/i); + } + [@report]; +} + 1; Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Panorama.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Panorama.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Panorama.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -21,6 +21,14 @@ 1 - Cylindrical (for Printing and QTVR) 2 - Equirectangular ( for Spherical panos), default 3 - full-frame fisheye + 4 - stereographic + 5 - mercator + 6 - transverse mercator + 7 - sinusoidal + 8 - Lambert Equal Area Cylindrical + 9 - Lambert Azimuthal + 10 - Albers Equal Area Conical + v360 horizontal field of view of panorama (default 360) nPICT Panorama file format, one of: PNG png-format, 8 & 16 bit supported @@ -90,4 +98,38 @@ return "p"; } +sub Report +{ + my $self = shift; + my @report; + + my $format = 'UNKNOWN'; + $format = "Rectilinear" if $self->{f} == 0; + $format = "Cylindrical" if $self->{f} == 1; + $format = "Equirectangular" if $self->{f} == 2; + $format = "Fisheye" if $self->{f} == 3; + $format = "Stereographic" if $self->{f} == 4; + $format = "Mercator" if $self->{f} == 5; + $format = "Transverse mercator" if $self->{f} == 6; + $format = "Sinusoidal" if $self->{f} == 7; + $format = "Lambert Equal Area Cylindrical" if $self->{f} == 8; + $format = "Lambert Azimuthal" if $self->{f} == 9; + $format = "Albers Equal Area Conical" if $self->{f} == 10; + + my $mode; + $mode = "LDR" if $self->{R} == 0; + $mode = "HDR" if $self->{R} == 1; + + push @report, ['Dimensions', $self->{w} .'x'. $self->{h}]; + push @report, ['Megapixels', int ($self->{w} * $self->{h} / 1024 / 1024 * 10) / 10]; + push @report, ['Format', $format]; + push @report, ['Horizontal Field of View', $self->{v}]; + push @report, ['File type', $self->{n}]; + push @report, ['Exposure Value', $self->{E}]; + push @report, ['Stitching mode', $mode] if defined $mode; + push @report, ['Bit depth', $self->{T}] if defined $self->{T}; + push @report, ['Selection area', $self->{S}] if defined $self->{S}; + [@report]; +} + 1; Modified: trunk/Panotools-Script/lib/Panotools/Script/Line/Variable.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script/Line/Variable.pm 2008-01-14 12:02:19 UTC (rev 789) +++ trunk/Panotools-Script/lib/Panotools/Script/Line/Variable.pm 2008-01-14 23:48:05 UTC (rev 790) @@ -93,4 +93,25 @@ } } +sub Report +{ + my $self = shift; + my $index = shift; + my @report; + + push @report, 'Roll' if $self->{$index}->{r}; + push @report, 'Pitch' if $self->{$index}->{p}; + push @report, 'Yaw' if $self->{$index}->{y}; + push @report, 'Field of View' if $self->{$index}->{v}; + push @report, 'a' if $self->{$index}->{a}; + push @report, 'b' if $self->{$index}->{b}; + push @report, 'c' if $self->{$index}->{c}; + push @report, 'd' if $self->{$index}->{d}; + push @report, 'e' if $self->{$index}->{e}; + push @report, 'g' if $self->{$index}->{g}; + push @report, 't' if $self->{$index}->{t}; + + [[('Optimise parameters', (join ',', @report))]]; +} + 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-15 12:05:21
|
Revision: 793 http://panotools.svn.sourceforge.net/panotools/?rev=793&view=rev Author: brunopostle Date: 2008-01-15 04:05:24 -0800 (Tue, 15 Jan 2008) Log Message: ----------- Remove pto2tiff-gui due to conflict with hugin_stitch_project. Add ptoinfo-gui zenity wrapper Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/Makefile.PL Added Paths: ----------- trunk/Panotools-Script/bin/ptoinfo-gui Removed Paths: ------------- trunk/Panotools-Script/bin/pto2tiff-gui Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-15 11:57:26 UTC (rev 792) +++ trunk/Panotools-Script/Changes 2008-01-15 12:05:24 UTC (rev 793) @@ -6,9 +6,10 @@ - enblend-svg, render just masks, use enblend-mask to merge - nona-mask, allow full command-line parameters - pto2fulla align_image_stack based tca calculator - - ptoinfo hugin project reporting tool + - ptoinfo hugin project reporting tool and gui wrapper - erect2planet output pto project instead of rendering image - read and write hugin image metadata and options in comment lines + - remove pto2tiff-gui due to conflict with hugin_stitch_project 0.11 - replace Image::Magick with Image::Size for sizing images Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-01-15 11:57:26 UTC (rev 792) +++ trunk/Panotools-Script/MANIFEST 2008-01-15 12:05:24 UTC (rev 793) @@ -14,7 +14,7 @@ bin/pto2fulla bin/ptoinfo bin/pto2tiff -bin/pto2tiff-gui +bin/ptoinfo-gui bin/qtvr2erect bin/qtvr2erect-gui bin/tif2svg Modified: trunk/Panotools-Script/Makefile.PL =================================================================== --- trunk/Panotools-Script/Makefile.PL 2008-01-15 11:57:26 UTC (rev 792) +++ trunk/Panotools-Script/Makefile.PL 2008-01-15 12:05:24 UTC (rev 793) @@ -7,7 +7,7 @@ 'bin/jpeg2qtvr', 'bin/erect2qtvr', 'bin/enblend-mask', 'bin/process-masks', 'bin/erect2planet', 'bin/pto2tiff', 'bin/tif2svg', 'bin/enblend-svg', 'bin/pto2fulla', 'bin/ptoinfo', - 'bin/qtvr2erect-gui', 'bin/tif2svg-gui', 'bin/pto2tiff-gui', + 'bin/qtvr2erect-gui', 'bin/tif2svg-gui', 'bin/ptoinfo-gui', 'bin/process-masks-gui', 'bin/enblend-svg-gui', 'bin/erect2qtvr-gui', 'bin/transform-pano', 'bin/nona-mask', 'bin/qtvr2erect' ], 'VERSION_FROM' => 'lib/Panotools/Script.pm', # finds $VERSION Deleted: trunk/Panotools-Script/bin/pto2tiff-gui =================================================================== --- trunk/Panotools-Script/bin/pto2tiff-gui 2008-01-15 11:57:26 UTC (rev 792) +++ trunk/Panotools-Script/bin/pto2tiff-gui 2008-01-15 12:05:24 UTC (rev 793) @@ -1,60 +0,0 @@ -#!/usr/bin/perl - -# GUI wrapper around pto2tiff. Requires zenity -# July 2007 Bruno Postle <br...@po...> - -use strict; -use warnings; - -my $cwd = `cat \$HOME/.pto2tiff-gui` || $ENV{'HOME'}; -chomp $cwd; - -unless (`which pto2tiff`) -{ - `zenity --error --text='pto2tiff not found in your \$PATH'`; - exit 1; -} - -my @files; - -if (@ARGV) -{ - @files = @ARGV; -} -else -{ - my $result = `zenity --file-selection \\ - --filename=$cwd/ \\ - --title='Select hugin .pto project(s) to stitch' \\ - --multiple` || exit 0; - chomp $result; - @files = split ('\|', $result); -} - -my $index = 1; - -for my $file (@files) -{ - $file = quotemeta ($file); - my $title = "Stitching project $index of ". scalar (@files); - `pto2tiff $file | \\ - zenity --progress \\ - --title='$title' \\ - --auto-close \\ - --pulsate \\ - --text='Project: $file'`; - $index++; - $cwd = $file; - $cwd =~ s/\/[^\/]*$//; - $cwd =~ s/\\\//\//g; - `echo '$cwd' > \$HOME/.pto2tiff-gui` if ($cwd =~ /^\//); -} - -my $title = scalar (@files) . ' hugin .pto project(s) stitched'; -my $text = join ("\n", @files); - -`zenity --info \\ - --title='$title' \\ - --text='$text'`; - -exit 0; Added: trunk/Panotools-Script/bin/ptoinfo-gui =================================================================== --- trunk/Panotools-Script/bin/ptoinfo-gui (rev 0) +++ trunk/Panotools-Script/bin/ptoinfo-gui 2008-01-15 12:05:24 UTC (rev 793) @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +# GUI wrapper around ptoinfo. Requires zenity +# Jan 2008 Bruno Postle <br...@po...> + +use strict; +use warnings; + +my $cwd = `cat \$HOME/.ptoinfo-gui` || $ENV{'HOME'}; +chomp $cwd; + +unless (`which ptoinfo`) +{ + `zenity --error --text='ptoinfo not found in your \$PATH'`; + exit 1; +} + +my $file; + +if (@ARGV) +{ + $file = shift @ARGV; +} +else +{ + $file = `zenity --file-selection \\ + --filename=$cwd/ \\ + --title='Select hugin .pto project to query'` || exit 0; + chomp $file; +} + +$file = quotemeta ($file); +my $title = "PTO project information"; +`ptoinfo $file | \\ + zenity --text-info \\ + --title='$title'`; +$cwd = $file; +$cwd =~ s/\/[^\/]*$//; +$cwd =~ s/\\\//\//g; +`echo '$cwd' > \$HOME/.ptoinfo-gui` if ($cwd =~ /^\//); + +exit 0; Property changes on: trunk/Panotools-Script/bin/ptoinfo-gui ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-01-15 12:52:32
|
Revision: 795 http://panotools.svn.sourceforge.net/panotools/?rev=795&view=rev Author: brunopostle Date: 2008-01-15 04:52:37 -0800 (Tue, 15 Jan 2008) Log Message: ----------- Add some .desktop files Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/MANIFEST Added Paths: ----------- trunk/Panotools-Script/desktop/ trunk/Panotools-Script/desktop/README trunk/Panotools-Script/desktop/enblend-svg.desktop trunk/Panotools-Script/desktop/erect2qtvr-gui.desktop trunk/Panotools-Script/desktop/process-masks-gui.desktop trunk/Panotools-Script/desktop/ptoinfo-gui.desktop trunk/Panotools-Script/desktop/qtvr2erect-gui.desktop trunk/Panotools-Script/desktop/tif2svg-gui.desktop Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-01-15 12:43:34 UTC (rev 794) +++ trunk/Panotools-Script/Changes 2008-01-15 12:52:37 UTC (rev 795) @@ -10,6 +10,7 @@ - erect2planet output pto project instead of rendering image - read and write hugin image metadata and options in comment lines - remove pto2tiff-gui due to conflict with hugin_stitch_project + - add .desktop files for Linux gui integration 0.11 - replace Image::Magick with Image::Size for sizing images Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-01-15 12:43:34 UTC (rev 794) +++ trunk/Panotools-Script/MANIFEST 2008-01-15 12:52:37 UTC (rev 795) @@ -21,6 +21,12 @@ bin/tif2svg-gui bin/transform-pano Changes +desktop/ptoinfo-gui.desktop +desktop/qtvr2erect-gui.desktop +desktop/tif2svg-gui.desktop +desktop/process-masks-gui.desktop +desktop/erect2qtvr-gui.desktop +desktop/enblend-svg.desktop lib/Panotools/Matrix.pm lib/Panotools/Script.pm lib/Panotools/Script/Line.pm Added: trunk/Panotools-Script/desktop/README =================================================================== --- trunk/Panotools-Script/desktop/README (rev 0) +++ trunk/Panotools-Script/desktop/README 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,9 @@ +Linux menu items for gui tools, these need to be installed with something like +this: + + desktop-file-install --dir=/usr/share/applications ptoinfo-gui.desktop + etc... + + update-desktop-database + update-mime-database /usr/share/mime + Added: trunk/Panotools-Script/desktop/enblend-svg.desktop =================================================================== --- trunk/Panotools-Script/desktop/enblend-svg.desktop (rev 0) +++ trunk/Panotools-Script/desktop/enblend-svg.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=SVG layer blender +Comment=Split and blend SVG layers +Exec=enblend-svg-gui %f +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=image/svg+xml; +GenericName=SVG layer blender Added: trunk/Panotools-Script/desktop/erect2qtvr-gui.desktop =================================================================== --- trunk/Panotools-Script/desktop/erect2qtvr-gui.desktop (rev 0) +++ trunk/Panotools-Script/desktop/erect2qtvr-gui.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=QTVR creator +Comment=Convert equirectangular images to QTVR +Exec=erect2qtvr-gui %f +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=image/tiff;image/png;image/jpeg; +GenericName=QTVR creator Added: trunk/Panotools-Script/desktop/process-masks-gui.desktop =================================================================== --- trunk/Panotools-Script/desktop/process-masks-gui.desktop (rev 0) +++ trunk/Panotools-Script/desktop/process-masks-gui.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Enblend mask processor +Comment=Convert equirectangular images to QTVR +Exec=process-masks-gui %F +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=image/tiff; +GenericName=Enblend mask processor Added: trunk/Panotools-Script/desktop/ptoinfo-gui.desktop =================================================================== --- trunk/Panotools-Script/desktop/ptoinfo-gui.desktop (rev 0) +++ trunk/Panotools-Script/desktop/ptoinfo-gui.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Hugin project info +Comment=Query hugin .pto project files +Exec=ptoinfo-gui +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=application/x-ptoptimizer-script; +GenericName=Hugin project info Added: trunk/Panotools-Script/desktop/qtvr2erect-gui.desktop =================================================================== --- trunk/Panotools-Script/desktop/qtvr2erect-gui.desktop (rev 0) +++ trunk/Panotools-Script/desktop/qtvr2erect-gui.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=QTVR converter +Comment=Convert QTVR files to equirectangular +Exec=qtvr2erect-gui %f +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=video/quicktime; +GenericName=QTVR converter Added: trunk/Panotools-Script/desktop/tif2svg-gui.desktop =================================================================== --- trunk/Panotools-Script/desktop/tif2svg-gui.desktop (rev 0) +++ trunk/Panotools-Script/desktop/tif2svg-gui.desktop 2008-01-15 12:52:37 UTC (rev 795) @@ -0,0 +1,12 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Multilayer SVG creator +Comment=Create a multilayer SVG file from multiple TIFF files +Exec=tif2svg-gui %F +Icon=hugin +Terminal=false +Type=Application +Categories=Graphics; +MimeType=image/tiff; +GenericName=Multilayer SVG creator This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-08 00:03:30
|
Revision: 809 http://panotools.svn.sourceforge.net/panotools/?rev=809&view=rev Author: brunopostle Date: 2008-02-07 16:03:29 -0800 (Thu, 07 Feb 2008) Log Message: ----------- Add match-n-shift to package Modified Paths: -------------- trunk/Panotools-Script/MANIFEST trunk/Panotools-Script/Makefile.PL Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-02-07 23:57:13 UTC (rev 808) +++ trunk/Panotools-Script/MANIFEST 2008-02-08 00:03:29 UTC (rev 809) @@ -8,6 +8,7 @@ bin/erect2qtvr bin/erect2qtvr-gui bin/jpeg2qtvr +bin/match-n-shift bin/nona-mask bin/process-masks bin/process-masks-gui Modified: trunk/Panotools-Script/Makefile.PL =================================================================== --- trunk/Panotools-Script/Makefile.PL 2008-02-07 23:57:13 UTC (rev 808) +++ trunk/Panotools-Script/Makefile.PL 2008-02-08 00:03:29 UTC (rev 809) @@ -4,7 +4,7 @@ WriteMakefile( 'NAME' => 'Panotools::Script', 'EXE_FILES' => [ 'bin/cubic2erect', 'bin/erect2cubic', - 'bin/jpeg2qtvr', 'bin/erect2qtvr', 'bin/enblend-mask', + 'bin/jpeg2qtvr', 'bin/erect2qtvr', 'bin/enblend-mask', 'bin/match-n-shift', 'bin/process-masks', 'bin/erect2planet', 'bin/pto2tiff', 'bin/tif2svg', 'bin/enblend-svg', 'bin/pto2fulla', 'bin/ptoinfo', 'bin/qtvr2erect-gui', 'bin/tif2svg-gui', 'bin/ptoinfo-gui', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-10 22:51:15
|
Revision: 813 http://panotools.svn.sourceforge.net/panotools/?rev=813&view=rev Author: brunopostle Date: 2008-02-10 14:51:16 -0800 (Sun, 10 Feb 2008) Log Message: ----------- Diagram showing math relationships in match-n-shift Modified Paths: -------------- trunk/Panotools-Script/MANIFEST Added Paths: ----------- trunk/Panotools-Script/doc/ trunk/Panotools-Script/doc/match-n-shift.svg Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-02-10 00:23:37 UTC (rev 812) +++ trunk/Panotools-Script/MANIFEST 2008-02-10 22:51:16 UTC (rev 813) @@ -22,6 +22,7 @@ bin/tif2svg-gui bin/transform-pano Changes +doc/match-n-shift.svg desktop/README desktop/ptoinfo-gui.desktop desktop/qtvr2erect-gui.desktop Added: trunk/Panotools-Script/doc/match-n-shift.svg =================================================================== --- trunk/Panotools-Script/doc/match-n-shift.svg (rev 0) +++ trunk/Panotools-Script/doc/match-n-shift.svg 2008-02-10 22:51:16 UTC (rev 813) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="800" + height="1200" + id="svg2"> + <defs + id="defs4" /> + <g + id="layer1"> + <path + d="M 398.99004,695.00996 C 470.77392,695.00996 536.65648,669.51329 588.02129,627.07246" + style="opacity:1;fill:#ff6600;fill-opacity:0;stroke:#ff6500;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path6065" /> + <path + d="M 711.42856,477.14285 A 327.14285,337.14285 0 1 1 711.4278,476.41712" + transform="matrix(0.9142776,0,0,0.8871592,48.656186,-23.015932)" + style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.22070146;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path2160" /> + <path + d="M 400,101 L 614,699.625" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5088" /> + <path + d="M 646,700 L 400,400" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5090" /> + <path + d="M 400,700 L 400,100" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5092" /> + <path + d="M 100,700 L 700,700" + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5094" /> + <text + x="538.94165" + y="634.5" + style="font-size:42.03546906px;font-style:normal;font-weight:normal;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text6067" + xml:space="preserve"><tspan + x="538.94165" + y="634.5" + id="tspan6069">a</tspan></text> + <path + d="M 400,705 C 646,705 646,705 646,705" + style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path7062" /> + <path + d="M 400.0625,712.9375 C 479.4809,712.9375 613.47763,712.9375 613.47763,712.9375" + style="fill:none;fill-rule:evenodd;stroke:#ff00ff;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path8033" /> + <text + x="641.11578" + y="739.54047" + style="font-size:42.03546906px;font-style:normal;font-weight:normal;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text8035" + xml:space="preserve"><tspan + x="641.11578" + y="739.54047" + id="tspan8037">c</tspan></text> + <text + x="584.19366" + y="759.66815" + style="font-size:42.03546906px;font-style:normal;font-weight:normal;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text8039" + xml:space="preserve"><tspan + x="584.19366" + y="759.66815" + id="tspan8041">b</tspan></text> + <text + x="118.14619" + y="783.20319" + style="font-size:35.62985992px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text9012" + xml:space="preserve"><tspan + x="118.14619" + y="783.20319" + id="tspan9018">b = 2.tan(a/2)</tspan><tspan + x="118.14619" + y="827.74054" + id="tspan9024">a = 2.atan(b/2)</tspan><tspan + x="118.14619" + y="872.27783" + id="tspan9026">b = 2.tan(atan(c)/2)</tspan><tspan + x="118.14619" + y="916.81519" + id="tspan9028">c = tan(2.atan(b/2))</tspan></text> + <text + x="447.10059" + y="634.61041" + style="font-size:26.50718498px;font-style:normal;font-weight:normal;fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text9030" + xml:space="preserve"><tspan + x="447.10059" + y="634.61041" + id="tspan9032">fisheye</tspan></text> + <text + x="619.36444" + y="761.30566" + style="font-size:26.50718498px;font-style:normal;font-weight:normal;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text9034" + xml:space="preserve"><tspan + x="619.36444" + y="761.30566" + id="tspan9036">rectilinear</tspan></text> + <text + x="451.59448" + y="784.2511" + style="font-size:26.50718498px;font-style:normal;font-weight:normal;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + id="text9038" + xml:space="preserve"><tspan + x="451.59448" + y="784.2511" + id="tspan9040">stereographic</tspan></text> + </g> +</svg> Property changes on: trunk/Panotools-Script/doc/match-n-shift.svg ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-12 23:06:51
|
Revision: 814 http://panotools.svn.sourceforge.net/panotools/?rev=814&view=rev Author: brunopostle Date: 2008-02-12 15:06:54 -0800 (Tue, 12 Feb 2008) Log Message: ----------- Update for 0.13 release Modified Paths: -------------- trunk/Panotools-Script/Changes trunk/Panotools-Script/META.yml trunk/Panotools-Script/lib/Panotools/Script.pm Modified: trunk/Panotools-Script/Changes =================================================================== --- trunk/Panotools-Script/Changes 2008-02-10 22:51:16 UTC (rev 813) +++ trunk/Panotools-Script/Changes 2008-02-12 23:06:54 UTC (rev 814) @@ -1,5 +1,9 @@ Revision history for Panotools::Script. +0.13 + - new match-n-shift control point finder tool + - fix crash in ptoinfo + 0.12 - remove Preview(), Optimise() and Stitch() methods - enblend mask, merge mask rather than replace Modified: trunk/Panotools-Script/META.yml =================================================================== --- trunk/Panotools-Script/META.yml 2008-02-10 22:51:16 UTC (rev 813) +++ trunk/Panotools-Script/META.yml 2008-02-12 23:06:54 UTC (rev 814) @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: Panotools-Script -version: 0.12 +version: 0.13 version_from: lib/Panotools/Script.pm installdirs: site requires: Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2008-02-10 22:51:16 UTC (rev 813) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2008-02-12 23:06:54 UTC (rev 814) @@ -36,7 +36,7 @@ use Storable qw/ dclone /; -our $VERSION = 0.12; +our $VERSION = 0.13; our $CLEANUP = 1; $CLEANUP = 0 if defined $ENV{DEBUG}; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-14 22:48:44
|
Revision: 817 http://panotools.svn.sourceforge.net/panotools/?rev=817&view=rev Author: brunopostle Date: 2008-02-14 14:48:45 -0800 (Thu, 14 Feb 2008) Log Message: ----------- Script to build .exe versions of tools (untested) Modified Paths: -------------- trunk/Panotools-Script/MANIFEST Added Paths: ----------- trunk/Panotools-Script/make_exe.pl Modified: trunk/Panotools-Script/MANIFEST =================================================================== --- trunk/Panotools-Script/MANIFEST 2008-02-13 22:43:14 UTC (rev 816) +++ trunk/Panotools-Script/MANIFEST 2008-02-14 22:48:45 UTC (rev 817) @@ -45,6 +45,7 @@ Makefile.PL MANIFEST This list of files META.yml Module meta-data (added by MakeMaker) +make_exe.pl README t/001.parse-control.t t/002.parse-panorama.t Added: trunk/Panotools-Script/make_exe.pl =================================================================== --- trunk/Panotools-Script/make_exe.pl (rev 0) +++ trunk/Panotools-Script/make_exe.pl 2008-02-14 22:48:45 UTC (rev 817) @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +# Requires p2e from App::Packer + +# Par::Packer might work better: +# http://par.wikia.com/wiki/Main_Page + +my @stubs = qw/ +cubic2erect +enblend-mask +enblend-svg +erect2cubic +erect2planet +erect2qtvr +jpeg2qtvr +match-n-shift +nona-mask +process-masks +pto2fulla +pto2tiff +ptoinfo +qtvr2erect +tif2svg +transform-pano/; + +for my $stub (@stubs) +{ + system ('copy', "bin\\$stub", "$stub.pl"); + system ('p2e', "--output-file=$stub.exe", "$stub.pl"); + unlink ("$stub.pl"); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2008-02-15 22:51:24
|
Revision: 819 http://panotools.svn.sourceforge.net/panotools/?rev=819&view=rev Author: brunopostle Date: 2008-02-15 14:51:28 -0800 (Fri, 15 Feb 2008) Log Message: ----------- Some win32 fixes Modified Paths: -------------- trunk/Panotools-Script/bin/cubic2erect trunk/Panotools-Script/bin/match-n-shift trunk/Panotools-Script/lib/Panotools/Script.pm trunk/Panotools-Script/make_exe.pl Modified: trunk/Panotools-Script/bin/cubic2erect =================================================================== --- trunk/Panotools-Script/bin/cubic2erect 2008-02-15 21:47:04 UTC (rev 818) +++ trunk/Panotools-Script/bin/cubic2erect 2008-02-15 22:51:28 UTC (rev 819) @@ -20,7 +20,6 @@ my $width = $height * 2; $pano->Panorama->Set (v => 360, f => 2, u => 0, w => $width, h => $height, n => "\"TIFF c:DEFLATE\""); -$pano->{basedir} = File::Spec->curdir; $pano->Image->[0] = new Panotools::Script::Line::Image; $pano->Image->[0]->Set (v => 90, w => $face, h => $face, f => 0, r => 0, p => 0, y => 0, n => "\"" . File::Spec->rel2abs ($images[0]) . "\""); Modified: trunk/Panotools-Script/bin/match-n-shift =================================================================== --- trunk/Panotools-Script/bin/match-n-shift 2008-02-15 21:47:04 UTC (rev 818) +++ trunk/Panotools-Script/bin/match-n-shift 2008-02-15 22:51:28 UTC (rev 819) @@ -141,7 +141,7 @@ pix_width => $n->{w}, pix_height => $n->{h}}); # scale back to original image dimensions - my ($n_pix_width, $n_pix_height) = imgsize ($paths_input[$point->{n}]); + my ($n_pix_width, $n_pix_height) = imgsize (File::Spec->rel2abs ($paths_input[$point->{n}])); my $n_scale_w = $n_pix_width / $n->{w}; my $n_scale_h = $n_pix_height / $n->{h}; $point->{x} *= $n_scale_w; @@ -164,7 +164,7 @@ pix_width => $N->{w}, pix_height => $N->{h}}); # scale back to original image dimensions - my ($N_pix_width, $N_pix_height) = imgsize ($paths_input[$point->{N}]); + my ($N_pix_width, $N_pix_height) = imgsize (File::Spec->rel2abs ($paths_input[$point->{N}])); my $N_scale_w = $N_pix_width / $N->{w}; my $N_scale_h = $N_pix_height / $N->{h}; $point->{X} *= $N_scale_w; @@ -176,7 +176,7 @@ for my $image (@{$oto->Image}) { $image->{n} = '"'. $paths_input[$index] .'"'; - ($image->{w}, $image->{h}) = imgsize ($paths_input[$index]); + ($image->{w}, $image->{h}) = imgsize (File::Spec->rel2abs ($paths_input[$index])); $image->{S} = $crop_s if defined $crop_s; $image->{v} = '=0' if $index > 0; $image->{d} = '=0' if $index > 0; Modified: trunk/Panotools-Script/lib/Panotools/Script.pm =================================================================== --- trunk/Panotools-Script/lib/Panotools/Script.pm 2008-02-15 21:47:04 UTC (rev 818) +++ trunk/Panotools-Script/lib/Panotools/Script.pm 2008-02-15 22:51:28 UTC (rev 819) @@ -68,7 +68,6 @@ $self->{output} = []; $self->{control} = []; $self->{controlmorph} = []; - $self->{basedir} = File::Spec->rel2abs (File::Spec->curdir); } =pod @@ -86,8 +85,6 @@ close FILE; my ($volume, $directories, $file) = File::Spec->splitpath ($path); - $self->{basedir} = File::Spec->catpath ($volume, $directories, ''); - $self->{basedir} = File::Spec->rel2abs ($self->{basedir}); for my $line (@raw) { Modified: trunk/Panotools-Script/make_exe.pl =================================================================== --- trunk/Panotools-Script/make_exe.pl 2008-02-15 21:47:04 UTC (rev 818) +++ trunk/Panotools-Script/make_exe.pl 2008-02-15 22:51:28 UTC (rev 819) @@ -26,6 +26,6 @@ for my $stub (@stubs) { system ('copy', "bin\\$stub", "$stub.pl"); - system ('p2e', "--output-file=$stub.exe", "$stub.pl"); + system ('p2e', '--add-module=Win32', '--add-module=File::Spec::Win32', "--output-file=$stub.exe", "$stub.pl"); unlink ("$stub.pl"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |