title: removing noise in a binary image using openCV
body: <p>I had read in a video into Visual Studio using openCV and converted it to grayscale then used the function CV_THRESH_BINARY to convert it into a binary image. However, there are holes and noise in the frames. What is a simple way to remove noise or the holes? I have read up on the Erode and Dilate functions in openCV but I am not too clear on how to use them. this is my code so far. If anyone can show me how to incorporate the noise removal into my code, it would be greatly appreciated.</p>
  
  <pre><code>#include "cv.h"
  #include "highgui.h"
  
  int main( int argc, char* argv ) {
  
  CvCapture *capture = NULL;
  capture = cvCaptureFromAVI("C:\\walking\\lady walking.avi");
  if(!capture){
      return -1;
  }
  
  IplImage* color_frame = NULL;
  IplImage* gray_frame = NULL ;
  int thresh_frame = 70;
  
  int frameCount=0;//Counts every 5 frames
  cvNamedWindow( "Binary video", CV_WINDOW_AUTOSIZE );
  
  while(1) {
      color_frame = cvQueryFrame( capture );//Grabs the frame from a file
      if( !color_frame ) break;
      gray_frame = cvCreateImage(cvSize(color_frame-&gt;width, color_frame-&gt;height),      color_frame-&gt;depth, 1);
      if( !color_frame ) break;// If the frame does not exist, quit the loop
  
      frameCount++;
      if(frameCount==5)
      {
          cvCvtColor(color_frame, gray_frame, CV_BGR2GRAY);
          cvThreshold(gray_frame, gray_frame, thresh_frame, 255, CV_THRESH_BINARY);
          cvShowImage("Binary video", gray_frame);
          frameCount=0;
      }
      char c = cvWaitKey(33);
      if( c == 27 ) break;
  }
  
  cvReleaseImage(&amp;color_frame);
  cvReleaseImage(&amp;gray_frame);
  cvReleaseCapture( &amp;capture );
  cvDestroyWindow( "Grayscale video" );
  
  return 0;
  }
  </code></pre>