public static double[,] GetLaplaceFilter(LaplaceFilterType type) { switch (type) { case LaplaceFilterType.Lapl1: return(new double[, ] { { 0, -1, 0 }, { -1, 4, -1 }, { 0, -1, 0 } }); case LaplaceFilterType.Lapl2: return(new double[, ] { { -1, -1, -1 }, { -1, 8, -1 }, { -1, -1, -1 } }); case LaplaceFilterType.Lapl3: return(new double[, ] { { 1, -2, 1 }, { -2, 4, -2 }, { 1, -2, 1 } }); case LaplaceFilterType.LaplSkew: return(new double[, ] { { -1, 0, -1 }, { 0, 4, 0 }, { -1, 0, -1 } }); case LaplaceFilterType.LaplHorizontal: return(new double[, ] { { 0, -1, 0 }, { 0, 2, 0 }, { 0, -1, 0 } }); case LaplaceFilterType.LaplVertical: return(new double[, ] { { 0, 0, 0 }, { -1, 2, -1 }, { 0, 0, 0 } }); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
public LaplaceOperator(LaplaceFilterType type = LaplaceFilterType.Lapl1) : base(AlgorithmType.LaplaceOperator) { Kernel1 = LaplaceFilter.GetLaplaceFilter(type); }