膨胀腐蚀是对图片的高亮度部分(白色)进行操作,膨胀是对高亮度部分进行"领域扩张",腐蚀是对高亮度部分进行"领域蚕食""
膨胀dilate()
函数原型:
public static void Dilate(InputArray src, OutputArray dst, InputArray? element, Point? anchor = null, int iterations = 1, BorderTypes borderType = BorderTypes.Constant, Scalar? borderValue = null);
src:输入图像(建议二值图)
dst:输出图像
element:用于膨胀的结构单元。如果element=new Mat()[为空的意思],则使用一个3x3的矩形结构单元
anchor :锚点位置,默认为(-1,-1)表示位于中心
iterations :膨胀次数
borderType :边界模式,一般使用默认值
borderValue :边界值,一般采用默认值
腐蚀erode()
public static void Erode(InputArray src, OutputArray dst, InputArray? element, Point? anchor = null, int iterations = 1, BorderTypes borderType = BorderTypes.Constant, Scalar? borderValue = null);
//膨胀腐蚀
Mat src = new Mat(@"I:\OpenCvSharp学习\3副本.jpg", ImreadModes.AnyColor);
Window srcWin = new Window("src", WindowMode.AutoSize, src);
Mat dst1 = new Mat();
Mat dst2 = new Mat();
Mat element = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(4, 4), new Point(-1, -1));
Cv2.Dilate(src,dst1,element,new Point(-1,-1),2);
Cv2.Erode(src,dst2,element,new Point(-1,-1),2);
Window dstWin = new Window("dst1", WindowMode.AutoSize, dst1);
Window dstWin1 = new Window("dst2", WindowMode.AutoSize, dst2);
Cv2.WaitKey(0);