fixed stitching module link error on Windows

pull/13383/head
Alexey Spizhevoy 14 years ago
parent f2da701723
commit b0fe660d5b
  1. 9
      modules/stitching/include/opencv2/stitching/autocalib.hpp
  2. 16
      modules/stitching/include/opencv2/stitching/blenders.hpp
  3. 2
      modules/stitching/include/opencv2/stitching/camera.hpp
  4. 8
      modules/stitching/include/opencv2/stitching/exposure_compensate.hpp
  5. 12
      modules/stitching/include/opencv2/stitching/matchers.hpp
  6. 20
      modules/stitching/include/opencv2/stitching/motion_estimators.hpp
  7. 10
      modules/stitching/include/opencv2/stitching/seam_finders.hpp
  8. 16
      modules/stitching/include/opencv2/stitching/util.hpp
  9. 24
      modules/stitching/include/opencv2/stitching/warpers.hpp

@ -50,12 +50,13 @@ namespace cv
// See "Construction of Panoramic Image Mosaics with Global and Local Alignment" // See "Construction of Panoramic Image Mosaics with Global and Local Alignment"
// by Heung-Yeung Shum and Richard Szeliski. // by Heung-Yeung Shum and Richard Szeliski.
void focalsFromHomography(const Mat &H, double &f0, double &f1, bool &f0_ok, bool &f1_ok); void CV_EXPORTS focalsFromHomography(const Mat &H, double &f0, double &f1, bool &f0_ok, bool &f1_ok);
void estimateFocal(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches, void CV_EXPORTS estimateFocal(const std::vector<ImageFeatures> &features,
std::vector<double> &focals); const std::vector<MatchesInfo> &pairwise_matches,
std::vector<double> &focals);
bool calibrateRotatingCamera(const std::vector<Mat> &Hs, Mat &K); bool CV_EXPORTS calibrateRotatingCamera(const std::vector<Mat> &Hs, Mat &K);
} // namespace cv } // namespace cv

