I am working on software using OpenCV in C++ environment. The objective is to detect a boxing glove and draw a bounding box around gloves contours.
The problem I am running into is that the bounding box is drown more than once in fact multiple boxes are drawn. What I was trying to do over the past few days is to somehow eliminate the number of boxes drawn and have only one big bounding box drawn.
I was looking at some techniques to fill in the object int its whole which i believe would really help in this case.
Below I have posted the code i used to achieve the result displayed in the image:
vector > contours; vector hierarchy; vector vecCircles; vector::iterator itrCircles; while(1) { Mat frame; cap >> frame; // get a new frame from camera ///////////////////// Mat imgHSV; cvtColor( frame, imgHSV, CV_BGR2HSV ); //////////////////// Mat blur_out; GaussianBlur(imgHSV, blur_out, Size(1,1),2.0,2.0); //////////////////// Mat range_out; inRange(blur_out, Scalar(100, 100, 100), Scalar(120, 255, 255), range_out); //////////////////// findContours(range_out, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) ); /// Approximate contours to polygons + get bounding rects and circles vector > contours_poly( contours.size() ); vector boundRect( contours.size() ); vectorcenter( contours.size() ); vectorradius( contours.size() ); for( int i = 0; i (), 0, Point() ); rectangle( drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0 ); }

If anyone could suggest some tips or provide some source of information where i can find answers for my problem.
EDIT (quick update):
I managed to improve the output image quiet gradually to a point am quiet happy with the result. The Key was the usage of erode & dilation as well as in my findContours()
function. I changed the CV_RETR_TREE
to CV_RETR_EXTERNAL
. There were a few other minor things i tackled but the result is good:

Dont know if i should write this here or open new thread....But now I need some help with component labeling and extracting parameters such as center points and area. :)