public static Image <Gray, byte> Morp(Image <Gray, byte> rootimg, morpOp op, int size, kernal kernal) { if (size == 0) { size = 1; } var kern = CreateKernal(kernal, new System.Drawing.Size(size, size)); return(rootimg.MorphologyEx(CreateMorpOp(op), kern, new System.Drawing.Point(-1, -1), 1, BorderType.Default, new MCvScalar(0))); }
public static Func <Image <Gray, byte>, int, Image <Gray, byte> > FnMorp(morpOp op, kernal kernal) { var morp = new Func <Image <Gray, byte>, int, Image <Gray, byte> >((img, size) => { if (size == 0) { size = 3; } var ken = CreateKernal(kernal, new System.Drawing.Size(size, size)); return(img.MorphologyEx(CreateMorpOp(op), ken, new System.Drawing.Point(-1, -1), 1, BorderType.Default, new MCvScalar(0))); }); return(morp); }
private static MorphOp CreateMorpOp(morpOp op) { switch (op) { case morpOp.Erode: return(MorphOp.Erode); case morpOp.Dilate: return(MorphOp.Dilate); case morpOp.Open: return(MorphOp.Open); case morpOp.Close: return(MorphOp.Close); default: return(MorphOp.Erode); } }