C++ 膨胀与腐蚀(dilate、erode)
参考:https://blog.****.net/poem_qianmo/article/details/23710721
膨胀:
函数:一般只需输前三个参数:输入图像、输出图像、卷积内核
- void dilate(
- InputArray src,
- OutputArray dst,
- InputArray kernel,
- Point anchor=Point(-1,-1),
- int iterations=1,
- int borderType=BORDER_CONSTANT,
- const Scalar& borderValue=morphologyDefaultBorderValue()
- );
- //载入原图
- Mat image = imread("1.jpg");
- //获取自定义核
- Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
- Mat out;
- //进行膨胀操作
- dilate(image, out, element);
- Mat element = getStructuringElement(MORPH_RECT,
- Size(2*g_nStructElementSize+1,2*g_nStructElementSize+1),
- Point( g_nStructElementSize, g_nStructElementSize ));
- 矩形: MORPH_RECT
- 交叉形: MORPH_CROSS
-
椭圆形: MORPH_ELLIPSE
腐蚀:
函数:
- void erode(
- InputArray src,
- OutputArray dst,
- InputArray kernel,
- Point anchor=Point(-1,-1),
- int iterations=1,
- int borderType=BORDER_CONSTANT,
- const Scalar& borderValue=morphologyDefaultBorderValue()
- );
使用:
- //载入原图
- Mat image = imread("1.jpg");
- //获取自定义核
- Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
- Mat out;
- //进行腐蚀操作
- erode(image,out, element);