la suppression du bruit dans une image binaire à l'aide d'openCV

J'avais lu dans une vidéo dans Visual Studio à l'aide d'openCV et convertie en niveaux de gris puis utilisé la fonction CV_THRESH_BINARY à la convertir en une image binaire. Cependant, il y a des trous et le bruit dans les images. Ce qui est un moyen simple pour supprimer le bruit ou les trous? J'ai lu sur le miner et de Dilater les fonctions d'openCV, mais je ne suis pas trop clair sur la façon de les utiliser. c'est mon code jusqu'à présent. Si quelqu'un peut me montrer comment intégrer la suppression du bruit dans mon code, il serait grandement apprécié.

#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->width, color_frame->height),      color_frame->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(&color_frame);
cvReleaseImage(&gray_frame);
cvReleaseCapture( &capture );
cvDestroyWindow( "Grayscale video" );

return 0;
}

OriginalL'auteur sue-ling | 2012-02-17