This program will enlarge a cube by a given scalar of the original or to
specific dimensions. The user can specify to perform the enlargement by
cubic convolution, nearest neighbor, or bi-linear interpolation.
Fixed documentation error. The application name was rotate
instead of enlarge.
Kim Sides
2003-05-13
Added application test
Stuart Sides
2003-05-16
Modified schema location from astogeology... to isis.astrogeology..."
Stuart Sides
2003-05-30
Fixed compiler error with uninitialized variable after adding -O1 flag
Stuart Sides
2003-07-29
Modified filename parameters to be cube parameters where necessary
Drew Davidson
2005-08-17
Added example
Brendan George
2005-10-31
Fixed application test
Sean Crosby
2007-02-28
Program now updates output file's mapping keywords
Steven Lambright
2007-06-22
Fixed typo in the user documentation
Steven Lambright
2008-05-13
Removed references to CubeInfo
Steven Koechle
2008-05-28
Fixed problems with the way the Alpha Cube was handled
Christopher Austin
2008-12-11
Changed the parameter names smag/lmag to sscale/lscale for consistancy
with reduce.
Steven Lambright
2008-12-22
The "Scale" keyword in the Projection group in the labels is now being
updated if this program is run on a projected cube.
Janet Barrett
2009-10-22
Now uses the SubArea class to produce output cube labels
with corrected Mapping, Instrument, and AlphaCube groups.
Travis Addair
2009-12-10
Added functionality for enlarging to a total number of pixels.
Travis Addair
2009-12-11
Updated example.
Sharmila Prasad
2011-04-14
Ported the enlarge functionality to base/objs/Enlarge class
Sharmila Prasad
2011-09-15
Fixed issue 0000280 - enlarge fails when run with a batchlist
Kaitlyn Lee
2020-04-09
The SetOutputCube method from Process we were originally using called
Application::GetUserInterface(), but this became a problem when trying to
call enlarge(), or run the application, programmatically since we are no
longer using Application in the application's cpp file. Changed the call
to the one that takes in a CubeAttribute object. Also, removed the check
to see if an invalid interpolation method was passed in since the UserInterface
class checks and throws the exception and it was unreachable code.
Select between enlarging the image to a multiple of the original (by a
scaling factor) or to specific dimensions (in terms of total
number of pixels).
Type
string
Default
SCALE
Option List:
Option
Brief
Description
SCALE
Enlarge by a scaling factor
Enlarges the input image by a scaling factor. The scaling factor
along the sample range and line range must then be
specified in the SSCALE and LSCALE parameters, respectively.
Exclusions
ONS
ONL
Inclusions
SSCALE
LSCALE
TOTAL
Enlarge to a total number of pixels
Enlarges the input image to a total number of pixels. The number
of pixels in the output image along the sample range and line
range must then be specified in the ONS and ONL parameters,
respectively.
Enlarge the number of samples by a scaling factor of 2, while leaving
the number of lines the same.
Description
Here, the 1024 x 1024 image "peaks.cub" has had the application "reduce"
applied to it in order to produce a 512 x 1024 image called
"reducedPeaks.cub". In this example, the reduced image,
reducedPeaks.cub, will be enlarged by a factor of 2 along the sample
dimension in an attempt to restore it back to its original form.
In order to double the number of sample pixels, the sample scale is
set to 2.0, and the line scale remains at its default of 1.0. Since
no mode or interpolation has been specified, the application will
default to scale and cube convolution interpolation, respectively.
GUI Screenshot
enlarge gui
Example GUI
Screenshot of the GUI with parameters set to perform an enlargement
of the samples by scaling.
Input Images
peaks.cub
Input image for reduce
This is the original image, before being reduced, that the enlarge
application will attempt to replicate. It is important to realize
that this image has been scaled down to fit in a web browser. At
full size, the image would be 1024 x 1024 pixels.
reducedPeaks.cub
Input image for enlarge, output from reduce
Parameter Name:
FROM
This is the reduced image, containing half its original number of
samples, that enlarge will attempt to restore. Though it
has also been scaled down to fit in a web browser, at full size it
would be 512 x 1024 pixels. For more information, see the
documentation for the "reduce" application.
Output Image
restoredPeaks.cub
Output image from enlarge
Parameter Name:
TO
The enlarged image. Despite the fact that half the samples were
lost as a result of the reduction, the two images (peaks.cub and
restoredPeaks.cub) look nearly identical due to the cubic
convolution interpolation that was applied. Again scaled down for
web browsers, at full size, the image would be 1024 x 1024 pixels.
Example 2
Enlarge the number of samples to 768, and keep the number of lines at
1024
Description
Here the mode has been set to enlarge to a total number of pixels along
the sample and line dimensions, with all other parameters kept at their
default settings.
In order to enlarge to specific dimensions, the mode is set here to
"total". Also, because total lines and samples do not have default
values, the output number of lines must still be specified, even
though they will be unchanged.
GUI Screenshot
enlarge gui
Example GUI
Screenshot of the GUI with parameters set to perform a sample
enlargement to a total number of pixels.
Input Image
reducedPeaks.cub
Input image for enlarge
Parameter Name:
FROM
This is the same input image, reducedPeaks.cub, that was enlarged in
the last example.
Output Image
enlargeTotalPeaks.cub
Output image from enlarge
Parameter Name:
TO
The enlarged image. Though it has been scaled down so that it can
be viewed in a web browser, the essential change can still be
observed. The horizontal enlargement is noticable, and the output
cube has 3/2 the number of samples as the input cube.