Opening and closing images using morphological filters
The previous recipe introduced you to the two fundamental morphological operators: dilation and erosion. From these, other operators can be defined. The next two recipes will present some of them. The opening and closing operators are presented in this recipe.
How to do it...
In order to apply higher-level morphological filters, you need to use the cv::morphologyEx
function with the appropriate function code. For example, the following call will apply the closing operator:
cv::Mat element5(5,5,CV_8U,cv::Scalar(1)); cv::Mat closed; cv::morphologyEx(image,closed,cv::MORPH_CLOSE,element5);
Note that we used a 5 x 5 structuring element to make the effect of the filter more apparent. If we use the binary image of the preceding recipe as input, we will obtain an image similar to what's shown in the following screenshot:
Similarly, applying the morphological opening operator will result in the following screenshot:
The preceding image is...