文章目录
一、概述
在 OpenCV 中,形态学操作(Morphological Operations)是一类基于图像形状的图像处理方法,常用于去噪、提取轮廓、填补空洞、突出特征等。
二、膨胀(Dilation)的概念
膨胀的作用是:让前景(通常是白色部分)扩大,背景(通常是黑色部分)缩小。
简单理解就是:
- 图像中的亮区域会“长大”;
- 暗区域会“被侵蚀”;
- 小的黑洞会被填平;
- 分离的小白点可能会被连接起来。
数学定义:

在 OpenCV 中的实现
函数原型:
void cv::dilate(
InputArray src,
OutputArray dst,
InputArray kernel,
Point anchor = Point(-1, -1),
int iterations = 1,
int borderType = BORDER_CONSTANT,
const Scalar& borderValue = morphologyDefaultBorderValue()
);
参数说明:

结构元素的定义
使用 getStructuringElement() 创建核:
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
// MORPH_RECT:矩形核
// MORPH_ELLIPSE:椭圆形核
// MORPH_CROSS:十字形核
可选类型如下:

示例代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat src = imread("binary.png", IMREAD_GRAYSCALE);
// 定义结构元素
Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
// 膨胀操作
Mat dst;
dilate(src, dst, kernel);
imshow("Original", src);
imshow("Dilated", dst);
waitKey(0);
return 0;
}

最低0.47元/天 解锁文章
2752

被折叠的 条评论
为什么被折叠?



