我做檢測的拳擊手套,因此我想檢測和借鑑,只有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