这就是 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 += point, rect -= point, rect += size, rect -= size 是 4 个不同的操作,例如:
rect += point
and rect -= point
: 逐点移动矩形,其中 point 指的是一个cv::Point
对象,即你可以将一个点声明为:
cv::Point pt(5, 5);
,然后如果你这样做rect += pt
,它将移动矩形的 x 和 y 成员(默认情况下,这些是指矩形的左上角坐标)乘以 5 - 例如,它相当于做rect.x += 5
and rect.y += 5
。for 的情况rect -= point
是相同的,尽管是减法而不是加法(sorect.x -= 5
和rect.y -= 5
)。
rect += size
并且rect -= size
会改变矩形的大小而不是它的坐标位置,这样+=
会增加矩形区域并-=
减少它。