OpenCV形态学腐蚀和膨胀图像

OpenCV形态学腐蚀和膨胀图像,数学形态学中最基本的概念是结构元素。结构元素可以简单地定义为像素的组合(下图的正方形),在对应的像素上定义了一个原点(也称锚点)。形态学滤波器的应用过程就包含了用这个结构元素探测图像中每个像素的操作过程。把某个像素设为结构元素的原点后,结构元素和图像重叠部分的像素集(下图的九个阴影像素)就是特定形态学运算的应用对象。结构元素原则上可以是任何形状,但通常是一个简单形状,如正方形、圆形或菱形,并且把中心点作为原点。自定义结构元素可用于强化或消除特殊形状。
OpenCV形态学腐蚀和膨胀图像

准备工作

因为形态学滤波器通常作用于二值图像,所以我们采用计算图像直方图通过阈值化创建的二值图像。但在形态学中,我们习惯用高像素值(白色)表示前景物体,用低像素值(黑色)表示背景物体,因此对图像做了反向处理。
OpenCV形态学腐蚀和膨胀图像

如何实现

OpenCV用简单的函数实现了腐蚀和膨胀运算,它们分别是cv:erode和cv:dilate,用法也很简单:

        // 读取输入图像
        cv::Mat image= cv::imread("binary.bmp");

        // 腐蚀图像
        // 采用默认的3×3 结构元素
        cv::Mat eroded; // 目标图像

        cv::erode(image, eroded, cv::Mat());

        // 膨胀图像
        cv::Mat dilated; // 目标图像
        cv::dilate(image, dilated, cv::Mat());

这些函数生成的两幅图像如下所示。左图为腐蚀图像,右图为膨胀图像。

OpenCV形态学腐蚀和膨胀图像

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!