Gegeven is een filtertabel (een 2D NumPy-tabel) met een oneven aantal rijen ($$2M+1$$) en kolommen ($$2N+1$$). De originele figuur bestaat uit $$R$$ rijen en $$K$$ kolommen. We berekenen de 2D convolutie van deze figuur met de gegeven filtertabel, waardoor een figuur met $$R-2M$$ rijen en $$K-2N$$ kolommen onstaat.

Programmeer de functie convolutie() met als argumenten:

Een convolutiefilter bevat dikwijls reƫle getallen. Reken daarom de convolutie uit gebruik makend van floats.

Voorbeeld

sharpen = np.array([[0., -1., 0.],[-1., 5., -1.],[0., -1., 0.]])

r = np.array(
[[ 0,  1,  2,  3,  4,  5,  6,  7], 
 [ 8,  9, 10, 11, 12, 13, 14, 15], 
 [16, 17, 18, 19, 20, 21, 22, 23], 
 [24, 25, 26, 27, 28, 29, 30, 31], 
 [32, 33, 34, 35, 36, 37, 38, 39], 
 [40, 41, 42, 43, 44, 45, 46, 47]])
 
cr = convolutie(r, sharpen)

#[[ 9. 10. 11. 12. 13. 14.]
# [17. 18. 19. 20. 21. 22.]
# [25. 26. 27. 28. 29. 30.]
# [33. 34. 35. 36. 37. 38.]]