удаление шума в двоичном изображении с помощью openCV

Я прочитал видео в Visual Studio с использованием openCV и преобразовал его в оттенки серого, а затем использовал функцию CV_THRESH_BINARY, чтобы преобразовать его в двоичное изображение. Однако в рамах есть дыры и шум. Какой простой способ удалить шум или дыры? Я прочитал о функциях Erode и Dlate в openCV, но я не очень понимаю, как их использовать. это мой код до сих пор. Если кто-нибудь может показать мне, как включить удаление шума в мой код, это будет очень ценно.

#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;
}

Ответы на вопрос(2)

Ваш ответ на вопрос