【发布时间】:2016-12-21 07:53:16
【问题描述】:
我正在使用 OpenCV,需要将 cv::Rect 中所有点的 std::vector<cv::Point> 转换为 Rect。
我想知道是否有一种方法可以做到这一点?
如果没有,我如何用我的积分填充std::vector?
我尝试在构造函数中添加点,但失败了:
cv::Rect rect
std::vector<cv::Point> _contour(rect.tl(),rect.br());
我得到的错误是
没有构造函数实例“std::vector<_ty _alloc>::vector [with _Ty=cv::Point, _Alloc=std::allocator]" 匹配参数列表
我尝试使用insert 函数添加点,但这也失败了:
cv::Rect rect
std::vector<cv::Point> _contour;
_contour.insert(rect.tl());
我得到的错误是:
没有重载函数实例“std::vector<_ty _alloc>::insert [with _Ty=cv::Point, _Alloc=std::allocator]" 匹配 参数列表
谢谢
【问题讨论】:
-
请显示您的代码使用
insert函数失败,以及错误消息。 -
@BoBTFish 感谢您的评论,我将代码和错误添加到问题中
-
std::vector中的insert函数在插入 范围 元素时使用。要插入单个元素,请使用push_back(或emplace_back)。 -
@BoBTFish 谢谢,我错过了。