kernels_3x3 = {
"Identity": np.array([[0, 0, 0], [0, 1, 0], [0, 0, 0]], dtype=float),
"Box Blur": np.ones((3, 3), dtype=float) / 9,
"Gaussian Blur": np.array([[1, 2, 1], [2, 4, 2], [1, 2, 1]], dtype=float) / 16,
"Sharpen": np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], dtype=float),
"Edge Detect": np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]], dtype=float),
"Emboss": np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]], dtype=float),
"Sobel X": np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]], dtype=float),
"Sobel Y": np.array([[-1, -2, -1], [0, 0, 0], [1, 2, 1]], dtype=float),
}
kernels_5x5 = {
"Identity": np.array(
[
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
],
dtype=float,
),
"Box Blur": np.ones((5, 5), dtype=float) / 25,
"Gaussian Blur": np.array(
[
[1, 4, 6, 4, 1],
[4, 16, 24, 16, 4],
[6, 24, 36, 24, 6],
[4, 16, 24, 16, 4],
[1, 4, 6, 4, 1],
],
dtype=float,
)
/ 256,
"Sharpen": np.array(
[
[0, 0, -1, 0, 0],
[0, -1, -1, -1, 0],
[-1, -1, 13, -1, -1],
[0, -1, -1, -1, 0],
[0, 0, -1, 0, 0],
],
dtype=float,
),
"Edge Detect": np.array(
[
[-1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1],
[-1, -1, 24, -1, -1],
[-1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1],
],
dtype=float,
),
"Emboss": np.array(
[
[-2, -1, -1, 0, 0],
[-1, -1, 0, 1, 0],
[-1, 0, 1, 0, 1],
[0, -1, 0, 1, 1],
[0, 0, 1, 1, 2],
],
dtype=float,
),
"Sobel X": np.array(
[
[-1, -2, 0, 2, 1],
[-4, -8, 0, 8, 4],
[-6, -12, 0, 12, 6],
[-4, -8, 0, 8, 4],
[-1, -2, 0, 2, 1],
],
dtype=float,
),
"Sobel Y": np.array(
[
[-1, -4, -6, -4, -1],
[-2, -8, -12, -8, -2],
[0, 0, 0, 0, 0],
[2, 8, 12, 8, 2],
[1, 4, 6, 4, 1],
],
dtype=float,
),
}
kernels = {"3x3": kernels_3x3, "5x5": kernels_5x5}