OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::RotatedRect クラス

このクラスは平面上の回転した(すなわち直立していない)矩形を表す。続きを読む...

#include <opencv2/core/types.hpp>

Collaboration diagram for cv::RotatedRect:

公開メンバ関数

 RotatedRect ()
 デフォルトコンストラクタ
 
 RotatedRect (const Point2f &center, const Size2f &size, float angle)
 
 RotatedRect (const Point2f &point1, const Point2f &point2, const Point2f &point3)
 
Rect boundingRect () const
 回転矩形を内包する最小の直立した整数矩形を返す
 
Rect2f boundingRect2f () const
 回転矩形を内包する最小の(厳密な)浮動小数点矩形を返す。画像での使用は意図していない
 
void points (Point2f pts[]) const
 
void points (std::vector< Point2f > &pts) const
 

公開変数類

float angle
 回転角度を返す。角度が0、90、180、270などのとき、矩形は直立した矩形になる。
 
Point2f center
 矩形の重心を返す
 
Size2f size
 矩形の幅と高さを返す
 

詳細説明

このクラスは平面上の回転した(すなわち直立していない)矩形を表す。

各矩形は、中心点(重心)、各辺の長さ(Size2f 構造体で表される)、および度単位の回転角度によって指定される。

以下のサンプルは RotatedRect の使い方を示している。

Mat test_image(200, 200, CV_8UC3, Scalar(0));
RotatedRect rRect = RotatedRect(Point2f(100,100), Size2f(100,50), 30);
Point2f vertices[4];
rRect.points(vertices);
for (int i = 0; i < 4; i++)
{
line(test_image, vertices[i], vertices[(i+1)%4], Scalar(0,255,0), 2);
putText(test_image, vertex_names[i], vertices[i], FONT_HERSHEY_SIMPLEX, 1, Scalar(255,255,255));
}
Rect brect = rRect.boundingRect();
rectangle(test_image, brect, Scalar(255,0,0), 2);
imshow("rectangles", test_image);
waitKey(0);

参照
CamShift, fitEllipse, minAreaRect, CvBox2D
samples/cpp/geometry.cpp、および samples/cpp/snippets/camshiftdemo.cpp

構築子と解体子の詳解

◆ RotatedRect() [1/3]

cv::RotatedRect::RotatedRect ( )
Python:
cv.RotatedRect() -> <RotatedRect object>
cv.RotatedRect(center, size, angle) -> <RotatedRect object>
cv.RotatedRect(point1, point2, point3) -> <RotatedRect object>

デフォルトコンストラクタ

◆ RotatedRect() [2/3]

cv::RotatedRect::RotatedRect ( const Point2f & center,
const Size2f & size,
float angle )
Python:
cv.RotatedRect() -> <RotatedRect object>
cv.RotatedRect(center, size, angle) -> <RotatedRect object>
cv.RotatedRect(point1, point2, point3) -> <RotatedRect object>

完全なコンストラクタ

引数
center矩形の重心。
size矩形の幅と高さ。
angle時計回り方向の回転角度。角度が0、90、180、270などのとき、矩形は直立した矩形になる。

◆ RotatedRect() [3/3]

cv::RotatedRect::RotatedRect ( const Point2f & point1,
const Point2f & point2,
const Point2f & point3 )
Python:
cv.RotatedRect() -> <RotatedRect object>
cv.RotatedRect(center, size, angle) -> <RotatedRect object>
cv.RotatedRect(point1, point2, point3) -> <RotatedRect object>

RotatedRect の任意の3つの端点。これらは順序(時計回りまたは反時計回りのいずれか)で与える必要がある。

メンバ関数詳解

◆ boundingRect()

Rect cv::RotatedRect::boundingRect ( ) const
Python:
cv.RotatedRect.boundingRect() -> retval

回転矩形を包含する最小の右上向き整数矩形を返す

◆ boundingRect2f()

Rect2f cv::RotatedRect::boundingRect2f ( ) const
Python:
cv.RotatedRect.boundingRect2f() -> retval

回転矩形を包含する最小の(厳密な)浮動小数点矩形を返す。画像での使用を想定したものではない

◆ points() [1/2]

void cv::RotatedRect::points ( Point2f pts[]) const
Python:
cv.RotatedRect.points() -> pts

回転矩形の4つの頂点を返す

引数
pts矩形の頂点を格納する点の配列。順序は bottomLefttopLeft、topRight、bottomRight である。
覚え書き
Bottom, Top, Left, Right の各辺は元の矩形(角度が0)を基準とする。そのため180度回転後は bottomLeft 点が矩形の右上隅に位置することになる。
samples/cpp/geometry.cpp.

◆ points() [2/2]

void cv::RotatedRect::points ( std::vector< Point2f > & pts) const
Python:
cv.RotatedRect.points() -> pts

メンバ変数詳解

◆ angle

float cv::RotatedRect::angle

回転角を返す。角度が0, 90, 180, 270などのとき、矩形は右上向きの矩形になる。

◆ center

Point2f cv::RotatedRect::center

矩形の重心を返す

◆ size

Size2f cv::RotatedRect::size

矩形の幅と高さを返す

samples/cpp/geometry.cpp.

このクラス詳解は次のファイルから抽出されました: