我做检测的拳击手套,因此我想检测和借鉴,只有2个最大的轮廓(每个拳击手套)一个软件OpenCV的轮廓。OpenCV的抽奖抽2个最大的对象
我的软件将轮廓的一切,有些东西是噪音仅ofcourse我不想
我绘制轮廓代码:
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours(mBlur, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
//----------------------------------------------------------------------------->
vector<vector<Point> > contours_poly(contours.size());
vector<Rect> boundRect (contours.size());
vector<Point2f> boundingBoxArea(boundRect.size());
//----------------------------------------------------------------------------->
for(int i = 0; i < contours.size(); i++)
{
approxPolyDP(Mat(contours[i]), contours_poly[i], 3, true);
boundRect[i] = boundingRect(Mat(contours_poly[i]));
}
/// Draw polygonal contour + bonding rects
Mat drawing = Mat::zeros(range_out.size(), CV_8UC3);
for(int i = 0; i< contours.size(); i++)
{
Scalar color = Scalar(0,0,255);
drawContours(drawing, contours_poly, i, color, 1, 8, vector<Vec4i>(), 0, Point());
fillPoly(drawing, contours, Scalar(255,0,0));
}
这里有一个形象的例子:
我已经细分手套颜色方案,该problelem是,有时小轮廓r中绘制由于噪音而造成的地点。当然,手套轮廓当然是占主导地位的,这就是为什么我只想保持这些轮廓。希望这是我的问题更清晰
可能有人提出一个解决方案,请 我编码在C++环境 问候
你应该发布一个示例图像。 – 2013-02-21 23:02:28
@Tomazi请仔细阅读答案,并投票给那些帮助你的答案。您也可以点击答案附近的复选框将其选为您问题的正式答案。 – karlphillip 2013-03-21 17:27:19