mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
68 lines
1.7 KiB
#include <boost/python.hpp> |
|
|
|
#include <string> |
|
|
|
#include <opencv2/core/core.hpp> |
|
|
|
namespace bp = boost::python; |
|
|
|
namespace |
|
{ |
|
|
|
template<typename T> |
|
void wrap_point(const std::string& name) |
|
{ |
|
typedef cv::Point_<T> Point_t; |
|
bp::class_<Point_t> Point_(name.c_str()); |
|
Point_.def(bp::init<>()); |
|
Point_.def(bp::init<T, T>()); |
|
Point_.def(bp::init<Point_t>()); |
|
Point_.def_readwrite("x", &Point_t::x); |
|
Point_.def_readwrite("y", &Point_t::y); |
|
Point_.def_readwrite("dot", &Point_t::dot); |
|
Point_.def_readwrite("inside", &Point_t::inside); |
|
} |
|
|
|
template<typename T> |
|
void wrap_rect(const std::string& name) |
|
{ |
|
typedef cv::Rect_<T> Rect_t; |
|
bp::class_<Rect_t> c_(name.c_str()); |
|
c_.def(bp::init<>()); |
|
c_.def(bp::init<T, T, T, T>()); |
|
c_.def(bp::init<cv::Point_<T>, cv::Point_<T> >()); |
|
c_.def(bp::init<cv::Point_<T>, cv::Size_<T> >()); |
|
|
|
c_.def(bp::init<Rect_t>()); |
|
c_.def_readwrite("x", &Rect_t::x); |
|
c_.def_readwrite("y", &Rect_t::y); |
|
c_.def_readwrite("width", &Rect_t::width); |
|
c_.def_readwrite("height", &Rect_t::height); |
|
c_.def("tl", &Rect_t::tl); |
|
c_.def("br", &Rect_t::br); |
|
c_.def("size", &Rect_t::size); |
|
c_.def("area", &Rect_t::area); |
|
c_.def("contains", &Rect_t::contains); |
|
} |
|
} |
|
|
|
namespace opencv_wrappers |
|
{ |
|
void wrap_points() |
|
{ |
|
bp::class_<cv::Size> Size_("Size"); |
|
Size_.def(bp::init<int, int>()); |
|
Size_.def_readwrite("width", &cv::Size::width); |
|
Size_.def_readwrite("height", &cv::Size::height); |
|
Size_.def("area", &cv::Size::area); |
|
|
|
wrap_point<int> ("Point"); |
|
wrap_point<float> ("Point2f"); |
|
wrap_point<double> ("Point2d"); |
|
|
|
wrap_rect<int> ("Rect"); |
|
wrap_rect<float> ("Rectf"); |
|
wrap_rect<double> ("Rectd"); |
|
|
|
} |
|
}
|
|
|