title: OpenCV findContours issue
body: <p>I have the following code which performs background subtraction and then uses findContours to draw a boundary around the foreground object.</p>
  
  <pre><code>// frame - Input frame from a camera.
  // output - Output frame to be displayed.
      void process(cv:: Mat &amp;frame, cv:: Mat &amp;output) {
  
      cv::cvtColor(frame, gray, CV_BGR2GRAY); 
  
      // initialize background to 1st frame
      if (background.empty())
          gray.convertTo(background, CV_32F);
  
      // convert background to 8U
      background.convertTo(backImage,CV_8U);
  
      // compute difference between current image and background
      cv::absdiff(backImage,gray,foreground);
  
      // apply threshold to foreground image
      cv::threshold(foreground,output,threshold,255,cv::THRESH_BINARY_INV);
  
      // accumulate background
      cv::accumulateWeighted(gray, background, learningRate, output);
  
      // Find regions of interest
      std::vector&lt;std::vector&lt;cv::Point&gt; &gt; v; // Detected foreground points
  
      cv::findContours(output,v,CV_RETR_LIST,CV_CHAIN_APPROX_NONE);
  
      // Sort to find the entry with the most points at the beginning.
              // This is done to overcome noisy input.
      std::sort(v.begin(), v.end(), DescendingCompare);
  
      cv::Mat drawing = frame;
  
      std::vector&lt;std::vector&lt;cv::Point&gt;&gt; contours_poly(1);
  
      // Determine an approximate polygon for v[0] which is the largest contour
      cv::approxPolyDP( cv::Mat(v[0]), contours_poly[0], 3, false );
  
      // Draw polygonal contour
       cv::Scalar color = cv::Scalar( 0,0,255 );
       cv::drawContours( drawing, contours_poly, 0, color, 2, 8, std::vector&lt;cv::Vec4i&gt;(), 0, cv::Point() );
  
       // Show in a window
      output = drawing;
      v.clear();
  
  }
  </code></pre>
  
  <p>The image is just  a blank white background but findContours() is returning a contour with the 4 edges of the image. This ends up being the largest contour found, negating my logic in the code.Is there anyway to fix this ? I want it to return a null vector when the screen is blank.</p>
  
  <p><img src="https://i.stack.imgur.com/kd9TU.jpg" alt="http://imgur.com/a/hJCQl"></p>
  
  <p><img src="https://i.stack.imgur.com/vidDr.jpg" alt="http://imgur.com/a/hJCQl"></p>
  
  <p>Also, can this code be improved in anyway to improve efficiency ?</p>