diff options
Diffstat (limited to 'meowpp/gra/BundleAdjustment.h')
-rw-r--r-- | meowpp/gra/BundleAdjustment.h | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/meowpp/gra/BundleAdjustment.h b/meowpp/gra/BundleAdjustment.h deleted file mode 100644 index 60040da..0000000 --- a/meowpp/gra/BundleAdjustment.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef BundleAdjustment_H__ -#define BundleAdjustment_H__ - -#include "Eye.h" - -#include "../oo/ObjBase.h" - -namespace meow { - -/*! - * @brief 列舉每個 \c Eye 可以有哪些種類的移動 - */ -enum EyesReferenceInfoFlags { - CAN_OFFSET = 0x01, //!< 平移 - CAN_ROTATE = 0x02, //!< 旋轉 - CAN_ZOOM = 0x04 //!< 改變焦距 -}; - -/*! - * @brief 記住每個 \c Eye 的reference以及Flag - */ -template<class Pixel> -struct EyesReferenceInfo { - unsigned long flag; //!< Flag, 定義如EyesReferenceInfoFlags - Eye<Pixel> eye; //!< reference - - /*! - * @brief constructor with nothing - */ - EyesReferenceInfo(): flag(0), eye() { - } - - /*! - * @brief constructor with flag and an Eye object. Here we will let - * memember '.eye' reference from the specify paramter \c e - */ - EyesReferenceInfo(Eye<Pixel>& e, unsigned long f): flag(f), eye() { - eye.referenceFrom(e); - } - - /*! - * @brief constructor with another EyesReferenceInfo - */ - EyesReferenceInfo(EyesReferenceInfo const& si): flag(si.flag), eye() { - eye.referenceFrom(si.eye); - } - - /*! - * @brief desructor - */ - ~EyesReferenceInfo() { - } - - /*! - * @brief copy operator, still use reference method - */ - EyesReferenceInfo& operator=(EyesReferenceInfo const& e) { - flag = e.flag; - eye.referenceFrom(e.eye); - return *this; - } -}; - -/*! - * @brief 這邊定義Bundle-Adjustment就是利用一系列場景來反推算出\b 相機資訊 - * (包含拍攝座標, 角度與焦距) 或是在已知相機資訊的情況下推算出底片中 - * 物體如何移動. - */ -template<class Pixel> -class BundleAdjustment: public ObjBase { -protected: - BundleAdjustment() { - } -public: - virtual ~BundleAdjustment() { - } - - /*! - * @brief 推算相機資訊 - * - * @param [in] seq 給定一系列場景 - * @return 成功與否 - */ - virtual - bool adjustEyes(std::vector<EyesReferenceInfo<Pixel> > seq) const { - return false; - } - - /*! - * @brief 推算場景中的物體資訊 - * - * 會將fixedPoints2D推算倒fixedPoints3D - * - * @param [in] seq 一系列場景(這裡的場景是有時間先後順序的) - * @brief 成功與否 - */ - virtual - bool adjustFixedPoints(std::vector<EyesReferenceInfo<Pixel> > seq) const { - return false; - } -}; - -} // meow - -#endif // BundleAdjustment_H__ |