123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- #ifndef __OPENCV_STITCHING_WARPER_CREATORS_HPP__
- #define __OPENCV_STITCHING_WARPER_CREATORS_HPP__
- #include "opencv2/stitching/detail/warpers.hpp"
- namespace cv {
- class WarperCreator
- {
- public:
- virtual ~WarperCreator() {}
- virtual Ptr<detail::RotationWarper> create(float scale) const = 0;
- };
- class PlaneWarper : public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::PlaneWarper>(scale); }
- };
- class CylindricalWarper: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::CylindricalWarper>(scale); }
- };
- class SphericalWarper: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::SphericalWarper>(scale); }
- };
- class FisheyeWarper : public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::FisheyeWarper>(scale); }
- };
- class StereographicWarper: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::StereographicWarper>(scale); }
- };
- class CompressedRectilinearWarper: public WarperCreator
- {
- float a, b;
- public:
- CompressedRectilinearWarper(float A = 1, float B = 1)
- {
- a = A; b = B;
- }
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::CompressedRectilinearWarper>(scale, a, b); }
- };
- class CompressedRectilinearPortraitWarper: public WarperCreator
- {
- float a, b;
- public:
- CompressedRectilinearPortraitWarper(float A = 1, float B = 1)
- {
- a = A; b = B;
- }
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::CompressedRectilinearPortraitWarper>(scale, a, b); }
- };
- class PaniniWarper: public WarperCreator
- {
- float a, b;
- public:
- PaniniWarper(float A = 1, float B = 1)
- {
- a = A; b = B;
- }
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::PaniniWarper>(scale, a, b); }
- };
- class PaniniPortraitWarper: public WarperCreator
- {
- float a, b;
- public:
- PaniniPortraitWarper(float A = 1, float B = 1)
- {
- a = A; b = B;
- }
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::PaniniPortraitWarper>(scale, a, b); }
- };
- class MercatorWarper: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::MercatorWarper>(scale); }
- };
- class TransverseMercatorWarper: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::TransverseMercatorWarper>(scale); }
- };
- #ifdef HAVE_OPENCV_CUDAWARPING
- class PlaneWarperGpu: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::PlaneWarperGpu>(scale); }
- };
- class CylindricalWarperGpu: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::CylindricalWarperGpu>(scale); }
- };
- class SphericalWarperGpu: public WarperCreator
- {
- public:
- Ptr<detail::RotationWarper> create(float scale) const { return makePtr<detail::SphericalWarperGpu>(scale); }
- };
- #endif
- }
- #endif
|