From: Pablo d'A. <da...@us...> - 2007-01-25 22:47:48
|
Update of /cvsroot/hugin/hugin/src/include/PT In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2681/src/include/PT Modified Files: PanoToolsInterface.h PanoramaMemento.h Log Message: Full support for new projections, with choosing parameters for them Index: PanoToolsInterface.h =================================================================== RCS file: /cvsroot/hugin/hugin/src/include/PT/PanoToolsInterface.h,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- PanoToolsInterface.h 20 Dec 2006 19:41:30 -0000 1.27 +++ PanoToolsInterface.h 25 Jan 2007 22:47:44 -0000 1.28 @@ -129,6 +129,7 @@ PT::Lens::LensProjectionFormat srcProj, const vigra::Diff2D &destSize, PT::PanoramaOptions::ProjectionFormat destProj, + const std::vector<double> & destProjParam, double destHFOV, const vigra::Diff2D & origSrcSize); @@ -162,6 +163,7 @@ PT::Lens::LensProjectionFormat srcProj, const vigra::Diff2D & destSize, PT::PanoramaOptions::ProjectionFormat destProj, + const std::vector<double> & destProjParam, double destHFOV, const vigra::Diff2D & origSrcSize); @@ -221,6 +223,7 @@ PT::Lens::LensProjectionFormat & srcProj, const vigra::Diff2D & destSize, PT::PanoramaOptions::ProjectionFormat & destProj, + const std::vector<double> & destProjParam, double destHFOV); bool m_initialized; @@ -244,6 +247,7 @@ */ void setDestImage(Image & image, vigra::Diff2D size, unsigned char * imageData, const PT::PanoramaOptions::ProjectionFormat & format, + const std::vector<double> & projParams, double destHFOV); /** fills @p image with a complete input image, including distortion Index: PanoramaMemento.h =================================================================== RCS file: /cvsroot/hugin/hugin/src/include/PT/PanoramaMemento.h,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- PanoramaMemento.h 31 Dec 2006 14:39:09 -0000 1.63 +++ PanoramaMemento.h 25 Jan 2007 22:47:44 -0000 1.64 @@ -32,6 +32,12 @@ #include <set> #include <math.h> +#ifdef HasPANO13 +extern "C" { +#include "pano13/panorama.h" +} +#endif + #include "PT/PanoImage.h" #include "vigra_ext/Interpolators.h" @@ -311,7 +317,9 @@ TRANSVERSE_MERCATOR = 6, SINUSOIDAL = 7, LAMBERT = 8, - LAMBERT_AZIMUTHAL = 9 + LAMBERT_AZIMUTHAL = 9, + ALBERS_EQUAL_AREA_CONIC = 10, + MILLER_CYLINDRICAL = 11 }; /** PTStitcher acceleration */ @@ -372,6 +380,7 @@ void reset() { m_projectionFormat = EQUIRECTANGULAR; + panoProjectionFeaturesQuery(m_projectionFormat, &m_projFeatures); m_hfov = 360; m_size = vigra::Size2D(3000, 1500); m_roi = vigra::Rect2D(m_size); @@ -449,6 +458,12 @@ return m_projectionFormat; }; + /** Get the optional projection parameters */ + const std::vector<double> & getProjectionParameters() const; + + /** set the optional parameters (they need to be of the correct size) */ + void setProjectionParameters(const std::vector<double> & params); + /** true, if FOV calcuations are supported for projection \p f */ bool fovCalcSupported(ProjectionFormat f) const; @@ -504,6 +519,9 @@ double huberSigma; + pano_projection_features m_projFeatures; + + private: static const std::string fileformatNames[]; static const std::string fileformatExt[]; @@ -511,6 +529,8 @@ // unsigned int m_width; // unsigned int m_height; ProjectionFormat m_projectionFormat; + + std::vector<double> m_projectionParams; vigra::Size2D m_size; vigra::Rect2D m_roi; }; |