Thickening the shapes

We use an operation called dilation to achieve thickening. This is the operation that makes a shape thicker by adding boundary layers to all the shapes in the image:

Here is the code to do it:

Mat performDilation(Mat inputImage, int dilationElement, int dilationSize)
{
Mat outputImage;
int dilationType;

if(dilationElement == 0)
dilationType = MORPH_RECT;
else if(dilationElement == 1)
dilationType = MORPH_CROSS;
else if(dilationElement == 2)
dilationType = MORPH_ELLIPSE;

// Create the structuring element for dilation
Mat element = getStructuringElement(dilationType, Size(2*dilationSize + 1, 2*dilationSize + 1), Point(dilationSize, dilationSize));

// Dilate the image using the structuring element
dilate(inputImage, outputImage, element);

// Return the output image
return outputImage;
}