Где в исходном коде OpenCV находится класс размеров?

0

Я grepped во всем каталоге Opencv для Size:: CV_EXPORTS SIZE Size::width но все, что я могу найти, это класс Template Size_, Size_ же, как в документации. Я хотел бы посмотреть исходный код, потому что я добавляю улучшения в библиотеку OpenCV, и эта информация была бы полезна. На Ubuntu Trusty я запускаю grep следующим образом:

grep -r 'CV_EXPORTS SIZE' . 

из каталога модулей в корневой папке

Заранее благодарю за любых участников.

Теги:
opencv

1 ответ

2
Лучший ответ

Ох, это глубокое исходное дерево. В любом случае, 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>.

  • 0
    Большое спасибо за ответ на этот вопрос, могу ли я спросить вас, где определен объект width размера, это Size_(_Tp _width, _Tp _height)
  • 0
    @ user3411335 Я подозреваю, что вы не очень знакомы с шаблонами. Код, который вы цитируете, означает, что конструктор Size_() принимает два аргумента типа _Tp который является типом шаблона. _width и _height - это просто имена аргументов конструктора.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню