膨胀腐蚀: 是对图片的高亮度部分(白色)进行操作
膨胀: 是对高亮度部分进行”领域扩张”,
腐蚀: 是对高亮度部分进行”领域蚕食”

1, 膨胀dilate()

  1. public static void Dilate(InputArray src,
  2. OutputArray dst,
  3. InputArray? element,
  4. Point? anchor = null,
  5. int iterations = 1,
  6. BorderTypes borderType = BorderTypes.Constant,
  7. Scalar? borderValue = null);

src: 输入图像(建议二值图)
dst: 输出图像
element: 用于膨胀的结构单元。如果element=new Mat()[为空的意思],则使用一个3x3的矩形结构单元
anchor : 锚点位置,默认为(-1,-1)表示位于中心
iterations : 膨胀次数
borderType : 边界模式,一般使用默认值
borderValue : 边界值,一般采用默认值

2,腐蚀erode()

  1. public static void Erode(InputArray src,
  2. OutputArray dst,
  3. InputArray? element,
  4. Point? anchor = null,
  5. int iterations = 1,
  6. BorderTypes borderType = BorderTypes.Constant,
  7. Scalar? borderValue = null);
  1. //膨胀腐蚀
  2. Mat src = new Mat(@"I:\OpenCvSharp学习\3副本.jpg", ImreadModes.AnyColor);
  3. Window srcWin = new Window("src", WindowMode.AutoSize, src);
  4. Mat dst1 = new Mat();
  5. Mat dst2 = new Mat();
  6. Mat element = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(4, 4), new Point(-1, -1));
  7. Cv2.Dilate(src,dst1,element,new Point(-1,-1),2);
  8. Cv2.Erode(src,dst2,element,new Point(-1,-1),2);
  9. Window dstWin = new Window("dst1", WindowMode.AutoSize, dst1);
  10. Window dstWin1 = new Window("dst2", WindowMode.AutoSize, dst2);
  11. Cv2.WaitKey(0);

image.png