title: emgu GPU Blob detection
body: <p>I am confused by the current state of Emgu GPU functionality (using Emgu 2.4 x64). The methods available from a GPUImage are very limited - I am trying to use it for blob detection. Specifically a code structure like this could use GPU to speed up blob extraction.</p>
  
  <p>Any thoughts on how I could leverage GPU functionality from Emgu? Alternately, what are choices are available to leverage GPUs (other than a rewrite in CUDA)?</p>
  
  <pre><code>        using (Image&lt;Gray, Byte&gt; currentGrayFrame = imgCurrentFrame.Convert&lt;Gray, Byte&gt;())
          {
              using (MemStorage storage = new MemStorage())
              {
                  currentGrayFrame._SmoothGaussian(3);
                  currentGrayFrame._GammaCorrect(1.8d);
                  currentGrayFrame._EqualizeHist();
                  CvInvoke.cvCanny(currentGrayFrame, currentGrayFrame, 120, 60, 3);
                  int blobID = 0;
                  for (Contour&lt;System.Drawing.Point&gt; contours = currentGrayFrame.FindContours(CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, RETR_TYPE.CV_RETR_EXTERNAL, storage);
                       contours != null; contours = contours.HNext)
                  {
                      Contour&lt;Point&gt; contour = contours.ApproxPoly(contours.Perimeter * 0.001);
                      if (contour.Area &gt; 100)
                          if (contour.Total &gt; 5)
                          {
                              Rectangle rect = contour.BoundingRectangle;
                              Image&lt;Bgr, Byte&gt; imgBlob = imgCurrentFrame.Copy(rect);
                              {
                                  //Bitmap bmpBlob = imgBlob.Bitmap;
                                  blobsList.Add(new Blob
                                  {
                                      BlobID = ++blobID,
                                      BlobImage = imgBlob,
                                      Location = rect,
                                  });
                                  //imgBlob.Dispose();
                              }
                          }
                  }
              }
          }
  </code></pre>