【发布时间】:2017-04-06 02:25:38
【问题描述】:
我在 python 中编写了一个使用 max() 方法的脚本,我正在尝试在 c++ 中重新创建一个类似的程序,但我无法获得该值用于遮罩中的最大轮廓。
我曾尝试使用 C++ 算法库中的 max_element() 函数,但无济于事。我也尝试取消引用迭代器但收到一系列错误,这是我的代码:
if (contours.size() > 0)
{
c = *max_element(contours.begin(), contours.end());
//not compiling
}
这是错误:
no match for 'operator=' (operand types are 'std::vector<std::vector<cv::Point_<int> > >' and 'std::vector<cv::Point_<int> >')
这是我在 Python 中的做法:
if len(contours) > 0;
#find largest contour in mask, use to compute minEnCircle
c = max(contours, key = cv2.contourArea)
(x,y), radius) = cv2.minEnclosingCircle(c)
M = cv2.moments(c)
【问题讨论】:
-
contours! 的类型是什么? C++ 是静态类型的,这就是确定操作有效性的方式。 -
std::vector
> 轮廓;