Opencv 如何围绕轮廓绘制矩形?

Opencv 如何围绕轮廓绘制矩形?,opencv,contour,edge-detection,Opencv,Contour,Edge Detection,我刚刚开始使用opencv,我正在尝试制作一个程序,在一些沙子上的岩石图片周围放置正方形。该函数的文档包括如何使用该函数的示例 findContours( src, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE ); findContours的原型是 void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray h

我刚刚开始使用opencv,我正在尝试制作一个程序,在一些沙子上的岩石图片周围放置正方形。该函数的文档包括如何使用该函数的示例

findContours( src, contours, hierarchy,
  CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE );

findContours的原型是

void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point()) ;
我有两个问题
1.示例
层次结构
中的第三个参数是一个
向量
与FindOntours期望的类型不匹配。为什么呢
2.如何使用存储在
等高线中的数据
找到等高线的位置以创建边界框?

std::vector等高线;
std::vector<std::vector<cv::Point> > contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours( mask, contours, hierarchy, cv::RETR_CCOMP, cv::CHAIN_APPROX_TC89_KCOS);
for ( size_t i=0; i<contours.size(); ++i )
{
    cv::drawContours( img, contours, i, Scalar(200,0,0), 1, 8, hierarchy, 0, Point() ); 
    cv::Rect brect = cv::boundingRect(contours[i]);
    cv::rectangle(img, brect, Scalar(255,0,0));
}
向量层次; cv::findContours(遮罩、轮廓、层次结构、cv::RETR\u CCOMP、cv::CHAIN\u About\u TC89\u KCOS); 对于(尺寸i=0;i
std::矢量轮廓;
向量层次;
cv::findContours(遮罩、轮廓、层次结构、cv::RETR\u CCOMP、cv::CHAIN\u About\u TC89\u KCOS);

对于(size_t i=0;i“findContours的原型是”然后出现:void drawContours(..)你的意思是?粘贴了错误的签名?你是对的,我一直在看错误的签名,这更有意义!“findContours的原型是”然后出现:void drawContours(..)你是那个意思吗?粘贴了错误的签名?你是对的,我一直在看错误的签名,这更有意义!