我写了一段代码,它在感兴趣的对象周围绘制了一个边界框。下一步是调整边界框的大小,这样我就有了一点背景。现在我想在单独的图像中获取边界框的内容,以便处理这个感兴趣的区域。我写的代码是:
findContours(Sal11, Objects, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
//Kleine contouren verwijderen.
for(unsigned int i = 0; i < Objects.size(); i++)
{
if (Objects[i].size() > 250 && Objects[i].size() < 500)
Objects2.push_back(Objects[i]);
}
cv::Mat Person=input;
// Bounding Box
for(unsigned int i = 0; i < Objects2.size(); i++)
{
Rect rect = boundingRect(Objects2[i]);
Point pt1, pt2;
pt1.x = rect.x - 100;
pt1.y = rect.y;
pt2.x = rect.x + rect.width + 100;
pt2.y = rect.y + rect.height;
rectangle(input, pt1, pt2, CV_RGB(0,0,255), 1);
cout << rect << endl;
Rect rect2;
Person = input(rect);
}
rect2
现在不做任何事情,但我希望它是rect
. 和我调整边界框的大小pt1
。pt2
该代码用于实时处理。