【发布时间】:2019-04-08 17:10:53
【问题描述】:
假设我有 2 个矩形。我希望第二个矩形比第一个矩形大两倍,并且 x,y 的位置也大两倍。
cv::Rect r1=Rect(10,20,40,60);
cv::Rect r2 = r1 * 2; //this won't work
将矩形 2 参数 1 设置为 1 将起作用
r2.height = r1.height * 2;
r2.width = r1.height * 2;
r2.x = r1.x * 2;
r2.y = r2.y * 2;
它有效,但有没有更简单的方法(如单行代码)?
【问题讨论】:
-
不是根据docs,您可以编写自己的函数,但这似乎相对专业,因为您要乘以位置?
-
你试过了吗 cv::Rect r2 = r1 * cv::Size(2,2); ?或 cv::Rect r2 = r1 +cv::Size(width, height) 进行翻译, rect + cv::Point(x,y) 应该可以工作。
-
你要乘以职位
x,y乘以职位是什么意思?要调整大小,您可以乘以width, height。 -
将一个矩形乘以二并没有真正明确的意义;原点应该在哪里? (0, 0)?左下方?中心?