Pynote

Python、機械学習、画像処理について

OpenCV - cv::Size 大きさを表すクラス

概要

大きさを表すクラス cv::Size について

試した環境

大きさを表すクラス。

template<typename _Tp> class Size_<_Tp>
typedef Size_<int> Size2i    // (1)
typedef Size_<int64> Size2l  // (2)
typedef Size_<float> Size2f  // (3)
typedef Size_<double> Size2d // (4)
typedef Size2i Size          // (5)

(1) int 型の大きさ
(2) int64 型の大きさ
(3) float 型の大きさ
(4) double 型の大きさ
(5) int 型の大きさ

要素

width, height で値にアクセスする。

cv::Size a{2, 3};
std::cout << a.width << ", " << a.height << std::endl; // 2, 3
コンストラクタ
Size_<_Tp>::Size_()                         // (1)
Size_<_Tp>::Size_(_Tp _width, _Tp _height)  // (2)
Size_<_Tp>::Size_(const Size_ &sz)          // (3)
Size_<_Tp>::Size_(const Point_<_Tp> &pt)    // (4)
Size_<_Tp>::operator=(const Size_<_Tp> &sz) // (5)

(1) 幅、高さが (0, 0) である大きさ。
(2) 幅、高さが (width, height) である大きさ。
(3) コピーコンストラクタ。 sz と大きさ。
(4) cv::Point_ の (x、y) を (width, height) とした大きさ。
(5) 代入演算子。sz と同じ大きさ。

cv::Size a{};                // (1)
cv::Size b{2, 3};            // (2)
cv::Size c{a};               // (3)
cv::Size d{cv::Point(1, 2)}; // (4)
cv::Size e = a;              // (5)
演算子
Size_<_Tp> &operator*=(Size_<_Tp> &a, _Tp b)                   // (1)
Size_<_Tp> operator*(const Size_<_Tp> &a, _Tp b)               // (2)
Size_<_Tp> &operator/=(Size_<_Tp> &a, _Tp b)                   // (3)
Size_<_Tp> operator/(const Size_<_Tp> &a, _Tp b)               // (4)
Size_<_Tp> &operator+=(Size_<_Tp> &a, const Size_<_Tp> &b)     // (5)
Size_<_Tp> operator+(const Size_<_Tp> &a, const Size_<_Tp> &b) // (6)
Size_<_Tp> &operator-=(Size_<_Tp> &a, const Size_<_Tp> &b)     // (7)
Size_<_Tp> operator-(const Size_<_Tp> &a, const Size_<_Tp> &b) // (8)

(1) size1 *= _Tp
(2) size1 * _Tp
(3) size1 /= _Tp
(4) size1 / _Tp
(5) size1 += size2
(6) size1 + size2
(7) size1 -= size2
(8) size1 - size2

bool operator==(const Size_<_Tp> &a, const Size_<_Tp> &b) // (9)
bool operator!=(const Size_<_Tp> &a, const Size_<_Tp> &b) // (10)

(9) size1 == size2
(10) size1 != size2

Size_<_Tp>::operator Size_<_Tp2>() const // (11)

(11) Sizei, Sizef 間のキャスト

計算
_Tp Size_<_Tp>::area() const   // (1)
bool Size_<_Tp>::empty() const // (2)

(1) 面積 (width * height)
(2) 無効な大きさかどうか (width <= 0 || height <= 0)