Я grepped во всем каталоге Opencv для Size::
CV_EXPORTS SIZE
Size::width
но все, что я могу найти, это класс Template Size_
, Size_
же, как в документации. Я хотел бы посмотреть исходный код, потому что я добавляю улучшения в библиотеку OpenCV, и эта информация была бы полезна. На Ubuntu Trusty я запускаю grep следующим образом:
grep -r 'CV_EXPORTS SIZE' .
из каталога модулей в корневой папке
Заранее благодарю за любых участников.
Ох, это глубокое исходное дерево. В любом случае, opencv/modules/core/include/opencv2/core/types.hpp имеет:
/*!
The 2D size class
The class represents the size of a 2D rectangle, image size, matrix size etc.
Normally, cv::Size ~ cv::Size_<int> is used.
*/
template<typename _Tp> class Size_
{
//! various constructors
Size_();
Size_(_Tp _width, _Tp _height);
Size_(const Size_& sz);
Size_(const Point_<_Tp>& pt);
Size_& operator = (const Size_& sz);
//! the area (width*height)
_Tp area() const;
//! conversion of another data type.
template<typename _Tp2> operator Size_<_Tp2>() const;
_Tp width, height; // the width and the height
};
/*!
\typedef
*/
typedef Size_<int> Size2i;
typedef Size_<float> Size2f;
typedef Size_<double> Size2d;
typedef Size2i Size;
Таким образом, Size
является псевдонимом для Size2i
, который является псевдонимом для Size_<int>
.
Size_(_Tp _width, _Tp _height)
Size_()
принимает два аргумента типа_Tp
который является типом шаблона._width
и_height
- это просто имена аргументов конструктора.