2016-08-07 00:46:17 +08:00
|
|
|
#ifdef HAVE_OPENCV_STITCHING
|
2018-11-11 00:53:48 +08:00
|
|
|
|
2016-08-07 00:46:17 +08:00
|
|
|
typedef Stitcher::Status Status;
|
2018-11-11 00:53:48 +08:00
|
|
|
typedef Stitcher::Mode Mode;
|
2016-08-07 00:46:17 +08:00
|
|
|
|
2018-12-20 04:37:55 +08:00
|
|
|
typedef std::vector<detail::ImageFeatures> vector_ImageFeatures;
|
|
|
|
typedef std::vector<detail::MatchesInfo> vector_MatchesInfo;
|
|
|
|
typedef std::vector<detail::CameraParams> vector_CameraParams;
|
|
|
|
|
|
|
|
template<> struct pyopencvVecConverter<detail::ImageFeatures>
|
|
|
|
{
|
2019-11-20 03:13:38 +08:00
|
|
|
static bool to(PyObject* obj, std::vector<detail::ImageFeatures>& value, const ArgInfo& info)
|
2018-12-20 04:37:55 +08:00
|
|
|
{
|
|
|
|
return pyopencv_to_generic_vec(obj, value, info);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject* from(const std::vector<detail::ImageFeatures>& value)
|
|
|
|
{
|
|
|
|
return pyopencv_from_generic_vec(value);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
template<> struct pyopencvVecConverter<detail::MatchesInfo>
|
|
|
|
{
|
2019-11-20 03:13:38 +08:00
|
|
|
static bool to(PyObject* obj, std::vector<detail::MatchesInfo>& value, const ArgInfo& info)
|
2018-12-20 04:37:55 +08:00
|
|
|
{
|
|
|
|
return pyopencv_to_generic_vec(obj, value, info);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject* from(const std::vector<detail::MatchesInfo>& value)
|
|
|
|
{
|
|
|
|
return pyopencv_from_generic_vec(value);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
template<> struct pyopencvVecConverter<detail::CameraParams>
|
|
|
|
{
|
2019-11-20 03:13:38 +08:00
|
|
|
static bool to(PyObject* obj, std::vector<detail::CameraParams>& value, const ArgInfo& info)
|
2018-12-20 04:37:55 +08:00
|
|
|
{
|
|
|
|
return pyopencv_to_generic_vec(obj, value, info);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject* from(const std::vector<detail::CameraParams>& value)
|
|
|
|
{
|
|
|
|
return pyopencv_from_generic_vec(value);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2018-11-11 00:53:48 +08:00
|
|
|
#endif
|