title: detecting solid white circles using opencv HoughCircles
body: <p>I am trying to detect solid circles using opencv.  The example code from the opencv documentation seems like it cannot detect solid white.  How would I modify that code to work for solid white circles?  Can you explain why it does not work for solid white circles?</p>
  
  <pre><code>#include "opencv2/highgui/highgui.hpp"
  #include "opencv2/imgproc/imgproc.hpp"
  #include &lt;iostream&gt;
  #include &lt;stdio.h&gt;
  
  using namespace cv;
  
  /** @function main */
  int main(int argc, char** argv)
  {
    Mat src, src_gray;
  
    /// Read the image
    src = imread( argv[1], 1 );
  
    if( !src.data )
      { return -1; }
  
    /// Convert it to gray
    cvtColor( src, src_gray, CV_BGR2GRAY );
  
    /// Reduce the noise so we avoid false circle detection
    GaussianBlur( src_gray, src_gray, Size(9, 9), 2, 2 );
  
    vector&lt;Vec3f&gt; circles;
  
    /// Apply the Hough Transform to find the circles
    HoughCircles( src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows/8, 200, 100, 0, 0 );
  
    /// Draw the circles detected
    for( size_t i = 0; i &lt; circles.size(); i++ )
    {
        Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
        int radius = cvRound(circles[i][2]);
        // circle center
        circle( src, center, 3, Scalar(0,255,0), -1, 8, 0 );
        // circle outline
        circle( src, center, radius, Scalar(0,0,255), 3, 8, 0 );
      }
  
    /// Show your results
    namedWindow( "Hough Circle Transform Demo", CV_WINDOW_AUTOSIZE );
    imshow( "Hough Circle Transform Demo", src );
  
    waitKey(0);
    return 0;
  }
  </code></pre>
  
  <p>I would post images, but I don't have enough stack overflow street cred yet.  Sorry!</p>