これは、C++ の "+=" の数学表記です。実際に ± を直接使用することはありません。例えば:
//make a rectangle that's 10x10 and centered at (0, 0)
cv::Rect rect(0, 0, 10, 10);
std::cout << "Original Rectangle: " << rect.area() << std::endl;
//manual addition to rectangle dimensions -- this will make bigger_rect be 20x20
cv::Rect bigger_rect = rect;
bigger_rect.height += 10;
bigger_rect.width += 10;
std::cout << "Bigger Rectangle: " << bigger_rect.area() << std::endl;
//other method of adding to a rectangle's area -- this will increase rect to be 20x20
rect += cv::Size(10, 10);
std::cout << rect.area() << std::endl;
したがって、長方形の高さと幅に 10 を追加する例を実行するには、±
記号が次と同等であると考えてください。+= cv::Size(width, height)
まあ、あなたは多かれ少なかれ正しい考えを持っていました...
編集:あなたのコメントに関しては、詳しく説明する必要があります: rect += ポイント、rect -= ポイント、rect += サイズ、rect -= サイズは、次のような 4 つの異なる操作です。
rect += point
とrect -= point
: 四角形をポイント単位でシフトします。ここで、ポイントはcv::Point
オブジェクトを参照します。つまり、ポイントを : として宣言できます
cv::Point pt(5, 5);
。そうするとrect += pt
、四角形の x メンバーと y メンバーがシフトします (デフォルトでは、これらは四角形の左上を参照します)。座標) を 5 ずつ - たとえば、 and を実行するのと同じrect.x += 5
ですrect.y += 5
。rect -= point
足し算ではなく引き算ですが、のケースは同じです (そうrect.x -= 5
とrect.y -= 5
)。
rect += size
座標位置とrect -= size
は対照的に、長方形のサイズを変更します。これ+=
により、長方形の領域が増加し、-=
減少します。