This an example on how to use morphological operator in OpenCV to close gaps.
int main(int argc, char* argv[])
{
IplImage *image;
IplImage *dilated_image;
IplImage *eroded_image;
image = cvLoadImage ("triangle.jpg");
dilated_image = cvCloneImage (image);
eroded_image = cvCloneImage (image);
cvNamedWindow ("Original", 1);
cvNamedWindow ("Dilated", 1);
cvNamedWindow ("Eroded", 1);
cvShowImage ("Original", image);
cvDilate (image, dilated_image, 0, 7);
cvShowImage ("Dilated", dilated_image);
cvErode (dilated_image, eroded_image, 0, 6);
cvShowImage ("Eroded", eroded_image);
cvWaitKey ();
cvReleaseImage (&image);
cvDestroyWindow ("Original");
cvReleaseImage (&dilated_image);
cvDestroyWindow ("Dilated");
cvReleaseImage (&eroded_image);
cvDestroyWindow ("Eroded");
return 0;
}