24#ifndef _PANODATA_PANORAMAMEMENTO_H
25#define _PANODATA_PANORAMAMEMENTO_H
27#include <hugin_config.h>
33#include <vigra/diff2d.hxx>
44 #include <pano13/panorama.h>
89 FULL_FRAME_FISHEYE = 3,
92 TRANSVERSE_MERCATOR = 6,
95 LAMBERT_AZIMUTHAL = 9,
96 ALBERS_EQUAL_AREA_CONIC = 10,
97 MILLER_CYLINDRICAL = 11,
106 THOBY_PROJECTION = 20,
188 m_projectionFormat = EQUIRECTANGULAR;
190 m_size = vigra::Size2D(3000, 1500);
191 m_roi = vigra::Rect2D(m_size);
193 tiffCompression =
"LZW";
195 colorReferenceImage = 0;
196 optimizeReferenceImage = 0;
199 outputFormat = TIFF_m;
200 blendMode = ENBLEND_BLEND;
201 hdrMergeMode = HDRMERGE_AVERAGE;
203 remapUsingGPU =
false;
204 saveCoordImgs =
false;
206 photometricHuberSigma = 2/255.0;
207 outputMode = OUTPUT_LDR;
209 outputLDRBlended =
true;
210 outputLDRLayers =
false;
211 outputLDRExposureRemapped =
false;
212 outputLDRExposureLayers =
false;
213 outputLDRExposureLayersFused =
false;
214 outputLDRStacks =
false;
215 outputLDRExposureBlended =
false;
216 outputHDRBlended =
false;
217 outputHDRLayers =
false;
218 outputHDRStacks =
false;
220 outputLayersCompression =
"LZW";
221 outputImageType =
"tif";
222 outputImageTypeCompression =
"LZW";
223 outputImageTypeHDR=
"exr";
224 outputImageTypeHDRCompression =
"LZW";
228 hdrmergeOptions =
"";
229 verdandiOptions =
"";
231 outputEMoRParams.resize(5,0.0f);
232 outputExposureValue = 0.0;
233 outputRangeCompression = 0.0;
234 outputPixelType =
"";
237 resetProjectionParameters();
239 outputStacksMinOverlap = 0.7;
240 outputLayersExposureDiff = 0.5;
242 edgeFillMode = NO_EDGE_FILL;
243 keepEdgeFillInput =
false;
248 void printScriptLine(std::ostream & o,
bool forPTOptimizer=
false)
const;
251 static const std::string & getFormatName(FileFormat f);
257 static FileFormat getFormatFromName(
const std::string & name);
260 const std::string & getOutputExtension()
const;
266 void setWidth(
unsigned int w,
bool keepView =
true);
272 void setHeight(
unsigned int h);
292 { m_roi = val & vigra::Rect2D(m_size); }
297 void setProjection(ProjectionFormat f);
300 void resetProjectionParameters();
304 {
return m_projectionFormat; };
308 {
return m_projectionParams; }
311 void setProjectionParameters(
const std::vector<double> &
params);
314 bool fovCalcSupported(ProjectionFormat f)
const;
320 void setHFOV(
double h,
bool keepView=
true);
327 void setVFOV(
double v);
330 double getVFOV()
const;
334 {
return m_projFeatures.maxHFOV; }
338 {
return m_projFeatures.maxVFOV; }
415 static const std::string fileformatNames[];
416 static const std::string fileformatExt[];
The pano tools interpolators ported to vigra.
virtual ~PanoramaOptions()
bool outputHDRLayers
save remapped layers (HDR)
bool outputLDRExposureLayers
save blended exposure layers, do not perform fusion (no exposure adjustment)
EdgeFillMode
edge fill modes
PTStitcherAcceleration
PTStitcher acceleration.
BlendingMechanism blendMode
std::vector< double > m_projectionParams
double getMaxHFOV() const
get maximum possible hfov with current projection
bool outputLDRExposureBlended
< save exposure fused stacks (no exposure adjustment)
vigra_ext::Interpolator interpolator
unsigned int optimizeReferenceImage
const std::vector< double > & getProjectionParameters() const
Get the optional projection parameters.
double photometricHuberSigma
std::string hdrmergeOptions
std::string verdandiOptions
bool outputLDRExposureRemapped
save remapped layers (no exposure adjustment)
const vigra::Rect2D & getROI() const
std::vector< float > outputEMoRParams
double getMaxVFOV() const
get maximum possible vfov with current projection
double outputStacksMinOverlap
void setROI(const vigra::Rect2D &val)
EdgeFillMode edgeFillMode
ProjectionFormat m_projectionFormat
double outputLayersExposureDiff
bool outputLDRBlended
save blended panorama (LDR)
bool outputLDRLayers
save remapped layers (LDR)
unsigned int getWidth() const
PanoramaOptions::ProjectionFormat getProjection() const
double outputExposureValue
bool outputHDRStacks
save image stacks (HDR)
std::string enblendOptions
BlendingMechanism
blenders
std::string tiffCompression
std::string outputPixelType
ProjectionFormat
Projection of final panorama.
bool outputLDRExposureLayersFused
save blended exposure layers which are then fused (no exposure adjustment)
std::string outputImageType
double outputRangeCompression
std::string outputLayersCompression
HDRMergeType hdrMergeMode
std::string outputImageTypeHDRCompression
std::string enfuseOptions
pano_projection_features m_projFeatures
std::string outputImageTypeHDR
std::string outputImageTypeCompression
unsigned int getHeight() const
get panorama height
unsigned int colorReferenceImage
vigra::Size2D getSize() const
get size of output image
bool outputHDRBlended
save blended panorama (HDR)
mainly consists of wrapper around the pano tools library, to assist in ressource management and to pr...
Interpolator
enum with all interpolation methods
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.