@ -48,7 +48,7 @@ namespace cv
{ {
// Simple blender which puts one image over another // Simple blender which puts one image over another
class Blender class CV_EXPORTS Blender
{ {
public: public:
enum { NO, FEATHER, MULTI_BAND }; enum { NO, FEATHER, MULTI_BAND };
@ -65,7 +65,7 @@ protected:
}; };
class FeatherBlender : public Blender class CV_EXPORTS FeatherBlender : public Blender
{ {
public: public:
FeatherBlender(float sharpness = 0.02f) { setSharpness(sharpness); } FeatherBlender(float sharpness = 0.02f) { setSharpness(sharpness); }
@ -83,7 +83,7 @@ private:
}; };
class MultiBandBlender : public Blender class CV_EXPORTS MultiBandBlender : public Blender
{ {
public: public:
MultiBandBlender(int try_gpu = false, int num_bands = 5); MultiBandBlender(int try_gpu = false, int num_bands = 5);
@ -106,16 +106,16 @@ private:
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// Auxiliary functions // Auxiliary functions
void normalizeUsingWeightMap(const Mat& weight, Mat& src); void CV_EXPORTS normalizeUsingWeightMap(const Mat& weight, Mat& src);
void createWeightMap(const Mat& mask, float sharpness, Mat& weight); void CV_EXPORTS createWeightMap(const Mat& mask, float sharpness, Mat& weight);
void createLaplacePyr(const Mat &img, int num_levels, std::vector<Mat>& pyr); void CV_EXPORTS createLaplacePyr(const Mat &img, int num_levels, std::vector<Mat>& pyr);
void createLaplacePyrGpu(const Mat &img, int num_levels, std::vector<Mat>& pyr); void CV_EXPORTS createLaplacePyrGpu(const Mat &img, int num_levels, std::vector<Mat>& pyr);
// Restores source image // Restores source image
void restoreImageFromLaplacePyr(std::vector<Mat>& pyr); void CV_EXPORTS restoreImageFromLaplacePyr(std::vector<Mat>& pyr);
} // namespace cv } // namespace cv

@ -47,7 +47,7 @@
namespace cv namespace cv
{ {
struct CameraParams struct CV_EXPORTS CameraParams
{ {
CameraParams(); CameraParams();
CameraParams(const CameraParams& other); CameraParams(const CameraParams& other);

@ -47,7 +47,7 @@
namespace cv namespace cv
{ {
class ExposureCompensator class CV_EXPORTS ExposureCompensator
{ {
public: public:
enum { NO, GAIN, GAIN_BLOCKS }; enum { NO, GAIN, GAIN_BLOCKS };
@ -61,7 +61,7 @@ public:
}; };
class NoExposureCompensator : public ExposureCompensator class CV_EXPORTS NoExposureCompensator : public ExposureCompensator
{ {
public: public:
void feed(const std::vector<Point> &/*corners*/, const std::vector<Mat> &/*images*/, void feed(const std::vector<Point> &/*corners*/, const std::vector<Mat> &/*images*/,
@ -70,7 +70,7 @@ public:
}; };
class GainCompensator : public ExposureCompensator class CV_EXPORTS GainCompensator : public ExposureCompensator
{ {
public: public:
void feed(const std::vector<Point> &corners, const std::vector<Mat> &images, void feed(const std::vector<Point> &corners, const std::vector<Mat> &images,
@ -83,7 +83,7 @@ private:
}; };
class BlocksGainCompensator : public ExposureCompensator class CV_EXPORTS BlocksGainCompensator : public ExposureCompensator
{ {
public: public:
BlocksGainCompensator(int bl_width = 32, int bl_height = 32) BlocksGainCompensator(int bl_width = 32, int bl_height = 32)

@ -48,7 +48,7 @@
namespace cv namespace cv
{ {
struct ImageFeatures struct CV_EXPORTS ImageFeatures
{ {
int img_idx; int img_idx;
cv::Size img_size; cv::Size img_size;
@ -57,7 +57,7 @@ struct ImageFeatures
}; };
class FeaturesFinder class CV_EXPORTS FeaturesFinder
{ {
public: public:
virtual ~FeaturesFinder() {} virtual ~FeaturesFinder() {}
@ -70,7 +70,7 @@ protected:
}; };
class SurfFeaturesFinder : public FeaturesFinder class CV_EXPORTS SurfFeaturesFinder : public FeaturesFinder
{ {
public: public:
SurfFeaturesFinder(bool try_use_gpu = true, double hess_thresh = 300.0, SurfFeaturesFinder(bool try_use_gpu = true, double hess_thresh = 300.0,
@ -86,7 +86,7 @@ protected:
}; };
struct MatchesInfo struct CV_EXPORTS MatchesInfo
{ {
MatchesInfo(); MatchesInfo();
MatchesInfo(const MatchesInfo &other); MatchesInfo(const MatchesInfo &other);
@ -101,7 +101,7 @@ struct MatchesInfo
}; };
class FeaturesMatcher class CV_EXPORTS FeaturesMatcher
{ {
public: public:
virtual ~FeaturesMatcher() {} virtual ~FeaturesMatcher() {}
@ -124,7 +124,7 @@ protected:
}; };
class BestOf2NearestMatcher : public FeaturesMatcher class CV_EXPORTS BestOf2NearestMatcher : public FeaturesMatcher
{ {
public: public:
BestOf2NearestMatcher(bool try_use_gpu = true, float match_conf = 0.55f, int num_matches_thresh1 = 6, BestOf2NearestMatcher(bool try_use_gpu = true, float match_conf = 0.55f, int num_matches_thresh1 = 6,

@ -50,7 +50,7 @@
namespace cv namespace cv
{ {
class Estimator class CV_EXPORTS Estimator
{ {
public: public:
void operator ()(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches, void operator ()(const std::vector<ImageFeatures> &features, const std::vector<MatchesInfo> &pairwise_matches,
@ -65,7 +65,7 @@ protected:
}; };
class HomographyBasedEstimator : public Estimator class CV_EXPORTS HomographyBasedEstimator : public Estimator
{ {
public: public:
HomographyBasedEstimator() : is_focals_estimated_(false) {} HomographyBasedEstimator() : is_focals_estimated_(false) {}
@ -79,7 +79,7 @@ private:
}; };
class BundleAdjuster : public Estimator class CV_EXPORTS BundleAdjuster : public Estimator
{ {
public: public:
enum { NO, RAY_SPACE, FOCAL_RAY_SPACE }; enum { NO, RAY_SPACE, FOCAL_RAY_SPACE };
@ -108,21 +108,21 @@ private:
}; };
void waveCorrect(std::vector<Mat> &rmats); void CV_EXPORTS waveCorrect(std::vector<Mat> &rmats);
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// Auxiliary functions // Auxiliary functions
// Returns matches graph representation in DOT language // Returns matches graph representation in DOT language
std::string matchesGraphAsString(std::vector<std::string> &pathes, std::vector<MatchesInfo> &pairwise_matches, std::string CV_EXPORTS matchesGraphAsString(std::vector<std::string> &pathes, std::vector<MatchesInfo> &pairwise_matches,
float conf_threshold); float conf_threshold);
std::vector<int> leaveBiggestComponent(std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches, std::vector<int> CV_EXPORTS leaveBiggestComponent(std::vector<ImageFeatures> &features, std::vector<MatchesInfo> &pairwise_matches,
float conf_threshold); float conf_threshold);
void findMaxSpanningTree(int num_images, const std::vector<MatchesInfo> &pairwise_matches, void CV_EXPORTS findMaxSpanningTree(int num_images, const std::vector<MatchesInfo> &pairwise_matches,
Graph &span_tree, std::vector<int> &centers); Graph &span_tree, std::vector<int> &centers);
} // namespace cv } // namespace cv

@ -47,7 +47,7 @@
namespace cv namespace cv
{ {
class SeamFinder class CV_EXPORTS SeamFinder
{ {
public: public:
enum { NO, VORONOI, GC_COLOR, GC_COLOR_GRAD }; enum { NO, VORONOI, GC_COLOR, GC_COLOR_GRAD };
@ -59,14 +59,14 @@ public:
}; };
class NoSeamFinder : public SeamFinder class CV_EXPORTS NoSeamFinder : public SeamFinder
{ {
public: public:
void find(const std::vector<Mat>&, const std::vector<Point>&, std::vector<Mat>&) {} void find(const std::vector<Mat>&, const std::vector<Point>&, std::vector<Mat>&) {}
}; };
class PairwiseSeamFinder : public SeamFinder class CV_EXPORTS PairwiseSeamFinder : public SeamFinder
{ {
public: public:
virtual void find(const std::vector<Mat> &src, const std::vector<Point> &corners, virtual void find(const std::vector<Mat> &src, const std::vector<Point> &corners,
@ -81,14 +81,14 @@ protected:
}; };
class VoronoiSeamFinder : public PairwiseSeamFinder class CV_EXPORTS VoronoiSeamFinder : public PairwiseSeamFinder
{ {
private: private:
void findInPair(size_t first, size_t second, Rect roi); void findInPair(size_t first, size_t second, Rect roi);
}; };
class GraphCutSeamFinder : public SeamFinder class CV_EXPORTS GraphCutSeamFinder : public SeamFinder
{ {
public: public:
enum { COST_COLOR, COST_COLOR_GRAD }; enum { COST_COLOR, COST_COLOR_GRAD };

@ -59,7 +59,7 @@
namespace cv namespace cv
{ {
class DisjointSets class CV_EXPORTS DisjointSets
{ {
public: public:
DisjointSets(int elem_count = 0) { createOneElemSets(elem_count); } DisjointSets(int elem_count = 0) { createOneElemSets(elem_count); }
@ -76,7 +76,7 @@ private:
}; };
struct GraphEdge struct CV_EXPORTS GraphEdge
{ {
GraphEdge(int from, int to, float weight) GraphEdge(int from, int to, float weight)
: from(from), to(to), weight(weight) {} : from(from), to(to), weight(weight) {}
@ -88,7 +88,7 @@ struct GraphEdge
}; };
class Graph class CV_EXPORTS Graph
{ {
public: public:
Graph(int num_vertices = 0) { create(num_vertices); } Graph(int num_vertices = 0) { create(num_vertices); }
@ -106,13 +106,13 @@ private:
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// Auxiliary functions // Auxiliary functions
bool overlapRoi(Point tl1, Point tl2, Size sz1, Size sz2, Rect &roi); bool CV_EXPORTS overlapRoi(Point tl1, Point tl2, Size sz1, Size sz2, Rect &roi);
Rect resultRoi(const std::vector<Point> &corners, const std::vector<Mat> &images); Rect CV_EXPORTS resultRoi(const std::vector<Point> &corners, const std::vector<Mat> &images);
Rect resultRoi(const std::vector<Point> &corners, const std::vector<Size> &sizes); Rect CV_EXPORTS resultRoi(const std::vector<Point> &corners, const std::vector<Size> &sizes);
Point resultTl(const std::vector<Point> &corners); Point CV_EXPORTS resultTl(const std::vector<Point> &corners);
// Returns random 'count' element subset of the {0,1,...,size-1} set // Returns random 'count' element subset of the {0,1,...,size-1} set
void selectRandomSubset(int count, int size, std::vector<int> &subset); void CV_EXPORTS selectRandomSubset(int count, int size, std::vector<int> &subset);
} // namespace cv } // namespace cv

@ -49,7 +49,7 @@
namespace cv namespace cv
{ {
class Warper class CV_EXPORTS Warper
{ {
public: public:
enum { PLANE, CYLINDRICAL, SPHERICAL }; enum { PLANE, CYLINDRICAL, SPHERICAL };
@ -62,7 +62,7 @@ public:
}; };
struct ProjectorBase struct CV_EXPORTS ProjectorBase
{ {
void setTransformation(const Mat& R); void setTransformation(const Mat& R);
@ -75,7 +75,7 @@ struct ProjectorBase
template <class P> template <class P>
class WarperBase : public Warper class CV_EXPORTS WarperBase : public Warper
{ {
public: public:
virtual Point warp(const Mat &src, float focal, const Mat &R, Mat &dst, virtual Point warp(const Mat &src, float focal, const Mat &R, Mat &dst,
@ -96,7 +96,7 @@ protected:
}; };
struct PlaneProjector : ProjectorBase struct CV_EXPORTS PlaneProjector : ProjectorBase
{ {
void mapForward(float x, float y, float &u, float &v); void mapForward(float x, float y, float &u, float &v);
void mapBackward(float u, float v, float &x, float &y); void mapBackward(float u, float v, float &x, float &y);
@ -105,7 +105,7 @@ struct PlaneProjector : ProjectorBase
// Projects image onto z = plane_dist plane // Projects image onto z = plane_dist plane
class PlaneWarper : public WarperBase<PlaneProjector> class CV_EXPORTS PlaneWarper : public WarperBase<PlaneProjector>
{ {
public: public:
PlaneWarper(float plane_dist = 1.f, float scale = 1.f) PlaneWarper(float plane_dist = 1.f, float scale = 1.f)
@ -119,7 +119,7 @@ protected:
}; };
class PlaneWarperGpu : public PlaneWarper class CV_EXPORTS PlaneWarperGpu : public PlaneWarper
{ {
public: public:
PlaneWarperGpu(float plane_dist = 1.f, float scale = 1.f) : PlaneWarper(plane_dist, scale) {} PlaneWarperGpu(float plane_dist = 1.f, float scale = 1.f) : PlaneWarper(plane_dist, scale) {}
@ -131,7 +131,7 @@ private:
}; };
struct SphericalProjector : ProjectorBase struct CV_EXPORTS SphericalProjector : ProjectorBase
{ {
void mapForward(float x, float y, float &u, float &v); void mapForward(float x, float y, float &u, float &v);
void mapBackward(float u, float v, float &x, float &y); void mapBackward(float u, float v, float &x, float &y);
@ -140,7 +140,7 @@ struct SphericalProjector : ProjectorBase
// Projects image onto unit sphere with origin at (0, 0, 0). // Projects image onto unit sphere with origin at (0, 0, 0).
// Poles are located at (0, -1, 0) and (0, 1, 0) points. // Poles are located at (0, -1, 0) and (0, 1, 0) points.
class SphericalWarper : public WarperBase<SphericalProjector> class CV_EXPORTS SphericalWarper : public WarperBase<SphericalProjector>
{ {
public: public:
SphericalWarper(float scale = 300.f) { projector_.scale = scale; } SphericalWarper(float scale = 300.f) { projector_.scale = scale; }
@ -150,7 +150,7 @@ protected:
}; };
class SphericalWarperGpu : public SphericalWarper class CV_EXPORTS SphericalWarperGpu : public SphericalWarper
{ {
public: public:
SphericalWarperGpu(float scale = 300.f) : SphericalWarper(scale) {} SphericalWarperGpu(float scale = 300.f) : SphericalWarper(scale) {}
@ -162,7 +162,7 @@ private:
}; };
struct CylindricalProjector : ProjectorBase struct CV_EXPORTS CylindricalProjector : ProjectorBase
{ {
void mapForward(float x, float y, float &u, float &v); void mapForward(float x, float y, float &u, float &v);
void mapBackward(float u, float v, float &x, float &y); void mapBackward(float u, float v, float &x, float &y);
@ -170,7 +170,7 @@ struct CylindricalProjector : ProjectorBase
// Projects image onto x * x + z * z = 1 cylinder // Projects image onto x * x + z * z = 1 cylinder
class CylindricalWarper : public WarperBase<CylindricalProjector> class CV_EXPORTS CylindricalWarper : public WarperBase<CylindricalProjector>
{ {
public: public:
CylindricalWarper(float scale = 300.f) { projector_.scale = scale; } CylindricalWarper(float scale = 300.f) { projector_.scale = scale; }
@ -183,7 +183,7 @@ protected:
}; };
class CylindricalWarperGpu : public CylindricalWarper class CV_EXPORTS CylindricalWarperGpu : public CylindricalWarper
{ {
public: public:
CylindricalWarperGpu(float scale = 300.f) : CylindricalWarper(scale) {} CylindricalWarperGpu(float scale = 300.f) : CylindricalWarper(scale) {}

Loading…
Cancel
Save