public static void Filter2D(
InputArray src, OutputArray dst, MatType ddepth,
InputArray kernel, Point? anchor = null, double delta = 0,
BorderTypes borderType = BorderTypes.Default)
{
if (src == null)
throw new ArgumentNullException(nameof(src));
if (dst == null)
throw new ArgumentNullException(nameof(dst));
if (kernel == null)
throw new ArgumentNullException(nameof(kernel));
src.ThrowIfDisposed();
dst.ThrowIfNotReady();
kernel.ThrowIfDisposed();
Point anchor0 = anchor.GetValueOrDefault(new Point(-1, -1));
NativeMethods.imgproc_filter2D(src.CvPtr, dst.CvPtr, ddepth, kernel.CvPtr,
anchor0, delta, (int)borderType);
GC.KeepAlive(src);
dst.Fix();
}
#endregion